- 博客(15)
- 问答 (1)
- 收藏
- 关注
说一说hibernate的Get和Load
N多面试题里,只要涉及hibernate就会这样的问题,说一说hibernate的Get和Load到底哪个效率高?我也曾经被这样面过,也被这样的面试题BS过,当时的答案无非就是从谷歌百度上搜一把记下,比如Get不用使用一级缓存和二级缓存,直接从数据库中load。而load采用proxy,走一级缓存和二级缓存,诸如此类的。但是事实上这样吗?proxy和从缓存中有神马关系啊?使用proxy就能...
2011-11-24 10:01:11 60
对Cookie的一点认识
1. Cookie是怎么在服务器和浏览器之间传递的?(以Tomcat为参考)response.addCookie()将cookie写到客户端request.getCookies()获取浏览器端的cookie但底层是怎么实现的?查看一下Tomcat的源码得知:原来是把Cookie对象拼成一定格式的字符串放在header中,header的名字叫set-cookie.有一点尤其重要可以有...
2011-11-21 09:18:52 104
BoneCP数据源记录SQl比hibernate的show sql好用
如何使用1. 配置logStatementsEnabled为true <property name="logStatementsEnabled" value="true"/> 2 .配置log日志log4j.logger.com.jolbox=DEBUG,SQLLOGlog4j.appender.SQLLOG=org.apache.log4j.D...
2011-11-17 15:35:24 72
StringBuffer与StringBuilder浅析
1. 为什么要用StringBuffer和StringBuilder? String c = "aaa" +"bbb"与sb.append("aaa").append("bbb")有什么区别,类似这样的问题大家应该都很熟悉,它经常出现在面试题,我想答案大家都已经很清楚,用+会创建多个String,因为String是存放在常量池中的,而且是不可以变的,"aaa"变不成"aaabbb"
2011-11-17 13:23:58 61
初始化(Map,List)容器类的容量会有一定的性能提升
容器类底层的数据结构大多使用数组,我们知道数组是不能动态修改它的size,假如非要修改的话,只要初始化另外一个更大容量的数据,并将原来的数据复制过去。对容器类的插入操作,首先就得check是否容量满足,如不满足先扩展 public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments m...
2011-11-15 13:39:22 202
SpringMVC 拦截器实现分析
SpringMVC的拦截器不同于Spring的拦截器,SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServlet,所以只需要在DispatcherServlet上做文章即可,DispatcherServlet也没有代理,同时SpringMVC管理的Controller也不有代理。哪不难想到我们在执行controller之前做某些动作,执行...
2011-11-15 13:15:17 63
利用springMVC的interceptor实现页面性能监控(Filter亦可)
调优第一步,找出耗时比较长的页面进行优化。利用interceptor能轻易搞定。interceptor提供了preHandle和postHandle以及afterCompletion三个方法。preHandle调用controller具体方法之前调用,postHandle完成具体方法之后调用,afterCompletion完成对页面的render以后调用,至此整个页面渲染完成。也就是说我们在...
2011-11-15 13:00:43 154
原创 Tomcat的ThreadLocalLeakPreventionListener工作原理
当context stop的时候,如果thread pool的thread没有正常停止的话,而且ThreadLocal中引用了webclassloader加载的对象,有很有可能造成内存泄露,一个解决办法就是杀掉所有的threadpool的线程。Tomcat的ThreadLocalLeakPreventionListener就是这样一个原理 Engine engine = (Engine) cont...
2011-11-14 18:28:45 338
原创 使用HttpServletResponseWrapper获取渲染jsp以后的html
有些场景,我们会试图获取渲染jsp以后的html,或者修改一下生成json,例如把普通的json换成跨域的jsonp。ResponseFacade只提供了getOutStream(),但是获取不了stream的容器bytearray,不通过hacker的方式根本获取不了。Tomcat也意识到这一点,提供了HttpServletResponseWrapper帮我们解决这个问题,对于Http...
2011-11-14 15:50:26 319
原创 Servlet Filter与Spring interceptor的执行顺序
Filter有顺序吗?我们怎么控制filter的执行顺序。通过Tomcat的代码分析,servlet在Filter执行完成后才调用,如有多个filter怎么控制执行顺序,首先会想到在web.xml配置某个参数,例如order之类的,但查找一下一番,servlet并没有这个参数。试试filter Mapping的配置的先后顺序,果然有效,原来filter的执行顺序就考filter mapping...
2011-11-14 09:37:53 380
原创 Tomcat NIO/APR对静态资源提速
1.Tomcat如何处理静态资源?处理静态资源很简单,只需根据URI定位到文件,然后读取文件,写到response的outputstream中去,但tomcat是如何处理,是不是通过servlet container统一处理,还有另有其他方式?最终我发现是由DefaultServlet来处理。2.APR/NIO Connecter不仅能提高吞吐量,而且使用sendFile使用内核IO,而不是j...
2011-11-13 14:25:26 396
原创 Tomcat NioEndPoint初探
startInternal():创建worker线程池,初始化Poller线程,根据可以用的处理器的数目,我的机器是双核超线程的,所以为4.Poller是连接器的关键,不断地轮询分发连接,交给worker线程去处理。 // Create worker collection if ( getExecutor() == null ) { ...
2011-11-11 13:10:49 203
原创 Curl实现web serivce调试调用
curl -v --header "content-type: application/soap+xml" --data @soap1.xml "WsUrl地址" -w resul...
2011-11-10 17:08:18 118
原创 Spring异步任务@asynch
AOP+JCU的ThreadPool和Future实现了异步任务,很简单,直接看spring实现的源代码吧:public Object invoke(final MethodInvocation invocation) throws Throwable { Future result = this.asyncExecutor.submit(new Callable<Objec...
2011-11-10 17:04:59 115
HashMap无序与LinkedHashMap有序
HashMap为什么是无序? HashMap的数据结构是table[entry],entry是一个链表结构,数据的每个元素是一个链表。不同key,但是具有相同hashcode会落在table[hashcode]的链表上当使用iterator遍历时,使用如下code: final Entry<K,V> nextEntry() { if (mo...
2011-11-10 16:51:07 1584
空空如也
Javaeye API的Http basic验证
2009-03-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人