1:、经典懒汉:

代码如下:

 package org.pine.test;

 public class Person {
private String name;
private int age; public static Person person; private Person(){ } public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
} public static synchronized Person getInstance(){
if(person==null){
person = new Person();
}
return person;
}
}

测试类:

 package org.pine.test;

 public class PersonTest {

     public static void main(String[] args){
Person p0 = Person.getInstance();
p0.setName("张泰松");
p0.setAge(27);
System.out.println(p0); Person p1 = Person.getInstance();
System.out.println(p1); System.out.println(p0==p1);
} }

2、经典饿汉

代码如下:

 package org.pine.test;

 public class Animal {

     private int footCount;

     public static /*final*/ Animal animal = new Animal();

     private Animal () {

     }

     public int getFootCount() {
return footCount;
} public void setFootCount(int footCount) {
this.footCount = footCount;
} @Override
public String toString() {
return "Animal{" +
"footCount=" + footCount +
'}';
} public static Animal getInstance(){
return animal;
}
}

测试类:

 package org.pine.test;

 public class AnimalTest {
public static void main(String[] args){
Animal a0 = Animal.getInstance();
a0.setFootCount(4);
System.out.println(a0); Animal a1 = Animal.getInstance();
System.out.println(a1); System.out.println(a0==a1);
}
}

Java中单例实现的更多相关文章

  1. Java中单例

    Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例.饿汉式单例 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3. ...

  2. java中单例设计模式

    在java中创建单例的方式主要有三种:饿汉式.懒汉式.登记式.以下内容均是摘抄自 http://blog.csdn.net/jason0539/article/details/23297037/ 一. ...

  3. Java中单例设计模式,饿汉式和懒汉式

    Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯 ...

  4. Java中单例设计模式总结

    两种单例常见的实现方式: 1:懒汉的设计模式,在第一次调用的时候才完成相关的初始化操作 懒汉式是典型的时间换空间,就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间.当然,如果一直没有人 ...

  5. java中单例类

    class Singleton {     private static Singleton instance;     private Singleton(){}     public static ...

  6. Java中单例七种写法(懒汉、恶汉、静态内部类、双重检验锁、枚举)

    /*** * 懒汉模式 1 * 可以延迟加载,但线程不安全. * @author admin * */ public class TestSinleton1 { private static Test ...

  7. java单例-积木系列

    一步步知识点归纳吧,把以前似懂非懂,了解表面,知道点不知道面的知识归一下档.   懒汉式单例: 私有化构造函数,阻止外界实例话对象,调用getInstance静态方法,判断是否已经实例化. 为什么是懒 ...

  8. swift 中单例的写法

    在swift中单例的写法和oc的有所不同,在书写的时候又分很多种写法,,如果一个.swift 文件只创建了一个类,可以用那种dispatch_once的写法,如果一个.swift文件中有很多类的存在, ...

  9. java单例的几种实现方法

    java单例的几种实现方法: 方式1: public class Something { private Something() {} private static class LazyHolder ...

随机推荐

  1. python爬虫学习之Scrapy框架的工作原理

    一.Scrapy简介 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了 页面抓取 (更确切来说, 网 ...

  2. ThreadLocal类的简单使用

    1.概述变量值的共享可以使用public 是static 变量的形式,所有的线程都使用同一个public static 变量. 如实现线程内的共享变量,jdk提供了ThreadLocal来解决这个问题 ...

  3. 小白必读:闲话HTTP短连接中的Session和Token

    本文引用了刘欣的文章,感谢原作者的分享. 1.引言 Http协议在现今主流的IM系统中拥有无可替代的重要性(在IM系统中用HTTP发起的连接被大家简称为http短连接),但Http作为传统互联网信息交 ...

  4. 第59节:Java中的html和css语言

    欢迎到我的简书查看我的文集 前言: HTML 英文: HyperText Markup Language内容 html是超文本标记语言,是网页语言的基础知识,html是通过标签来定义的语言,所有代码都 ...

  5. Web Components(续)

    概述 之前我们介绍了Web Components的基本概念,现在我们给出一个使用Web Components的实例代码,并且对组件化进行一些思考.记录下来,供以后开发时参考,相信对其他人也有用. 实例 ...

  6. puppet-master搭建

    puppet 搭建 Table of Contents 配置yum源 配置hosts 安装puppet-server 部署puppet-agent trouble-shoting 配置yum源 备份系 ...

  7. Python开发爆破字典

    这里只是分享一下Python如何生成爆破字典 关于爆破工具编写我会在下一篇提到 其实有了爆破字典的话,直接使用Burp,Hydra等一些工具就可以做爆破了! Burp的使用在我以前的博客中有写过,至于 ...

  8. JavaScript 作用域、命名空间及闭包

    变量作用域: 1.一个变量的作用域是程序源代码中定义这个变量的区域 2.在函数内声明的变量是局部变量,它只在该函数及其嵌套作用域里可见(js 函数可嵌套定义):不在任何函数内声明或在函数内不使用 va ...

  9. 性能瓶颈之Mapping

    如果Source和Target都不存在性能上的瓶颈,则问题可能会出在Mapping 如何判定Mapping存在性能瓶颈 1)  在session log中读取thread statistics和wor ...

  10. Spring Boot 主类及目录结构介绍

    Spring Boot 与传统项目最大的区别是,传统项目都是打成 WAR 包部署到服务器上面,需要额外的 Servlet 容器, 而 Spring Boot 则可以直接打成 jar 包,并内置集成了 ...