黑马程序员—懒汉式和饿汉式
2013-02-01 16:51
169 查看
----------------------
android培训 java培训 期待与您交流! ----------------------
package com.be.six;
/**
* 开发一般用饿汉式,因为安全,简单
* @author zjw
*
*/
public class Singlton {
public static void main(String args[]){
//饿汉式用法
Singleton s=Singleton.getInstance();
s.setName("ffffffffffff");
s.setName("fffffddddddddddd");
s.test();
//懒汉式用法
Singleton1 s1=Singleton1.getInstance();
s1.setAge(33);
s1.getAge();
Singleton1 s2=Singleton1.getInstance();
s1.setAge(66);
s1.getAge();
}
}
/**
* 饿汉式
* Singleton一进内存,就已经创建好了对象
* @author zjw
*
*/
class Singleton{
private String name;
private Singleton(){}
private static Singleton s=new Singleton();
public static Singleton getInstance(){
return s;
}
public void test(){
System.out.println("name:"+name);
}
public void setName(String name){
this.name=name;
this.test();
}
}
/**
* 懒汉式
* Singleton1进内存,对象还没存在,只有调用了getInstance方法时,才建立对象,这就是延迟加载
* 缺点:
* 容易出错,
* 解决方案1,加同步关键字:Synchronized,但是加完后,程序执行效率会降低的很多
* 最终解决方案
*/
class Singleton1{
private int age;
private Singleton1(){}
private static Singleton1 s=null;
public static Singleton1 getInstance(){
if(null==s){
synchronized(Singleton1.class){//加锁 这是最终解决方案,双重判断,提高效率
if(null==s){
s=new Singleton1();
}
}
}
return s;
}
public int getAge(){
System.out.println("age:"+age);
return age;
}
public void setAge(int age){
this.age=age;
}
}
----------------------
android培训 java培训 期待与您交流! ----------------------
android培训 java培训 期待与您交流! ----------------------
package com.be.six;
/**
* 开发一般用饿汉式,因为安全,简单
* @author zjw
*
*/
public class Singlton {
public static void main(String args[]){
//饿汉式用法
Singleton s=Singleton.getInstance();
s.setName("ffffffffffff");
s.setName("fffffddddddddddd");
s.test();
//懒汉式用法
Singleton1 s1=Singleton1.getInstance();
s1.setAge(33);
s1.getAge();
Singleton1 s2=Singleton1.getInstance();
s1.setAge(66);
s1.getAge();
}
}
/**
* 饿汉式
* Singleton一进内存,就已经创建好了对象
* @author zjw
*
*/
class Singleton{
private String name;
private Singleton(){}
private static Singleton s=new Singleton();
public static Singleton getInstance(){
return s;
}
public void test(){
System.out.println("name:"+name);
}
public void setName(String name){
this.name=name;
this.test();
}
}
/**
* 懒汉式
* Singleton1进内存,对象还没存在,只有调用了getInstance方法时,才建立对象,这就是延迟加载
* 缺点:
* 容易出错,
* 解决方案1,加同步关键字:Synchronized,但是加完后,程序执行效率会降低的很多
* 最终解决方案
*/
class Singleton1{
private int age;
private Singleton1(){}
private static Singleton1 s=null;
public static Singleton1 getInstance(){
if(null==s){
synchronized(Singleton1.class){//加锁 这是最终解决方案,双重判断,提高效率
if(null==s){
s=new Singleton1();
}
}
}
return s;
}
public int getAge(){
System.out.println("age:"+age);
return age;
}
public void setAge(int age){
this.age=age;
}
}
----------------------
android培训 java培训 期待与您交流! ----------------------
相关文章推荐
- 黑马程序员——java小结_007_单例设计模式(懒汉式、饿汉式)
- 黑马程序员-单例设计模式:懒汉式和饿汉式
- 黑马程序员_专题:单例复习(懒汉式,饿汉式)
- 黑马程序员-----关于懒汉式和饿汉式小结
- 黑马程序员--懒汉式和饿汉式单例设计模式
- 黑马程序员_Singleton模式(单例模式)饿汉式和懒汉式
- 黑马程序员--单例设计模式的笔记(懒汉式,饿汉式)
- 黑马程序员-单例设计模式:“饿汉式”和“懒汉式”
- 黑马程序员-面向对象-06天-6(单例设计模式-饿汉式,懒汉式)
- 黑马程序员——单例(懒汉式+饿汉式)
- 黑马程序员一单例设计模式的饿汉式与懒汉式以及加锁的情况
- 设计模式中饿汉式单例类和懒汉式单例类
- 黑马程序员——java中关于单例设计模式和懒汉式多调用的问题
- 懒汉式 && 饿汉式 的单例模式
- 单例模式(懒汉式和饿汉式)
- 设计模式——懒汉式单例类PK饿汉式单例类
- Java设计模式中的单例模式的懒汉式和饿汉式
- 懒汉式单例和饿汉式单例优缺点
- 懒汉式与饿汉式
- Java单例模式:饿汉式和懒汉式的实现