public class Test {
public static void main(String[] args) { //入口文件 也属于静态方法
//静态方法只能调静态
// 像直接在main里调用这个类的别的普通方法 是不可以的
// 如果想调用 必须要new 对象
System.out.println("单例设计模式");
Back back=Back.getinBack();
Back_2 back_2=Back_2.getback_2();
Back_2 back_22=Back_2.getback_2();
System.out.println(back_2==back_22);
//final: 最终的
//可以用来修饰 :类 方法 变量
// 最终类 不能继承 不能存在子类 这个类 不需要再扩展了 只能存在这么多功能
// 比如 String类 System类 StringBuffer类
// 修饰方法 :子类不可重写
back.finalB();
// 修饰变量 而不是属性 此时的变量就变成了常量 不能被修改
final int num1 = 1;
// 如果用来修饰属性的时候 要考虑修饰的位置 显示初始化修饰 代码块中初始化 构造器中初始化
//static final 可以同时修饰 : 属性 方法 称作 全局常量
}
}
//final类
final class FinalA{
}
//饿汉 单例模式 用不用先把对象造好
class Back{
//1. 要求私有化 构造器
private Back() {
System.out.println("私有构造器");
}
//2.内部创建类的对象
private static Back insBack=new Back();
private static void getCall() {
System.out.println("我要说话了");
}
//提供公共的方法 返回对象
public static Back getinBack() {
return insBack;
}
public final void finalB() {
System.out.println("最终方法");
}
}
//懒汉 单例模式 啥时候用啥时候造
class Back_2{
//1.私有构造器
private Back_2() {
System.out.println("私有构造器23");
}
// 2. 声明当前类对象 没有初始化
private static Back_2 back_2=null;
//提供公共的方法 返回对象
public static Back_2 getback_2() {
if(back_2 == null) {
back_2=new Back_2();
}
return back_2;
}
}
//懒汉式和饿汉式区别
// 饿汉式:
// 坏处 对象加载时间过长
// 好处 线程安全
// 懒汉式:
// 好处: 延迟对象创建
// 坏处: 线程不安全 到多线程内容修改为线程安全
//单例模式--- 应用场景
//网站的计数器
//应用程序日志应用
//数据库连接池
// 读取配置文件的类