小编aks*_*hay的帖子

Java HashMap如何使用相同的哈希代码处理不同的对象?

根据我的理解,我认为:

  1. 两个对象具有相同的哈希码是完全合法的.
  2. 如果两个对象相等(使用equals()方法),则它们具有相同的哈希码.
  3. 如果两个对象不相等,则它们不能具有相同的哈希码

我对么?

现在,如果我是正确的,我有以下问题:HashMap内部使用对象的哈希码.因此,如果两个对象可以具有相同的哈希码,那么它如何HashMap使用它所使用的键?

有人可以解释HashMap内部如何使用对象的哈希码吗?

java hash-function hashmap hashcode

205
推荐指数
9
解决办法
20万
查看次数

只获取类Class.getName()的名称

我怎样才能得到班级的名字

String.class.getName()  returns java.lang.String
Run Code Online (Sandbox Code Playgroud)


我只对获得最后一部分感兴趣,即只有String
Any Api才能做到这一点?

java class

76
推荐指数
3
解决办法
9万
查看次数

在两个线程之间进行通信

我有一个帖子,A里面有一个列表.List包含一些对象.现在我想设计一个mechanisim,通过它我可以向线程发送一些消息A.

Thread A循环运行(它不等待或睡眠).其他一些线程,B向线程发送一些消息A,线程A清空所有队列.

如何在线程之间发送消息?

class A extends Thread {
    List<Object> objs = something; //Init it
    void run() {
        while(true) {
            //Body which works on objects.
            //After receiving an external message, "A" should perform some action, for example, empty objects.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我可以这样做吗?

class A extends Thread {
    List<Object> objs = something; //Init it
    Boolean flag = false;

    public void setFlag(boolean value) {
        synchronized(flag) {
            this.flag = value;
        } …
Run Code Online (Sandbox Code Playgroud)

java multithreading communicate

23
推荐指数
1
解决办法
4万
查看次数

java中的datetime数据类型

我可以在Java中使用哪种数据类型来保存当前日期和时间?我想将日期时间存储在数据库中,并在java bean中有一个字段来保存它.

java.util.Date吗?

java timestamp date

15
推荐指数
3
解决办法
14万
查看次数

can file.rename要替换现有文件吗?

// File (or directory) to be moved
File file = new File("filename");

// Destination directory
File dir = new File("directoryname");

// Move file to new directory
boolean success = file.renameTo(new File(dir, file.getName()));
if (!success) {
    // File was not successfully moved
    //can it be because file with file name already exists in destination?
}
Run Code Online (Sandbox Code Playgroud)

如果目标中已存在名称为"filename"的文件,则会将其替换为新文件吗?

java file-io file

11
推荐指数
1
解决办法
1万
查看次数

删除节点的所有子节点

我有一个DOM文档的节点.如何删除其所有子节点?例如:

<employee> 
     <one/>
     <two/>
     <three/>
 </employee>
Run Code Online (Sandbox Code Playgroud)

变为:

   <employee>
   </employee>
Run Code Online (Sandbox Code Playgroud)

我想删除所有子节点employee.

java xml parsing dom

9
推荐指数
2
解决办法
2万
查看次数

HQL更新的问题

当我尝试执行以下HQL查询时:

Query  query =  getSession().createQuery("update XYZ set status = 10");
query.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

Exception in thread "main" org.hibernate.QueryException: query must begin with SELECT or FROM: update
Run Code Online (Sandbox Code Playgroud)

编辑:
我也试过跟随.但它也没有工作.

org.hibernate.Query  query =  getSession().createQuery("update XYZ t set t.status = 10");
Run Code Online (Sandbox Code Playgroud)

EDIT2:在hinbernate.cfg.xml中进行更改解决了我的问题早些时候我正在使用

setting hibernate.query.factory_class"   = org.hibernate.hql.classic.ClassicQueryTranslatorFactor
Run Code Online (Sandbox Code Playgroud)

现在使用以下属性

<property name="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</property>
Run Code Online (Sandbox Code Playgroud)

java hibernate

9
推荐指数
1
解决办法
4979
查看次数

在hibernate中更新对象的字段

我有一个object A映射到table ADB的

class A {
     Integer id;
     String field2,field2;field3 ,... fieldN;
     //lots of other attribute
}
Run Code Online (Sandbox Code Playgroud)

现在我想编写一个只更新单个字段的DAO api.一种方法是我可以先加载对象然后更改我需要的属性然后使用merge api

//start transcation
A a = session.load(A.class, id);
A.setfieldP(newValue)
session.merge(A)
//commit transcation
Run Code Online (Sandbox Code Playgroud)

现在,如果我使用以下代码

 //start transcation
 A a = new A();
 a.setId(id); //set a id by which object A exists in DB
 A.setfieldP(newValue)
 session.merge(A)
 //commit transaction
Run Code Online (Sandbox Code Playgroud)

现在第二种方法除了id和fieldP之外的所有字段都设置为null

1)现在还有其他方法吗?
2)我可以使用更新而不是合并吗?

java merge hibernate save

8
推荐指数
2
解决办法
3万
查看次数

如果我从我的synchronized方法调用非同步方法是非同步方法线程安全吗?

我从同步方法中调用noonsynchronized方法是否是线程安全的?

我有两种方法如下:

public class MyClass{

 void synchronized doSomething1(){

   doSomething2();
  }

void doSomething2(){
 //will this block of code be synchronized if called only from doSomething1??
 }

}
Run Code Online (Sandbox Code Playgroud)

java methods thread-safety

8
推荐指数
2
解决办法
2781
查看次数

什么是xml规范化?

可能重复:
Java Node normalize方法有什么作用?

什么是xml规范化.我在javadoc中找到了以下但我无法理解它?有人可以帮忙吗?

public void normalize()
Run Code Online (Sandbox Code Playgroud)

将所有Text节点放在此Node下面的子树的完整深度(包括属性节点)中,形成"普通"形式,其中只有结构(例如,元素,注释,处理指令,CDATA部分和实体引用)分隔Text节点,即既没有相邻的Text节点也没有空的Text节点.这可以用于确保文档的DOM视图与保存和重新加载的视图相同,并且在依赖于特定文档树结构的操作(例如XPointer [XPointer]查找)是使用.如果附加到Node.ownerDocument的DOMConfiguration对象的参数"normalize-characters"为true,则此方法还将完全规范化Text节点的字符.注意:如果文档包含CDATASections,单独的规范化操作可能是不够的,因为XPointers不区分Text节点和CDATASection节点.自:DOM Level 3

java xml terminology normalization

7
推荐指数
1
解决办法
7847
查看次数