目录
1.多态
异常
2.继承
20
20
true
10 属性不参与多态
20
equals和==的区别
测试单元的用法
包装类
int num1 = 10;
Integer in1 = new Integer(num1);
System.out.println(in1.toString()); //int转化为String基本数据类型转化成包装类
Integer in2 = new Integer("123"); //字符串转化为int 。。String转化成包装类?
Integer in1 = new Integer(12);
int i1.in1.intValue(); //包装类转化成剧本数据类型
int num2 = 10;
Integer in1 = num2; //自动装箱
int num3 = in1; //自动拆箱
//基本数据类型、包装类----->String
String str1 = num1 + ""; // 连接运算
float f1 = 12.3f;
String str2 = String.valueOf(f1); //调用String 的valueOf方法
//String类型------------>基本数据类型,包装类
String str1 = "123";
int num2 = Integer.parseInt(str1);
前者1类型提升为double。为1.0
有一个-128到127的缓存
如果数在其之间地址就一样
数不在这个范围内地址就是new一个新的就不一样了
向下转型
向下转型是为了用父类中没有定义的子类中定义的方法
向上转型(多态)是为了用子类中重写的父类中的方法。
static
static不能用来修饰构造器不能修饰局部变量
就是省略了个this,this.eat();
因为没有对象,所以不能用this。
静态方法中只能调用静态的东西。。
因为别的非静态的生命周期不够。
静态方法是随着类的加载而加载的,那时候还没有生成对象。所以不能用非静态的东西。
单例模式
单例饿汉式
单例懒汉式
比较饿汉式懒汉式
可能两个线程一块来new出两个来
class Order{
private Order() {
// TODO Auto-generated constructor stub
}
static Order order = null;
public static Order getObject() {
if(order == null) {
new Order();
}
return order;
}
}
class Order{
private Order() {
}
private static Order order = new Order();
public static Object getObject() {
return order;
}
}