javaEE精华总结

javaEE精华总结

ID:42722198

大小:1.25 MB

页数:163页

时间:2019-09-20

javaEE精华总结_第1页
javaEE精华总结_第2页
javaEE精华总结_第3页
javaEE精华总结_第4页
javaEE精华总结_第5页
资源描述:

《javaEE精华总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Question&Answer总结人:王健不得随意更改,如果要引用或是发布,请注明出处:王健.QQ549051701。作者保留申诉的权力1、Hibernate问题-read-write缓存策略read-write是严格的读取策略。在将一个对象放到缓存时,同时会加一把锁。在当前session没有关闭的情况下,其他session不可以访问缓存中的同一个对象。真到此锁定的session关闭。@TestpublicvoidtestUpdate(){Sessions2=HibernateUtils.openSession();Personp1

2、=(Person)s2.get(Person.class,"402881e4345a53ce01345a543b9a0004");System.out.println("第一次查询"+p1);//查询获取一个新的对象s2.clear();//将一级缓存中的数据清除booleanboo=//判断二级缓存中,是否存在此对象,为trueHibernateUtils.getSessionFactory().getCache().containsEntity(Person.class,"402881e4345a53ce01345a543b9a

3、0004");System.out.println("是否存在这个对象:"+boo);//truePersonp2=(Person)s2.get(Person.class,"402881e4345a53ce01345a543b9a0004");//read-writeg下为什么不查二级缓存System.out.println("同一个session第二次查询"+p2);//使用同一个session查询,结果因为是read-write,//因为对象已经上锁,所以不会从二级缓存中返回数据//s2.close();//关闭或是不关闭Sys

4、tem.out.println("上一个Session关闭以后");Sessions3=HibernateUtils.openSession();boo=HibernateUtils.getSessionFactory().getCache().containsEntity(Person.class,"402881e4345a53ce01345a543b9a0004");System.out.println("是否存在这个对象:"+boo);//truePersonp3=(Person)s3.get(Person.class,"40

5、2881e4345a53ce01345a543b9a0004");//read-write下,为什么这儿查二级缓存System.out.println(p3);s3.close();}2、为什么16进制数要与OxFF与运算以下是MD5加密算法示例,其中使用了OxFF的与运算:@Testpublicvoidmd5()throwsException{Stringpwd="1234";MessageDigestmd=MessageDigest.getInstance("MD5");byte[]bts=md.digest(pwd.getBy

6、tes());//16位pwd="";for(bytebt:bts){System.err.println("src:"+bt);Stringstr=Integer.toHexString(bt);System.err.println("src:-----"+str);str=Integer.toHexString(bt&0xFF);//为儿在算MD5时为什么与要0xff进行与运算呢System.err.println("dest:"+str);if(str.length()<=1){str+="f";}pwd+=str;Syste

7、m.err.println("---------------------------------");}System.err.println("最后的密码是:"+pwd);}我们要讨论的主要问题是,为什么上面注解处要与OxFF进行与运算而不是其他值呢?因为OxFF的16进制数为ffffffff(即8个f)。按与运算的法则,先来看二进制的与运算,如:-1&1=1-1(负1)的二进制编码为:11111111111111111111111111111111即一个32位的字符串,前面一位是1表示负数1(正1)的二进制编码为:00000000

8、000000000000000000000001即,只有最后一位是1,其他部分全部为0按&(与运算)的法则结果:00000000000000000000000000000001即,只有当两个都为1时才为1,所以最后的结果为:1(正1)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。