学习课程:Java工程师2022版
章节名称:第4周 Java基础进阶-面向对象之单例模式与多态
讲师:IT老齐
课程内容:
Object类
所有类的父类
Java中每个类都可以使用Object中定义的方法
参考网站:https://docs.oracle.com/javase/8/docs/api/
final
修饰类表示不允许被继承
修饰方法表示不允许被子类重写
修饰变量表示不允许修改
final修饰的方法可以被继承
引用类型的变量:初始化之后不能再指向另一个对象,但指向的对象的内容是可变的
可配合static使用
注解
可以声明在包、类、属性、方法、局部变量、方法参数等的前面,用来对这些元素进行说明、注释。
按照允许机制分
源码注解
编译时注解
运行时注解
按照来源分
来自JDK的注解
来自第三方的注解
我们自己定义的注解
设计模式
设计模式是基于场景的解决方案
如果某个新场景的解决方案被认可,那我们就可以定义一个新的设计模式
单例模式
目的:使得类的一个对象成为该类系统中的唯一实例
定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供
要点:
某个类只能有一个实例
必须自行创建实例
必须自行向整个系统提供这个实例
实现:
只提供私有的构造方法
含有一个该类的静态私有对象
提供一个静态的公有方法用于创建、获取静态私有对象
代码实现方案:
饿汉式:对象创建过程中实例化
懒汉式:静态公有方法中实例化
优点:
在内存中只有一个对象,节省内存空间
避免频繁的创建销毁对象,提高性能
避免对共享资源的多重占用
缺点:
扩展比较困难
如果实例化后的对象长期不利用,系统降默认为垃圾进行回收,造成对象状态丢失
使用场景:
创建对象时占用资源过多,但同时又需要用到该类对象
对系统内资源要求统一读写,如读写配置信息
当多个实例存在可能引起程序逻辑错误,如号码生成器
学习收获:
了解了设计模式,熟悉了到单例模式的优缺点及应用场景
没有一种万能的设计模式,需要根据具体场景选择相适应的设计模式
打卡截图: