static、final关键字
static关键字
作用对象:方法、内部类、属性、代码块只要使用了static关键字,那其修饰的内容就不在属于对象自己而是类的,使用凡是本类的对象,都共享该资源;
静态变量:在类的加在期间就被初始化
使用:类名.静态变量; 静态方法:类名.静态方法();static修饰的属性属于类级别,是全体共享资源实例变量:
属于对象的属性;使用:对象.属性; 代码块:
在本类加载期间运行的代码块,只加载一次; 注意事项:
静态不能直接访问非静态;因为【先】有静态内容,【后】有非静态内容;静态方法中不能使用this。 因为this代表当前对象,通过谁调用,谁就是当前对象;
final关键字
final修饰的类不能被继承;String就是 final类,使用不能不继承Math也是 final类,不你被继承Integer long character 等包装都是 final类final修饰方法。不能被重写(覆盖)final修饰变量。初始化后不会在被修改
final 局部变量final 成员变量final 方法参数final static:java使用final static修饰变量作为常量,要求常量名全部大写; final、finally、finalize的区别?
final修饰的类不能被继承;final修饰方法。不能被重写(覆盖);final修饰变量。初始化后不会在被修改finally是异常处理时提供的捕获异常时,finally 块来执行任何清除操作;当finally在捕获异常出现时,不管前面代码块执不行,finally都会执行;finalize():GC里的一个垃圾处理时调用的方法;finalize() 方法以整理系统资源或者执行其他清理工作;
JavaBean 规范
静态绑定:Java根据引用变量的类型查找属性 动态绑定:根据实际的对象查找方法
规范: 1) 必须有包 2) Java类,具有无参构造器 3) 有getXX(),setXX() 4) 实现序列化接口
1、所有属性为private 2、提供默认无参构造方法 3、提供getter和setter 4、实现serializable接口