java对象总结(上)

来源:互联网 发布:没有域名需要备案吗 编辑:程序博客网 时间:2024/06/06 02:35

1、面向对象方法的三个基本特征:封装、继承、多态,继承是面向对象实现软件的复用,封装是将对象的细节隐藏提升类的内部安全,多态是子类对象可以直接赋值给父类变量但运行时依然保存子类的行为特征。

2、类是具有共同属性、方法的对象的集合,类是对象的抽象,对象是类的实例。

3、Static 修饰成员表明它是属于这个类共有的方法;静态成员不能访问非静态成员。

4、构造器不能定义返回值类型,编译时会通不过;因为构造器的返回值是隐式的。

5、初始化一个对象,会在栈内存生成一个引用变量,然后引用变量指向堆内存中的实际存储的对象空间。

6、final关键字用法精要:

      final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误。

      final也可以声明方法。方法前面加上final关键字,代表这个方法不可以被子类的方法重写。如果你认为一个方法的功能已经足够完整了,子类中不需要改变的话,你可以声明此方法为final。final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定。使用final来修饰的类叫作final类。final类通常功能是完整的,它们不能被继承。Java中有许多类是final的,譬如String, Interger以及其他包装类。

     final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误。

     总结了一些使用final关键字的好处

  1. final关键字提高了性能。JVM和Java应用都会缓存final变量。
  2. final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
  3. 使用final关键字,JVM会对方法、变量及类进行优化。

java里方法的参数传递只有一种(值传递),就是把实际参数的副本传入方法内,而参数本身不会受到任何影响。1)、基本类型参数传递2)、引用性参数传递---》实际是把对象的引用复制一份传递过去了,引用的堆内存一直。

7、静态变量在类初始化时进行分配内存,内存分配在堆内;类的静态变量为所有该类的对象共有,通过对象修改类的静态变量时,所有引用该静态变量的对象属性值都会变。

8、什么时候定义类的静态类型,类相关的信息,如人的眼睛的数目,人的身高属于实例相关的定义为非静态。

9、Java默认导入java.lang报下的所有类。

10、Java每个类最多只能有一个直接父类。

11、Java程序创建某个类时,会隐式的创建它的父类,依次类推任何类的对象总是会最先执行Java.lang.Object构造器;之类引用父类方法通过super引用,在构造器中必须在第一行引用。

12、多态,在编译时类型是父类在运行时类型是子类,在运行引用变量的方法时总是表现为子类覆盖的方法;在子类独有的方法父类引用无法进行直接引用因为编译时不通过。 引用变量在编译时只能调用其编译时类型所具有的方法,但在运行时则执行它运行时类型的方法。但是在运行引用变量的属性时(即使子类属性覆盖了父类属性)表现为父类属性--对象的属性不具有多态,只有方法才有多态;

13、Java创建对象顺序 :先给该对象所有实例属性分配内存---》再执行初始化块---》再执行属性的指定初始值--》再执行构造器里的值