java工程师中兴面试题
1.servlet線程安全嗎 怎樣避免?
Servlet處于服務器進程中,它通過多線程方式運行其service方法,一個實例可以服務于多個請求。所以Servlet是線程不安全的。
有幾種方法可以實現Servlet線程安全:
1,實現 SingleThreadModel 接口的servlet是線程安全的
2,用synchronized同步對共享數據的操作
3,避免使用實例變量
Servlet的優勢在于多線程,高并發。第一種方法其實就是扼殺了其并發性能,所以不推薦在高并發的業務環境下使用。
2.web啟動線程
調用servlet的時候,啟動線程就ok了
不要用listener,如果用了,tomcat啟動就會加載,會提高tomcat內存用量
3.spring事務控制調用存儲過程,存儲過程中commit了還可以rollback嗎?
commit后就不能rollback了
4.查詢緩存是什么
通過SQL查詢的話,是不會經過hibernate的緩存的
hibernate中 ,使用createSQLQuery(sql)查詢,在開啟getHibernateTemplate().setCacheQueries(true);后,執行到query.list();報異常:java.lang.ArrayIndexOutOfBoundsException: 0
當把關閉緩存getHibernateTemplate().setCacheQueries(false)能正常返回。
原因估計是createSQLQuery返回的對象不受hibernate 管理,因此對其設置緩存失效。
5.Struts2+Spring+Ju
總結
以上是生活随笔為你收集整理的java工程师中兴面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Wonderware-InTouch用脚
- 下一篇: 关于MFC窗口句柄,窗口ID,窗口指针