#1、模板方法解决的问题?
当实现一个功能时一部分内容是确定的,另一部分是不确定的也就是可以变化的,这时就可以定义一个抽象模板,暴露不确定的方法供子类去实现。
#2、什么叫设计模式?
在长期的实践中总结出来的一种代码格式和解决某种问题的一种解决方式。
#3、解释为什么?
Object o1 = true ? new Integer(10) : new Double(12.0);
System.out.println(o1);//10.0
Object o2;
if (true){
o2 = new Integer(10);
}else {
o2 = new Double(12.0);
}
System.out.println(o2);//10
//使用三元运算符时会自动进行类型提升
@Test
public void test2(){
Integer i1 = new Integer(1);
Integer i2 = new Integer(1);
System.out.println(i1 == i2 );//false
Integer i3 = 1;
Integer i4 = 1;
System.out.println(i3 == i4);//true
}
//每new的一次就会产生一个新的对象,而后面的这种方式会调用对用的valueOf方法进行自动装箱,当加载类的时候会创建一个Integer类型的数组,存放范围在[-128,127]中的对象,然后声明的变量指向数组中对应的对象,只有不在这个范围内才进行实例化一个对象。