java中的一些必须了解的小知识

java中的一些必须了解的小知识:

java中父类与子类的静态代码块、构造代码块以及构造方法的执行顺序:

  1. 在创建出对象时,无论是子类还是父类中静态代码块都会优先被执行(当然父类是在子类前边被执行)仅一次。
  2. 如果父类中存在构造代码块,则会按顺序先执行父类中的构造代码块以及父类的构造方法;接着再执行子类中的构造代码块和子类的构造方法。

java中String字符串的拼接:

  1. String str1 = “just so”;
    String str2 = “so”;

    String str3 = “just so” + " so";
    String str4 = “just so so”;

    String str5 = str1 + str2;
    System.out.println(str3 == str4); // true
    System.out.println(str4 == str5); // false

正如以上代码块可知,
1.当两个字符串常量(str3)进行拼接完成后,会在字符串常量池中保存,则与字符串(str4)进行比较时,结果为true,因为str3与str4引用的是同一块内存地址,即字符串常量池;
2.当两个字符串变量进行拼接时,即(str1+str2 == str5),str5会在堆中新开辟一个内存地址,产生一个新的字符串,因为在此之前字符串常量池中已经有相同内容的字符串,所以新的字符串虽然有新的内存地址,但是依旧可以引用常量池中(str3)的内容。

你可能感兴趣的:(java,字符串)