第六章【面向对象(下)】

第六章【面向对象(下)】

  • 包装类及其用法
  • toString 方法的用法
  • == 和 equals 的区别
  • static 关键字
  • 实现单例类
  • final 关键字的用法
  • 不可变类与可变类
  • 缓存实例的不可变类
  • abstract 关键字的用法
  • 实现模板模式
  • 接口的概念与作用
  • 定义接口的语法
  • 实现接口
  • 接口和抽象类的联系与区别
  • 面向接口编程的优势
  • 内部类的概念和定义语法
  • 非静态内部类和静态内部类
  • 创建内部类的对象
  • 扩展内部类
  • 匿名内部类与局部内部类
  • Lambda 表达式与函数接口
  • 方法引用和构造器引用
  • 枚举类概念和作用
  • 手动实现枚举类
  • JDK 1.5 提供的枚举类
  • 枚举类的成员变量、方法和构造器
  • 实现接口的枚举类
  • 实现接口的枚举类
  • 包含抽象方法的枚举类
  • 垃圾回收和对象的 finalize方法
  • 强制垃圾回收的方法
  • 对象的软、弱和虚引用
  • JAR 文件的用途
  • 使用jar 命令创建JAR 文件

 JDK 1.5之后,java 提供了自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)的功能。

  自动装箱:可以把基本数据类型直接赋值给包装类的对象。 

  自动拆箱:可以把包装类的对象直接赋值给基本数据变量。

基本数据类型和包装类的对应关系
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

String转换到其他:WrapperClass.parseXxx()

其他转换到String:String.valueOf()  或者   直接 +"";就可以

== 和 equals()方法

  常量池:  用于管理在编译阶段就被确认并被保存在已编译的.class文件中的数据。而像 new 出来的就是运行期确定的,被保存在堆内存。

  ==:    对于简单数据类型,即比较数值;对于引用型,比较是否指向同一个对象。

  equals:  可以自己编写相关代码,默认比较地址,String的为比较字符序列。

单例类:

  如果一个类始终只能创建一个实例,则这个类被称为实例类。此时在类中缓存一个该类的变量以此来生成一个唯一的实例。

 final 关键字:

  可用于修饰 类、变量及方法。

宏变量:类似C++的,final  a = 5;  之后就会使用相应的值取代该变量(宏替代)

  条件有三:  1、使用final修饰符修饰  2、在定义时即指定初始值(使用简单的运算并未使用方法亦可)  3、该初始值在编译期就可以被确定下来

final 变量:

  注意对于类的成员变量及类向量,由于系统会自动初始化,所以不可在普通方法中对其进行赋值

final 方法:

  使用final 修饰的方法不能被重写,可以被重载。

final 类:  无法被继承。

不可变类:

  创建该类的实例后,该实例的实例变量是不可改变的。Java提供的8个包装类及java.lang.String 都是不可变类。

缓存实例的不可变类:

  如果需要多次使用相同的实例对象,可以考虑将其缓存下来。

  例如可以在类中使用数组将其缓存下来,再通过某个方法获取实例对象,重要特征相同则返回相同对象,否则就创建新实例并缓存到数组中去。

猜你喜欢

转载自www.cnblogs.com/zpq5935/p/10547146.html