最简单死锁程序,cynchronized()里嵌套cynchronized()
括号里边只能放对象锁,也就是必须是对象,那为什么
Sting s=“abc”;
String s1=“bcd”;
把s和s1放进去也能锁住,这样说String是一个对象吗?它不是一个引用类型?
字符串类型不是和常量一样在堆内存中开辟空间存放数据吗?
按这样理解,为什么
final int b=2;
final int a=1;把a和b放进锁里就不管用呢?
我还试了 创建两个数组
int[] array = new int[1];
int[] arr = new int[1];
把arr和array放进死锁中同样能成功,那是不是说synchronized()括号中放对象、引用类型都行?
但老师好像讲必须是对象锁,那 String 和数组也是对象吗?
有点糊涂。。。。 |