1.接口不能有静态方法
2.建造者模式
package ch1;
public class TestBuilder {
private String name;
private int age;
public String getName() {
return this.name;
}
public static class Builder {
private String name;
private int age;
public Builder name(String name) {
this.name = name;
return this;
}
public Builder age(int age) {
this.age = age;
return this;
}
public TestBuilder build() {
return new TestBuilder(this);
}
}
private TestBuilder(Builder builder) {
name = builder.name;
age = builder.age;
}
}
3.单例模式 仅仅被实例化一次的类
第五章:JVM调优
Java虚拟机内存模型:
程序计数器:
Java虚拟机栈:线程私有的内存空间,和Java线程一同创建,它保存方法的局部变量、部分结果,并参与方法的调用和返回。
-Xss10M -Xss10m -Xss10K -Xss10k 栈空间最小108k
-Xss10M -XX:+PrintGCDetails
StackOverFlowError OutOfMemoryError
jclasslib JMeter
本地方法栈:
Java堆:新生代 老年代
-Xms -Xmx
-Xmn 1/4 - 1/3
-XX:NewSize -XX:MaxNewSize
-XX:SurvivorRadio=2
-XX:NewRadio=老年代/新生代
-XX:MinHeapFreeRadio
-XX:TargetSurvivorRadio
方法区:(永生区)保存类的元数据:类的类型信息、常量池、域信息、方法信息。
-XX:PermSize -XX:MaxPermSize
运行时常量池:
直接内存:
设置线程栈:
-Xss1M