JAVA学习随记1

来源:互联网 发布:mac如何安装flash插件 编辑:程序博客网 时间:2024/05/30 05:30

Java特征

  • Object-orientated programming language: Except the primitive data types, all elements in Java are objects.

java的原始数据类型(对应的封闭类型是对象)
区别:int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况;Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。
boolean true&false Boolean
char               16                   Character
byte               8                     Byte
short              16                  Short
int                  32                  Integer
long               64                   Long
float               32                   Float
double            64                  Double
BigInteger    高精度整型
BigDecimal  高精度浮点型
  • Strongly-typed programming language: Java is strongly-typed, e.g., the types of the used variables must be pre-defined and conversion to other objects is relatively strict。

强类型语言>>  一旦一个变量被指定为某个数据类型,若不经过强制转换,那么它将永远就是这个数据类型(Java、Python)。
弱类型语言>>  一个变量可以赋不同数据类型的值,是数据类型可以被忽略的语言(VBScript)。
动态语言>>  在编程时,不用给变量指定数据类型,它会在你第一次赋值给变量时,在内部将数据类型记录下来(Python、Ruby)。
静态语言>>  在写程序时要声明所有变量的数据类型(C、Java)。


Interface 和 abstract class

       所有对象都可以通过类来描绘,但是并不是所有的类都可以用来描绘对象,抽象类中没有包含足够的信息来描绘一个具体的对象,它往往是对问题领域的描述(比如,三角形、四边形属于图形,图形就可以看作一个抽象类)。
       abstract class中可以有数据成员和非absctract的方法;interface只能有static final的数据成员和absctract的方法。interface可以说是一种更纯的抽象。abstract class表示的是一种继承关系(“is-a”的关系,java不能多继承);一个类可以实现多个interface(并不要求interface的实现者和interface在概念本质上是一致的)。
abstract class
       所有对象都可以通过类来描绘,但是并不是所有的类都可以用来描绘对象,抽象类中没有包含足够的信息来描绘一个具体的对象,它往往是对问题领域的描述(比如,三角形、四边形属于图形,图形就可以看作一个抽象类)。
       

Overide(重写) 和 Overload(重载)

      重写: 父类与子类间的多态性,就是在子类中定义与父类非私有、非final方法同方法名、参数和返回类型的方法,又称覆盖(子类方法的修饰权限不能少于父类的,重写方法不能抛出新或比被重写方法申明更加宽泛的检查型异常)。相同参数,不同实现(动态多态性)。
      重载: 方法同名,参数必须不同,返回类型可以不同,访问限制可以不同,异常可以不同。一个类的多个方法,传入不同参数就调用不同方法。

变量

      原始变量: 包含的是一个值,有8种;比较两个原始变量使用"=="。
      引用变量: 包含对对象的一个引用,比较两个引用变量实则比较是否指向同一个对象的两个指针,使用"==";比较两个对象则高用  object1.equals(object2)方法。
   
实例变量:一个对象的变量,具有访问修饰。
        本地变量: 保存在stack,只有唯一的修饰符final。它不具有默认值,所以使用前必须初始化。

构造函数

      名称与类外相同,可有参数但不能有返回类型,也不能定义为void。一个类可有多个构造函数,可以重载,但是不区别参数的顺序。它的作用主要是初始化,把定义对象时的参数传给对象域。
     Java没有析构函数,它是自动垃圾回收机制的,在垃圾回收前会调用 finalize( )方法。耗尽内存时JVM才会回收垃圾。

修饰符

      访问修饰级别:
ModifierClassPackageSubclassWorldpublicYYYYprotectedYYYNno modifierYYNNprivateYNNN
       其他修饰符:

final methods: cannot be overwritten in a subclass

abstract method: no method body

synchronized method: threat safe, can be final and have any access control

native methods: platform dependent code, apply only to methods

strictfp: class or method


static

用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量,有内存中只有一个拷贝;实例变量在在内存中有多个拷贝。
0 0
原创粉丝点击