📄 6~
字号:
1 static: 1) 修饰实例变量(不能修饰局部变量)-》静态变量; 在类加载(只加载一次)的时候,在内存方法区给静态变量(只有一个数据结构) 分配内存空间以及赋默认值 2)修饰方法 -》静态方法; 3)修饰初始化块 -》静态初始化块 class A { int i; { i=10; } //初始化块 在new 的时候被调用,先于构造方法 public void m(){} } 实例变量:对应一个对象。 静态变量:对应多个对象共享。 4)内存分配的时刻: 实例变量 在 new 的时候分配内存空间。 静态变量 在 类加载的时候就分配了内存空间。 所以,实例变量必须 先new,再通过引用方式访问,静态变量 可以直接通过类名访问 5)分配内存的位置: 静态变量:方法区 实例变量:堆区 6)服务对象: 静态变量:所属类的所有对象 实例变量:单个对象 7)访问方式: 静态变量:类名.变量名 或者 引用.变量名 实例变量:引用.变量名 8) 初始化块: 用 { }括起来的代码块。在实例化对象时调用 初始化块的使用( 跟构造方法差不多的功能 ) 调用时间 在构造方法调用之前, 静态初始化块 static {}只调用一次(类加载的时候), 所以一般final static 类型的变量放在静态初始化块中 初始化赋值 final: 1) 修饰类 -》不能被继承 2)修饰方法 -》不能被重写 3)修饰变量(适用所有的变量) -》不能被改写 abstract 和 static 不能同时存在:因为abstract不能含有方法体, 而static必须含有方法体, static 方法被继承后叫做 方法隐藏interface: 方法:全部为抽象方法 public abstract 属性:静态常量 public static final 接口里没有构造方法:因为接口不能 new ,而且接口里的方法都是 abstract 接口和抽象类: 相同点:1)不能实例化; 2)允许有抽象方法 不同点:1)接口中方法均为抽象方法,抽象类中方法允许有方法体 2)一个类可以实现多个接口,但只可以继承一个抽象类equals(Object o): 1)没有重写:比较引用; 2)重写: 按重写的方法体规则;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -