前面讲的用DCL可以解决多线程单例模式的非线程安全,虽然看下去十分完美,但还是有一些问题,具体分析看这篇:http://blog.csdn.net/ochangwen/article/details/51348078
当然用其他的办法也能达到同样的效果。
1、使用静态内置类实现单例模式
public class Singleton {
/* 私有构造方法,防止被实例化...
分类:
编程语言 时间:
2016-05-12 21:02:23
阅读次数:
409
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类 ...
分类:
编程语言 时间:
2016-04-01 12:44:46
阅读次数:
169
1)java中还有个static代码块的形式,形式为 static {……}。static代码块是类定义的一部分,仅仅在类被初次加载的时候被调用一次,之后再调用不会再加载。那么类什么时候首次被加载呢?就是在主类中(包含main函数的类)new一个对象实例(包含static代码段的类没有main函数)
分类:
编程语言 时间:
2016-02-25 00:04:39
阅读次数:
192
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 只要这个类被加载,Java虚拟机就能根据
分类:
编程语言 时间:
2016-02-19 00:26:36
阅读次数:
209
链接地址:http://www.cnblogs.com/devinzhang/archive/2011/12/13/2286367.html static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被stati
分类:
编程语言 时间:
2016-02-03 16:34:06
阅读次数:
188
package com.btp.t2;/* * 类的第四个成员:初始化块(代码块) * 1.代码块如果有修饰的话,那么只能使用static * 2.代码块分类: * ①静态代码块(static修饰): * 1.里面可以有输出语句 * 2.随着类的加载而加载,而且只被加载一次 * 3.多个...
分类:
编程语言 时间:
2016-01-22 14:16:45
阅读次数:
172
Person p1=new Person("张三",20);该句话都做了什么事情?1.因为new用到了person.class 所以会先找到Person.class文件并加载到内存中。2.执行该类中的static代码块,如果有的话,给Person.class类进行初始化。3.在堆内存中开辟空间,分配...
分类:
其他好文 时间:
2015-12-27 17:52:55
阅读次数:
150
1>static:静态修饰符 static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这...
分类:
编程语言 时间:
2015-12-14 21:06:22
阅读次数:
196
一 非Static代码块{ .............................}1 可对类的属性初始化;2 可以有输出语句;3 一个类中可有多个非静态代码块,顺序执行;4 每创建一个类的对象,非静态代码块加载一次;5 非静态代码的执行早于构造器。二 Static代码块static { ......
分类:
其他好文 时间:
2015-11-19 00:37:16
阅读次数:
152
1、static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,被 static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享(因此可以用來统计一个类有多少个实例 化对象),所以有些属性希望被所有对象共享...
分类:
其他好文 时间:
2015-07-31 01:05:14
阅读次数:
117