不是静态的但是Locale的一个实例不能有两个引用同时属于两个线程吗?如果其中一个调用了hashCode()同时另一个writeObject()不就会出错了吗
解决方案 »
- 求助考试题目关于垃圾收集的
- 为什么echo $JAVA_HOME的值和System.getProperty()的java.home值不一样呢 ?
- 初学者求教,请问JPanel所绘制的图形如何在最小化后保持?
- for循环的循环变量赋初值否引起的怪结果,自己想不明白
- java.util.zip包 压缩、解压缩求解
- Java 多线程 的并发执行
- 命令行关闭后,怎么保证线程仍在后端执行
- Swing Layout的一个简单问题。
- 请教这句话为什么是错的呢?多谢!
- 我下了一个源码,不知道怎么将它使用,导入
- 如何将在数据库中查询的东西在网页上显示出来?
- 请教 ASCII中的前32个 能否在Java流中顺利传输?
但从方法本身来说,多线程的调用,有可能会引起数据的出错,如你所说。这也是锁定(synchronized标志)提出来的原因。
我时个教JAVA的语言老师,类似的问题学生经常问到
你以下的写法是不正确的:synchronized(hashcode) {
int temp = hashcode;
hashcode = -1;
out.defaultWriteObject();
hashcode = temp;
}
因为synchronized程序块只能对对象的访问进行同步,基本类型是不允许的。而hashcode 是整型的基本类型。你再看看相关的资料