1,同一对象的识别:
Session session = sessionFactory.openSession();
Transaction t = session.beginTransaction();
Costmer c =(Costmer)session.get( Costmer.class,3) ;
Costmer c1 =(Costmer)session.get(Costmer.class,3) ;
session.close();
System.out.println(c==c1);
输出结果为true,在session取值时,两者内存地址一致。
2,不同对象的识别:
Session session1 = sessionFactory.openSession();
Costmer c =(Costmer)session1.get(Costmer.class,3) ;
session1.close();
Session session2 = sessionFactory.openSession();
Costmer c1 =(Costmer)session2.get(Costmer.class,3) ;
session2.close();
System.out.println(c==c1);
System.out.println(c.equals(c1));
输出结果为false false,因为session2建立时seeeion1已经关闭,内存地址不同,故结果不同。
3,地址不同的对象的识别
public class test {
@Test
public void ss(){
String a=new String("WZQ");
String b=new String("WZQ");
System.out.println(a==b);
System.out.println(a.equals(b));
}
输出结果为false true,尽管内存地址不同,但是地址中的值相同(a和b都是new出来的新对象)。