Java的基础知识

来源:互联网 发布:linux cgi bin 编辑:程序博客网 时间:2024/06/02 03:47

一.Java类最终执行顺序:

 1.父类的静态成员赋值和静态块;

 2.子类的静态成员和静态块;

 3.父类的成员赋值和初始化块;

 4.父类的构造方法的其他语句;

 5.子类的成员赋值和初始化块;

 6.子类的构造方法中的其他语句。

二.==和equals方法:

   java中测试两个变量是否相等有两种方式:

    1.使用利用==运算符:判断两个变量是否相等,如两个变量是基本类型变量,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就返回true。

    2.equals()方法时object类提供的一个实例方法,因此所有引用变量都可调用该方法来判断是否与其它引用变量相等。

   "hello"直接量和new String("hello")的区别:

     当java程序直接使用形如"hello"的字符串直接量(包括可以在编译时就计算出来的字符串值)时,JVM将会使用常量池来管理这些字符串;当使用new String("hello")时,JVM会先使用常量池来管理"hello"直接量,再调用String类的构造器来创建一个新的String对象,新创建的String对象被保存在堆内存中。换句话说,new String("hello")一共产生了两个字符串对象

三.final修饰符:

   final关键字可以用于修饰类、变量、方法,用于表示它修饰的类、方法和变量不可改变。

   final修饰变量时,表示该变量一旦获得初始值就不可被改变,final既可以修饰成员变量(包括类变量和实例变量),也可以修饰局部变量、形参。

  final修饰的方法不可被重写,如果出于某种原因,不希望子类重写父类的某个方法,则可以使用final修饰该方法。

  final修饰的类不可以有子类。

四.接口和抽象类及抽象方法

   抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。

  抽象类和接口都不能被实例化,实现接口或继承抽象类的普通类都必须实现这些抽象方法。

五.对象的软、弱和虚引用:

   1.强引用(StrongReference):程序创建一个对象,并把这个对象赋给一个引用变量,程序通过该引用变量来操作实际的对象,当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不可能被系统垃圾回收机制回收;

   2.软引用(SoftRerence):软引用需要通过SoftRerence类实现,当一个对象只有软引用时,它有可能被垃圾回收机制回收。对于只有软引用的对象而言,当系统内存空间足够时,它不会被系统回收,程序也可使用该对象;当系统内存空间不足时,系统可能会回收它,软引用通常用于对内存敏感的程序中;

  3.弱引用(WeakReference):通过WeakRerence类实现,弱引用和软引用很像,但弱引用的引用级别更低。对于只有弱引用的对象而言,当系统垃圾回收机制运行时,不管系统内存空间是否足够,总会回收该对象所占用的内存。等到系统垃圾回收机制运行时才会被回收;

  4.虚引用(PhantomReference):通过PhantomReference类实现,虚引用完全类似于没有引用。虚引用对对象本身没有太大影响,对象甚至感觉不到虚引用的存在。如一个对象只有虚引用时,那么它和没有引用的效果大致相同。虚引用主要用于跟踪对象垃圾回收的状态,虚引用不能单独使用,虚引用必须和引用队列(ReferenceQueue)联合使用。


0 0
原创粉丝点击