- 浏览: 9296 次
- 性别:
- 来自: 南阳市
最新评论
文章列表
先来看一下Java语言的基本数据类型。
它包括:
类型 描述 取值范围
Boolean 布尔型 只有两个值 false
Char 字符型
Byte 8位带符号整数 -128到127之间的任意整数
Short 16位无符号整数 -32768~32767之间的任意整数
Int 32位带符号整数 -2^31到2^31-1之间的任意整数
Long 64位带符号整数 -2^63到2^63-1之间的任意整数
Float 32位单精度浮 ...
1.在静态方法上使用同步时会发生什么事?
同步静态方法时会获取该类的“Class”对象,所以当一个线程进入同步的静态方法中时,线程监视器获取类本身的对象锁,其它线程不能进入这个类的任何静态同步方法。它不像实例方法,因为多个线程可以同时访问不同实例同步实例方法。
2.静态同步方法与非静态同步方法会相互影响吗?
静态方法的锁对象是该类的“Class”对象,非静态方法的锁对象是该类的某个实例对象,所以,两者之间是不存在竞态关系(即不会相互影响)。也即当一个类的一个静态同步方法被调用时,它的非静态同步方法可以同时被调用,而不会受其影响。
3.当一个同步方法已经执行,线程能够调用对象上的非同步实例方法 ...
public class Singleton{
private static Singleton instance = null;//是否是final的不重要,因为最多只可能实例化一次。
private Singleton(){}
public static Singleton getInstance(){
if(instance == null){
//双重检查加锁,只有在第一次实例化时,才启用同步机制,提高了性能。
synchronized(Singleton ...