6)类的初始化顺序
构造方法,静态块,静态变量,实例块,实例变量
初始化顺序:静态变量→静态块→实例变量→实例块→构造方法
static{
a = 10; //只能初始化静态变量
}
7)单例模式
○1
package src2;
import java.util.*;
public class TestDemo {
public static void main(String[] args) {
src2.People P1 = src2.People.getInstance();
src2.People P2 = src2.People.getInstance();
System.out.println(P1 == P2);
}
}
package src2;
//慢加载单例模式
import java.util.*;
public class People {
private String name;
private static People p;
private People(String name){
this.name = name;
}
public static People getInstance(String name){
if(p == null){
p = new People(name);
}
return p;
}
}
○2
package src2;
import java.util.*;
public class TestDemo {
public static void main(String[] args) {
src2.People P1 = src2.People.getInstance();
src2.People P2 = src2.People.getInstance();
System.out.println(P1 == P2);
}
}
package src2;
//快加载单例模式
import java.util.*;
public class People {
private String name;
private static People p = new People();//类的加载过程
private People(){
}
public static People getInstance(){
return p;
}
}
8)基本数据类型的包装类
int Integer char Character
short Short long Long
byte Byte boolean Boolean
隐式装箱:Integer a = 10;//Integer.valueOf(10);
显示装箱:Integer a = Integer.valueOf(10);
拆箱:Integer a = Integer.valueOf(10);
int b = a;//隐式拆箱
int b = a.intValue();//显示拆箱
9)
遇到字符串常量,先在常量池里找,找到返回常量在堆中的地址,否则,向常量池添加字符串常量,返回该地址。
常量+常量->优化 变量+常量->不优化
String StringBuilder StringBuffer(适合多线程环境,控制线程同步)
+拼接 .append();//拼接 .append
效率:
○1
String str = " ";
for(int i = 0;i < 10000;i++){
str += " ";
}
//效率低
+ => new StringBuilder();
append(" ");
○2
StringBuilder sstr = new StringBuilder();
sstr.append(" ");
for(int i = 0;i < 10000;i++){
sstr.append(" ");
}