• Java类初始化顺序


    1. Java类初始化顺序

    Java类初始化顺序(无继承):
      静态变量–>静态初始化块–>其他变量–>初始化块–>构造器
    Java类初始化顺序(有继承):

      先静后动,先父后子,父类静态初始化—->子类静态初始化—->父类初始化块—->父类构造方法—->子类初始化块—->子类构造方法。

    以下例子执行结果:6375142
    Test2构造函数加上super()不影响结果
    public class Test2 extends Test1 {
    {
    System.out.print(“1″);
    }

    Test2() {
    System.out.print(“2″);
    }

    static {
    System.out.print(“3″);
    }
    {
    System.out.print(“4″);
    }

    public static void main(String[] args) {
    new Test2();
    }
    }

    class Test1 {
    Test1() {
    System.out.print(“5″);
    }

    static {
    System.out.print(“6″);
    }
    {
    System.out.print(“7″);
    }
    }

    2.Java开发中”==”与”equals”

    public class TestEquals {
    public static void main(String args[]){
    Double d1 = new Double(10);
    Double d2 = new Double(10.0);
    Double d3 = new Double(10);
    System.out.println(d1==d2);//false value
    System.out.println(d1==d3);//false value
    System.out.println(d1.equals(d2));//true object
    System.out.println(d1.equals(d3));//true object
    Integer i1 = new Integer(10);
    System.out.println(d1.equals(i1));//false
    Long l1 = new Long(10);
    System.out.println(l1.equals(i1));//false
    //System.out.println(l1==i1);//false,编译错误
    System.out.println(l1.intValue()==i1.intValue());//true
    String s1 = “test”;
    String s2 = “test”;
    String s3 = new String(“test”);
    System.out.println(s1==(s2));//true
    System.out.println(s1.equals(s2));//true
    System.out.println(s1.equals(s3));//true
    System.out.println(s1==(s3));//false
    }
    }

  • 相关阅读:
    Python学习第15天_模块
    Python学习第14天_文件读取写入
    Python学习第13天_练习(图书馆的创建)
    Python学习第12天_类
    Python学习第11天_参数
    Python学习第10天_函数
    Python学习第九天_模块的应用
    Android Bluetooth HIDL服务分析
    Mac下CLion配置Google GTest小结
    MacOS通过homebrew安装老版本的软件
  • 原文地址:https://www.cnblogs.com/liuhouhou/p/2230153.html
Copyright © 2020-2023  润新知