变量
- 字段变量 field
存储在 堆 中
自动赋初始值
- 局部变量 local variable
方法中定义的变量,或方法的参变量
存储在 栈 中
需要显式赋值,不能被访问控制符和 static 修饰
多态及虚方法
多态: 一个程序中相同名字表示不同含义
-
编译时多态
-
重载 overload (多个同名的不同方法)
-
运行时多态
-
覆盖 override (子类对父类方法进行覆盖)
-
动态绑定 (dynamic binding) -- 虚方法调用
-
upcasting 向上转型
-
downcasting 向下转型
构造过程
构造器中避免调用任何方法
class Person {
String name = ""; // step2
Person() {
super(); // step1
System.out.println(""); // step3
}
}
内部类 和 匿名类
- 内部类
- 匿名类
Lambda 表达式
匿名类的一个实例,基本写法: 参数 -> 结果,匿名函数
条件
- Lambda 最多只能有一个抽象函数
- @FunctionalInterface() 来表示
基本类型的包装类
- 基本类型 (primitive type) 包装成 Object (引用类型)
Boolean, Byte, Short Character, Integer, Long, Float, Double
- 装箱
- 拆箱
枚举 enum
特殊的 class 类型
enum Light { Red, Yellow, Green };
// 编译成
// final class Light extends java.lang.Enum<Light> {}
Light light = Light.Red;