小编Sic*_*ong的帖子

收益/加入释放监视器是否锁定?

可能重复:
如果在同步方法中调用thread.yield()会失去对对象的锁定?

我知道Thread.sleep()持有该锁,但Object.wait()释放了该锁。有人说yield实际上是实施sleep(0)。这是否意味着收益率不会解除锁定?

另一个问题。假设当前线程已获取锁,然后调用anotherThread.join()。当前线程是否释放锁定?

java multithreading

5
推荐指数
1
解决办法
4045
查看次数

为什么Java不抱怨通用地图转换?

Object stringMap = new HashMap<String, String>(){{ put("1", "a"); }};
Map<Integer, String> integerMap = (Map<Integer, String>)stringMap; // Why doesn't Java throw an exception at run-time?

// I know this is not a problem if stringMap is declared as Map<String, String>.
// However, the actual code above was using Spring Bean.
// Map<Integer, String> integerMap = (Map<Integer, String>)context.getBean("map");

System.out.println(integerMap.get(1)); // prints null
System.out.println(integerMap.get("1")); // prints a
Run Code Online (Sandbox Code Playgroud)

Q1.为什么Java允许在运行时进行这样的转换?

Q2.如果使用bean,避免此错误的最佳做法是什么?

java generics casting map

5
推荐指数
1
解决办法
537
查看次数

标签 统计

java ×2

casting ×1

generics ×1

map ×1

multithreading ×1