1独立完成三种单例模式的代码

package Single;
/*
饿汉式
 */
public class Demo01 {
    public static void main(String[] args) {
        HungrySingle h1 = HungrySingle.getInstance();
        HungrySingle h2 = HungrySingle.getInstance();
        System.out.println(h1 == h2);//true
    }
}

class HungrySingle{
    private static HungrySingle INT = new HungrySingle();

private HungrySingle(){}

public static HungrySingle getInstance(){
        return INT;
    }
}

package Single;

public class Demo02 {
    public static void main(String[] args) {
        LazySingle l1 = LazySingle.getIntance();
        LazySingle l2 = LazySingle.getIntance();

System.out.println(l1 == l2);//true
    }
}

class LazySingle{
    private static LazySingle LAZ = null;

private LazySingle(){}

public static LazySingle getIntance(){
        if (LAZ == null){
            LAZ = new LazySingle();  //当真正需要这个类的时候在创建这个类
        }
        return LAZ;
    }
}

package Single;

public class Demo02_p {
    public static void main(String[] args) {
        LazySingle l1 = LazySingle.getIntance();
        LazySingle l2 = LazySingle.getIntance();

System.out.println(l1 == l2);//true
    }
}

class LazySingle2{
    private static LazySingle2 LAZ = null;

private LazySingle2(){}

//懒汉式的线程不安全问题解决
    public static synchronized LazySingle2 getIntance(){
        if (LAZ == null){
            LAZ = new LazySingle2();  //当真正需要这个类的时候在创建这个类
        }
        return LAZ;
    }
}

package Single;

public class Demo03 {

public static void main(String[] args) {
        SingletonOld so1 = SingletonOld.so;
        System.out.println(so1);
        SingletonOld so2 = SingletonOld.so;
        System.out.println(so2);
        System.out.println(so1 == so2);//true

//    SingletonOld.so = null;
    }
}

class SingletonOld {
    /*
    1.私有化构造函数
    2.将对象实例化为final
     */
    private SingletonOld() {
    }
    public static final SingletonOld so = new SingletonOld();
}

2 深入理解线程协作和垃圾回收机制

线程协作:不同线程执行不同的任务,如果这些任务有某种联系,那么线程之间必须能通过 通信,协调完成工作。根据生产者与消费者去理解:

垃圾回收机制:

所谓的垃圾回收机制,即在java中使用new关键字创建对象时,都会在堆内存中为之分配一块内存,用于保护对象,当此内存不在被任何引用变量引用时,这块内存就变成了垃圾,java引入垃圾回收机制(Garbage Collection)来处理垃圾,他是一个动态存储管理技术,由java虚拟机自动回收垃圾对象所占的内存空间,不需要程序代码来显式释放。

JavaSE各阶段练习题----多线程-垃圾回收相关推荐

  1. JavaSE各阶段练习题----多线程

    1.有一辆班车除司机外只能承载80个人,假设前中后三个车门都能上车,如果坐满则不能再上车. 请用线程模拟上车过程并且在控制台打印出是从哪个车门上车以及剩下的座位数. 比如: (前门上车---还剩N个座 ...

  2. Lua 多线程垃圾回收

    问题提出 lua的局部变量以及其它置为nil的对象属于垃圾回收的来源 当我创建多个线程的时候,线程中延时多时没问题,延时短时会出现lua报错内存不足的问题. 所以难道lua的内存释放和时间有关系?不是 ...

  3. java 多线程垃圾回收_Java 垃圾回收

    Java 垃圾回收 1 什么是Java 垃圾回收 在Java中,垃圾意味着未引用的对象. 垃圾回收是自动回收运行时未使用的内存的过程.换句话说,这是销毁未使用对象的一种方法. 我们在C语言中使用fre ...

  4. JavaSE各阶段练习题----IO流

    package com.io; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOEx ...

  5. JavaSE各阶段练习题----文件和IO

    1.键盘录入一个文件夹路径,删除该文件夹(包含文件夹内容) import java.io.File; public class Test01_删除该文件夹 { public static void m ...

  6. JavaSE各阶段练习题----Map

    1 分析以下需求,并用代码实现: (1)统计每个单词出现的次数 (2)有如下字符串"If you want to change your fate I think you must come ...

  7. JavaSE各阶段练习题----集合-Collection-Set-List

    1.分析以下需求,并用代码实现: (1)有如下代码: List<String> list = new ArrayList<>(); list.add("a" ...

  8. JavaSE各阶段练习题----异常

    异常作业: 简述什么是异常.异常的继承体系? 异常是程序执行期间中断指令的正常流程的事件. 异常继承体系: 简述异常的处理方式? 捕获异常.即使用try-catch-finally 使用throws抛 ...

  9. javaSE各阶段练习题--工具类-常用类-递归-包装类-内部类

    1 创建一个Student 类 包含属性有 序号 姓名 年龄 生日 提供对应的setter/getter创建对象,完成赋值(setter赋值和构造方法赋值) 在控制台输出学生对象的信息,要求生日的格式 ...

最新文章

  1. 2020-10-23(SMC加密技术)
  2. DevOps 实践:千里之行
  3. java判断变量是奇书还是偶数_测试值是奇数还是偶数
  4. this全面解析(二)
  5. LeetCode之Find Eventual Safe States(Kotlin)
  6. C# NPOI(xlsx相关操作)
  7. linux装软raid,LINUX中软RAID的实现方案
  8. Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array(动态规划.递推)
  9. 微信小程序自定义导航栏
  10. 谢尔宾斯基三角形:Python+turtle
  11. 世界坐标系和相机坐标系,图像坐标系的关系
  12. 特殊符号大全复制_特殊符号大全爱好者工具讲解
  13. 腾讯云:服务器资源池化技术发展趋势
  14. 写给XJTU计算机系大一大二的童鞋
  15. 怎么使qq推广效果最大化
  16. 人像姿势,从细节做起!
  17. 一、Require函数
  18. 在win xp上使用pyqt5
  19. 我的世界服务器修改高度放水,我的世界:水不够用?学会这4种方法,教你一桶水造无限水...
  20. 游戏开发入门——Lua(1)

热门文章

  1. SDUT - 2604 Thrall’s Dream(tarjan+拓扑)
  2. CodeForces - 1330E Drazil Likes Heap(贪心)
  3. 牛客 - Hash(思维+进制转换)
  4. 数据分析与挖掘实战-基于基站定位数据的商圈分析
  5. 微型计算机与裸机,第一章 微型计算机基础
  6. 消息队列中点对点与发布订阅区别
  7. gh0st支持win7和win8
  8. 手把手教你玩转ARP包(一)
  9. 不一样的图片加载方式
  10. python中内置的数据结构有几种?