Java 单例模式 final关键字详解
发布日期:2021-06-30 15:37:24 浏览次数:2 分类:技术文章

本文共 1389 字,大约阅读时间需要 4 分钟。

package com.day26.test;

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;
    }
    

}

//懒汉式和饿汉式区别
// 饿汉式:
// 坏处 对象加载时间过长
// 好处 线程安全

// 懒汉式:

//  好处: 延迟对象创建
//  坏处: 线程不安全  到多线程内容修改为线程安全 

//单例模式--- 应用场景

//网站的计数器
//应用程序日志应用
//数据库连接池
// 读取配置文件的类 

转载地址:https://jsonll.blog.csdn.net/article/details/108210771 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JAVA 抽象类与抽象方法详解
下一篇:JAVA 基本数据类型 与包装类的自动拆装箱和基础类型与String类型的转换详情

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月14日 18时25分15秒