我有一个Map,它将被多个线程同时修改.
Java API中似乎有三种不同的同步Map实现:
HashtableCollections.synchronizedMap(Map)ConcurrentHashMap据我所知,这Hashtable是一个旧的实现(扩展过时的Dictionary类),后来经过调整以适应Map界面.虽然它是同步的,但似乎存在严重的可扩展性问题,并且不鼓励新项目.
但是其他两个怎么样?返回的地图Collections.synchronizedMap(Map)和ConcurrentHashMaps 之间有什么区别?哪一种适合哪种情况?
Windows(Vista)命令行上获取远程Web服务器上文件大小和修改时间的最佳方式(或工具)是什么,而不下载它?
目前我有这样的结构:
A
|
+--B
|
+--C
Run Code Online (Sandbox Code Playgroud)
它使用连接表映射每个子类一个表.由于历史原因,我也使用了鉴别器,所以目前的情况如Hibernate手册第9.1.3节所述.
问题:如何扩展这样的结构的映射:
A
|
+--B
| |
| D
|
+--C
Run Code Online (Sandbox Code Playgroud)
我<subclass>可以<subclass>在hibernate映射吗?什么<key>我需要S'
我有一个接口A,我必须提供一些不同的实现.但是,这些实现共享一些辅助方法,因此我将这些方法移动到抽象基类.
Interface A {
void doX();
}
abstract Class B implements A {
protected void commonY() {
// ...
}
@Override
public abstract void doX();
}
Class C extends B {
@Override
public void doX() {
// ...
}
}
Class D extends B {
@Override
public void doX() {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码按预期工作,但我有几个问题:
我应该在B类中声明抽象方法doX()吗?为什么不)?
我是否还应该在C类和D类上明确声明"实现A"?为什么不)?
什么是org.springframework.orm.hibernate3.support.BlobByteArrayType有用吗?
为什么不将a映射byte[]为Hibernate基本类型" 二进制 "?
有什么区别?什么时候用哪个?
谢谢!
java ×4
hibernate ×2
abstract ×1
blob ×1
class ×1
command-line ×1
concurrency ×1
declaration ×1
dictionary ×1
http ×1
inheritance ×1
interface ×1
orm ×1
spring ×1
windows ×1