jdk7.0 判断表达式可以是string形 :string s=new string("xxx") switch(s) {
case "xxx":break;
case "xxx":break;
}
带标签break和cont;nue 在前面添加标签outer : / / continue outer: / break outer: 和goto类似 但是goto关键字无实际功能。
this super 隐式参数 在非静态方法调用时自动传入调用它的对象的索引,super自动传入父类的索引。
this()调用其他构造方法。且位于方法的第一句。
extends 继承java采用单继承,C++可多继承 复杂形加
构造器内部自动调用父类构造器
一个对象的新建,依次调用父类构造器,创建一个Object对象,再一级级加入子类的属性和方法,最后返回地址给新的声明变量
继承实现代码重复利用 is-a关系(是关系),组合(即在内部将父类定义一个对象作为属性) 同样重复利用代码has-a关系(及拥有关系)
final 变量-->常量 修饰方法-->不能重写(子类重写父类方法),可以重载 修饰类--> 无法被继承
private 同一个类
default 同一个类 同一个包
protect 同一个类 同一个包 子类
public 全部
属性 一般私有提(public)set()/get() 常量和static 可以公开
静态代码块 static {
}
}
多态 在继承的基础上 子类类型变得复杂,重写方法很多无法确定 在调用方法是 子类的的地址传给父类 调用子类的重写方法
Cat extends Animal void vioce(Animal a) 即将子类引用给父类
父类只有父类方法 可以强制转换子类 再调用子类的方法
c instanceof Cat 判读c是Cat的子类
重写方法调用的this都是最后的子类的地址 及首先调子类的重写方法 在向父类寻找 寻找到就执行 没找到报错
Cat extends Animal void vioce(Animal a) 即将子类引用给父类
父类只有父类方法 可以强制转换子类 再调用子类的方法
c instanceof Cat 判读c是Cat的子类
重写方法调用的this都是最后的子类的地址 及首先调子类的重写方法 在向父类寻找 寻找到就执行 没找到报错
当子类都需要重写父类方法是 父类方法可以是抽象方法 且方法是抽象类(也可加普通方法) 子类(如果是抽象子类也不需要)必须实现父类所有抽象方法(规范,模板)
抽象类无法定义 使用 只能作为一个类型 其中的方法子类使用 设计与实现分开4
抽象类无法定义 使用 只能作为一个类型 其中的方法子类使用 设计与实现分开4
抽象类 中能够实现非类方法 接口(interface) 完全抽象 只有抽象方法(public和abstract)和常量(默认public static final) implement
一个类可以实现多个接口(不同对象共同点很少) 接口也可以继承接口
一个类可以实现多个接口(不同对象共同点很少) 接口也可以继承接口
hook 多态应用
接口回掉 模板方法模式
内部类 私有的一些类如 电脑的CPU 别的不用CPU 内部类可以调用外部类属性 外部类不能使用内部类成员属性 外部类.this.属性
内部类 成员内部类 隐藏内部类
方法里也可以定义类
静态类可以用定义静态方法 普通内部类不能
StringBuilder 线程不安全 效率高 StringBuffer 线程安全 效率不高
StringBuffer synchronized
异常处理 抛出 ->JRE JRE-捕获异常
checked(被编译器检查过的) uncheckI(常见 jre自动捕获)
try catch finaly finaly的return 语句最后覆盖
子类 抛出的异常不能是父类的异常的父类或上层类
手动抛出 thow new FileNotFoundExcption("File not found");
子类 抛出的异常不能是父类的异常的父类或上层类
手动抛出 thow new FileNotFoundExcption("File not found");
static { 静态语句
}
}
import static
栈
存放局部变量
不可以多线程共享
空间连续
堆
存放对象
可以多线程共享
空间不连续
方法区
存放类的信息,代码,静态变量,字符
可以多线程共享
空间不连续
垃圾回收
finallize object类
System,gc();
存放局部变量
不可以多线程共享
空间连续
堆
存放对象
可以多线程共享
空间不连续
方法区
存放类的信息,代码,静态变量,字符
可以多线程共享
空间不连续
垃圾回收
finallize object类
System,gc();
import static 引入静态变量