方法覆写: 可以总结为容易记忆的口诀:一大两小两同 1. 一大,子类的方法访问权限控制符只能相同或变大 2. 两小,抛出异常和返回值只能变小,能够转型为父类对象 3. 两同, 方法名和参数必须完全相同 方法重载: 在同一类中,如果多个方法有相同的名字、不同的参数即为重载。 在编译器眼中 方法名称 + 参数类型 + 参数个数, 组成组成唯一键,称为方法签名,JVM通过这个 唯一键决定调用哪种重载方法, public void mehtodForOverload() {} // 编译出错,访问控制符也不是方法签名的一部分 private void mehtodForOverload() {} // 编译出错, 返回值并不是方法签名的一部分 public int mehtodForOverload() { return 9; } // 编译出错, 静态标识符并不是方法签名的一部分 public static void mehtodForOverload() {} // 编译出错, final并不是方法签名的一部分 public final void mehtodForOverload() {} JVM在重载方法中,选择合适的目标方法的顺序如下: 1. 精确匹配 2. 如果是基本数据类型,自动转换为更大表示范围的基本数据类型 3. 如果自动拆箱与装箱 4,通过子类向上转型基础路线依次匹配 5. 通过可变参数匹配 泛型: 泛型的本质是类型参数化,解决不确定具体对象类型的问题。 实际就是在编译器增加一道类型检查而已,目的是促使程序员使用泛型时安全放置和使用。 泛型可以定义在类、接口、方法中,编辑器通过识别尖括号和尖括号内的字母来解析泛型。 1. E 代表 Element 用于集合中的元素 2. T 代表 the Type of Object 代表某个类 3. K 代表key、V 代表Value, 用于键值对元素 (1). <> 尖括号的位置,必须在类名之后,返回值之前 (2). 泛型只是一种编写代码时的语法检查 使用泛型的好处: 1. 类型安全,不用担心会抛出 ClassCastException异常 2. 提升可读性 3. 代码重用 基本数据类型: 它们不具备对象的特性,没有属性和行为. 它是指不可再分的原子数据类型,内存中直接存储此类型,通过内存地址即可直接访问数据 Java 9种基本数据类型: boolean byte char short int long float double refvar 最后一个是面向对象的引用变量 也叫引用句柄 包装类型: Boolean 使用静态final变量定义,valueOf()就是返回这两个静态值 Byte: 表示范围 -128~ 127 全部缓存 Short: 表示范围 -32768 ~ 32767 缓存范围 -128 ~ 127 Character 0 ~ 65535 缓存范围 : 0 ~ 127 Long 缓存范围: -128 ~ 127 Integer: 缓存范围: -128 ~ 127, 唯一可以修改范围的缓存包装类。 推荐如下使用方式 (1). 所有的POJO类属性必须使用包装数据类型 (2). RPC方法的返回值和参数必须使用包装数据类型 (3). 所有的局部变量推荐使用基本数据类型
码出高效,面向对象
最新推荐文章于 2020-06-03 17:19:58 发布