技术门诊是51CTO社区品牌栏目,每周邀请一位客座专家,为广大技术网友解答疑问。从热门技术到前沿知识,从技术答疑到职业规划。每期一个主题,站在最新最热的技术前沿为你引航!

  本期特邀《轻量级Java EE企业应用实战(第3版)》一书作者李刚老师,针对Java EE企业应用开发中遇到的典型问题给予解答,欢迎网友积极提问,与专家一起讨论!

查看本期门诊精彩实录:http://doctor.51cto.com/develop-261.html

参与最新技术门诊:运维工程师的生存法则

精选本期网友提问与专家解答,以供网友学习参考。

Q:李老师您好。我想补充一我的问题,我想问一下关于:
1.关于我们使用这些框架,性能优化方面的建议。
2.关于代码优化方面,架构优化方面了希望能给指点个方面。
十分感谢,期待您的回复。

A:性能优化方面,可以从如下几个层次考虑
1. Java编程的代码风格,比如尽量使用String直接量、避免多次重复new实例,使用位移运算代替乘、除运算等等。
2. 从持久层考虑,优化底层数据库设计,比如建索引、分表存储等,同时对查询语句进行调优。
3. 从数据缓存方面着手。采用适当的缓存策略,可以减少与底层数据库的交互次数。
4. 采用“静态响应”,服务器可以采用页面缓存技术,将经常被请求的页面做成静态缓存,避免每次请求都需要重新生成响应页面。
5. 提升服务器性能,可以考虑使用cluster,增加负载均衡、fail over等。

 

Q:我挺讨厌Hibernate的,Hibernate把程序员和数据库隔离了,长久使用Hibernate的程序员虽然能够快速开发,但是写出来的代码的执 行效率很低,比不上jdbc直接操作mysql,我认为Struts +Spring +jdbc就够了,我面试的很多程序员对数据库一无所知,对于程序优化不知道如何优化,完全是代码堆砌。不知道老师对Hibernate是如何理解的?

A:我十分认同你的观点!早几年我甚至在网络上、其他培训机构过来的学生听到一个观点:有了Hibernate,以后就不需要JDBC了。当时我就极力驳斥这种观点。

A:有一定道理的。可以这样说,所以IT技术都是以数据为核心的。

 

Q:老师您好。