Java中单例实现
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中单例实现的更多相关文章
- Java中单例
		
Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例.饿汉式单例 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3. ...
 - java中单例设计模式
		
在java中创建单例的方式主要有三种:饿汉式.懒汉式.登记式.以下内容均是摘抄自 http://blog.csdn.net/jason0539/article/details/23297037/ 一. ...
 - Java中单例设计模式,饿汉式和懒汉式
		
Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯 ...
 - Java中单例设计模式总结
		
两种单例常见的实现方式: 1:懒汉的设计模式,在第一次调用的时候才完成相关的初始化操作 懒汉式是典型的时间换空间,就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间.当然,如果一直没有人 ...
 - java中单例类
		
class Singleton { private static Singleton instance; private Singleton(){} public static ...
 - Java中单例七种写法(懒汉、恶汉、静态内部类、双重检验锁、枚举)
		
/*** * 懒汉模式 1 * 可以延迟加载,但线程不安全. * @author admin * */ public class TestSinleton1 { private static Test ...
 - java单例-积木系列
		
一步步知识点归纳吧,把以前似懂非懂,了解表面,知道点不知道面的知识归一下档. 懒汉式单例: 私有化构造函数,阻止外界实例话对象,调用getInstance静态方法,判断是否已经实例化. 为什么是懒 ...
 - swift 中单例的写法
		
在swift中单例的写法和oc的有所不同,在书写的时候又分很多种写法,,如果一个.swift 文件只创建了一个类,可以用那种dispatch_once的写法,如果一个.swift文件中有很多类的存在, ...
 - java单例的几种实现方法
		
java单例的几种实现方法: 方式1: public class Something { private Something() {} private static class LazyHolder ...
 
随机推荐
- Android JNI 学习(三):JNI 数据类型和数据结构
			
本文我们来讨论一下JNI如何将Java类型映射到本机C类型. 一.基本数据类型 如下图表整理了Java基本类型和native对应的关系: Java类型 Native类型 描述 boolean jboo ...
 - Kali学习笔记20:缓冲区溢出实验环境准备
			
在前几篇的博客中:我介绍了OpenVAS和Nessus这两个强大的自动化漏洞扫描器 但是,在计算机领域中有种叫做0day漏洞:没有公开只掌握在某些人手中 那么,这些0day漏洞是如何被发现的呢? 接下 ...
 - 对称加密AES
			
static void Main(string[] args) { //string str = "rqiJI7eEICT+YZmScpAdbjzLnA4mgL3uU5uHXLBeaE6s8 ...
 - 工作随笔—integer对象比较
			
问题:对于integer对象,当比较2==2的时候,返回的值是true还是false?当比较2000==2000的时候,返回的值是true还是false? 回答:当比较2==2的时候,返回的值是tru ...
 - 从零開始学Xamarin.Forms(一)  概述
			
Xamarin 读 "ˈzæmərin",是一个基于开源项目mono的可以使用C#开发的收费的跨平台(iOS.Android.Windows Phone.Mac)解决方式. ...
 - mysql 开发基础系列14 字符集
			
字符集是一套文字符号及其编码,比较规则的集合.第一个字符集是ascll(american standard code for information interchange). 1. 选择合适的字 ...
 - Quartz使用记录总结
			
Quartz是一个任务调度框架,最近在项目中有用到,所以做个记录总结. 一.主要元素 Scheduler:调度器,控制任务的调度,将JobDetail和Trigger注册到Scheduler加以控制. ...
 - Linux常用命令之网络和关机重启命令
			
目录 1.网络命令 一.给指定用户发送信息:write 二.给所有用户发送广播信息:wall 三.测试网络连通性:ping 四.查看和设置网卡信息:ifconfig 五.查看发送电子邮件:mail 六 ...
 - [机器学习] --- Getting Started With MachineLearning
			
一. What's machine learning Machine Learning is the science of gettingcomputers to act without being ...
 - Spring mybatis源码篇章-MapperScannerConfigurer关联dao接口
			
前言:Spring针对Mybatis的XML方式的加载MappedStatement,通过引入MapperScannerConfigurer扫描类来关联相应的dao接口以供Service层调用.承接前 ...