Java
jinhuiyu
IT公司面试手册站长
http://www.mianwww.com
关注Java、 Web, 从事对美软件外包
新浪微博:http://t.sina.com.cn/mianwww
展开
-
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容么?
看到有网友提到这个问题,差了查资料,其实这两个问题都是有肯定答案的,不过最好还是不要这样做。如果session里面所有的对象都是序列化的,应该可以把HttpSession作为一个参数传到EJB的方法,这样的话就是值传递,相当于这个HttpSession是自读的,如果在EJB里面改变session的值,不会影响到Servlet容器里面的HttpSession,但是因为EJB的远程接口之间是使用远程引原创 2009-01-04 12:52:00 · 1880 阅读 · 0 评论 -
groovy Exports all table names in database
In ant build file:classname=”org.codehaus.groovy.ant.Groovy”classpathref=”groovy.classpath”/>Groovy script:import groovy.sql.Sqlimport oracle.jdbc.OracleDriverp原创 2008-12-17 13:16:00 · 1198 阅读 · 0 评论 -
Database Connection Pooling with Tomcat
Software object pooling is not a new concept. There are manyscenarios where some type of object pooling technique is employed toimprove application performance, concurrency, and scalability. After翻译 2008-12-20 05:26:00 · 1261 阅读 · 1 评论 -
Spring 中的 Bean Scope
3.4. Bean scopesWhen you create a bean definition what you are actually creating is a recipe for creating actual instances of the class defined by that bean definition. The idea that a bean defi原创 2008-12-22 02:08:00 · 3055 阅读 · 1 评论 -
一种正规的性能调优方法:基于等待的调优
企业java应用的性能调优是一项艰巨的、有时甚至是徒劳的任务,这是由现代应用的复杂性和缺少正规的调优方法导致的。现代企业应用与十年前的应用相比差距很大,如今这些应用支持多输入、多输出、复杂的框架和业务处理引擎。而十年之前,基于web的企业应用只是通过网络浏览器获得输入信息,然后与数据库或者遗留系统交互进行后台处理,最后把输出结果返回给浏览器(HTML)。现在,输入信息可以来自HTML浏览器转载 2008-12-20 12:38:00 · 975 阅读 · 0 评论 -
Tomcat Mysql datasource 数据源配置
好像Tomcat6的数据源配置比较简单一些,不过如果按照以前版本的方法设置的话,会出现很多问题如:Name jdbc is not bound in this Context或者 Cannot create JDBC driver of class for connect URL null等等我把我用Tomcat6和Mysql5.17配置数据源的步骤写出来,大家可以参考一下1. 下载my原创 2008-12-28 11:48:00 · 6171 阅读 · 3 评论 -
终极解决端口被占用问题
在开发工程中常常会遇到java.net.BindException: Address already in use: bind 或者 Port8080 is already is use等异常,然后web server不能启动等问题,这是因为已经有其他程序或者进程占用了相应的端口,解决这个问题就要找出到底是哪个程序占用了这个端口,然后关掉那个程序或者杀掉那个进程就可以了。解决的步骤如下:1原创 2009-10-23 13:31:00 · 1992 阅读 · 0 评论 -
Hudson的build一直提示pending-waiting for next available executor
发现系统的CIE环境中Hudson一直提示pending-waiting for next available executor, 而不执行build任务,等了好久都没反应,重启一下tomcat后发现好用了,不过下次执行build又开始提示waiting for next available executor后来发现是因为tomcat所在的目录所剩磁盘空间太少了,把tomcat目录移到另外一个原创 2009-11-18 11:37:00 · 7943 阅读 · 0 评论 -
WebLogic 性能调优之Statement Cache
当你在你的应用程序或者EJB中使用Prepared Statement或者Callable Statement时, 应用服务器和数据库服务器会首先对Prepared Statement和Callable Statement进行预处理,然后再进行执行。Statement cache是Weblogic 提供的对预处理后的Statement进行缓存的功能,可是使减少预处理所用的时间。设置原创 2010-03-16 17:06:00 · 7589 阅读 · 0 评论 -
WebLogic的Session持久化策略
Weblogic共提供了五种Session持久化策略:1. 内存存储 Memory (single-server, non-replicated)2. 文件系统持久化策略 File system persistence3. JDBC持久化策略 JDBC persistence4. 基于Cookie的Session持久化策略 Cookie-based session pe原创 2010-03-22 12:51:00 · 7704 阅读 · 2 评论 -
Eclipse Error:A cycle was detected in the build path of project
这个错误问题是因为循环依赖,两个项目互相都有依赖关系,不会造成编译错误,只需要配置一下Eclipse把它降为Warning就可以了(We are software developers, we don’t care the warnings! 呵呵)打开Windows>Preferences > Java > Compiler > Building > Build path problems >原创 2010-04-08 14:23:00 · 12890 阅读 · 3 评论 -
为什么很少有Java程序员精通Multi-threading, Concurrency and Garbage Collection?
<br />在Linkedin的Java Group里面看到了这个问题。主要分为如下几个观点:<br /> <br />1. Multi-threading, Concurrency太难了<br />2. 高级的Java开发人员太少了<br />3. 用到这方面知识的机会的太少了<br />4. 遇到这方面问题的几率太少了<br />5. Java在这方面做的太好了<br /> <br />我的感觉是大多数人的Java开发还是基于Web方面的。GC都让JVM给做了,所以不用学;Multi-threadin原创 2010-09-03 15:12:00 · 4142 阅读 · 6 评论 -
初级Java工程师面试要点
总结一些考察初级Java程序员技术能力的要点,希望对大家有用:Java基础方面:String操作,final的用法作用,GC的用法作用,Java pass by value & pass by reference, static code block, Java Memory, Exception, 接口和抽象类, 多线程, Singleton, Java Reflection 等等, 主要考察应聘者对Java语言的基本应用和理解能力。开源框架方面:Struts, Spring, IoC, Hibernat原创 2010-12-07 10:27:00 · 6399 阅读 · 5 评论 -
Java性能(4) Vector, ArrayList, LinkedList
记得每次面试的时候都会被问到ArrayList和Vector的区别,虽然每次都知道自己改回答什么,但总是感觉不是很理解,所以就查找资料总结一下。JDK 有几种有序集合java.util.List的实现方法,三个最熟悉的是Vector, ArrayList和LinkedList. 在Java性能方面问的比较多的就是这三个List的性能区别。Vector和ArrayList都是基于储存元素的原创 2008-12-17 02:48:00 · 4722 阅读 · 0 评论 -
Java性能(3)调整你的EJB
通用规则一下的几条规则可以有效地提高EJB的性能,不过请留意把一个应用分解成很多个EJB元件会减低性能。EJB元件不是简单的Java 对象,, 他们是包含远程接口调用,安全,事务以及属性和方法的元件。使用高性能的Beans尽可能多的使用高性能的EJB能从整体上提高你的应用的性能。一下是EJB元件的种类,从高性能到地性能排列:无状态对话Bean(Stateless Sessio翻译 2008-12-17 02:47:00 · 1710 阅读 · 1 评论 -
Lucene分页方式
推荐的做法是为每一次分页导航都执行一次新的 查询。因为Hits中保存的并不是真正的Document,因此可以通过HIts.doc(index)的方式取出在一定范围内的Document。在获 得Hits后可以用类似下面的方法进行分页处理:private List processHits(Hits hits,int startIndex,int endIndex)throws Exception转载 2008-12-17 02:45:00 · 2267 阅读 · 0 评论 -
什么是Java的弱引用(Weak Reference)
之前一直没有接触过弱引用这个概念,今天看到以后觉得挺新鲜,就查了查资料总结一下,希望对大家有所帮助。 要理解弱引用,首先要先了解一下强引用(Strong Reference), 其实我之前也并不了解强引用,虽然天天都在用。举例来说: String abc = new String ("abcdf");这就是创建了一个String的实例然后在变量abc中保存一个强引用,为什么说原创 2009-01-05 07:33:00 · 36728 阅读 · 17 评论 -
七个问题全面理解Servlet
1. Servlet的生命周期? Servlet是一种可以在Servlet容器中运行的组件,那么理所当然就应该有一个从创建到销毁的过程,这个过程我们可以称之为Servlet生命周期。Servlet的生命周期可以分为加载、实例化、初始化、处理客户请求和卸载五个阶段,体现在方法上主要是init()、service()和destroy()三个方法。生命周期的具体说明如下:原创 2009-01-05 07:02:00 · 3946 阅读 · 1 评论 -
该如何设置数据连接池的初始大小
数据连接池的大小对产品性能和程序的稳定性都有很大的关系,所以设置数据连接池的大小也是每一个项目都需要考虑的问题。 在产品环境下,最好把数据连接池的初始大小设置为最大值(maximum size), 这样在服务器启动的时候就会创建所有的JDBC连接,如果数据连接池的初始大小小于最大值, 在服务器压力加大的时候,就需要创建另外的JDBC连接, 而这个时候正是服务器最繁忙的时候,所原创 2009-01-04 06:55:00 · 7102 阅读 · 3 评论 -
如何用Lucene为目录创建索引
现在网上很多例子都是基于老版本的Lucene做得例子,我给改了一下,这个例子是基于lucene 2.4的,希望能有所帮助package utils;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.Reader;import org.apache.lucene.analys原创 2009-01-03 02:49:00 · 2741 阅读 · 0 评论 -
是什么造成了weblogic server log文件里的java.io.exception
在你的weblogic server的log文件里面, 你有可能会看到一下Exception(Window NT) java.io.IOException Connection Reset by Peer java.io.IOException: ClientAbortException: java.net.SocketException: Connection reset by原创 2009-01-04 11:23:00 · 5677 阅读 · 1 评论 -
MyEclipse的价格
看到论坛里面好多人都用MyEclipse,我没用过 也不知道用着怎么样到他们的网站上查了查价格标准版的31.75美元专业版的63.55美元专业蓝版的158.95美元虽然不是很贵,但是还是不推荐初学的人用,一是因为用了太多这种辅助工具会让你对基础的知识和原理出现盲点,而且也不利于找工作,估计没有多少公司会面试myeclipse的用法而且就算你工作了,老板不给买的话你就郁闷了。原创 2009-01-17 11:53:00 · 7912 阅读 · 5 评论 -
如何为项目加上代码版本号
我所在的项目有无数个测试环境,每一个环境都有不同版本的代码,所以有了bug以后,提交了代码也不一定能在短时间内部署到所有的测试环境中,这样就有可能出现bug改好了,代码页提交了,但是还有tester在某个环境上报同样的bug,这就需要一个方法能取得所在环境的代码版本以确定改动是不是已经部署到那个环境中去了。 因为我们使用svn和ant,所以就在代码的build脚本中加入了一个targ原创 2009-01-31 06:49:00 · 5247 阅读 · 2 评论 -
用struts (webwork) 的action配置文件和ant进行权限配置(我所在项目的权限解决方案)
我所在的项目有几十种用户角色,每种用户角色都有不同的权限,所以权限的设计也费了很大心思,最后采取了在webwork(我们项目用的webwork)的Action配置文件里面配置权限。然后用Ant生成权限的数据库脚本,并在数据库中生成权限数据。 Action配置文件的一个Action的权限配置如下: /WEB-INF/ftl/account/countyList.html原创 2009-02-02 09:59:00 · 1496 阅读 · 4 评论 -
几个提高JDBC性能的技巧
1. 使用数据连接池(Connection Pool), 避免使用DriverManager.getConnection,参考另外一篇博客 不推荐使用DriverManager.getConnection2. 合理的配置数据连接池参数,参考另外一篇博客 如何设置数据连接池的初始大小 3. 选择合适的事务等级,按照不同的数据库操作类型选择不同的事务等级。 4. 及时关闭Conn原创 2009-01-25 15:18:00 · 3258 阅读 · 1 评论 -
提高Struts2和webwork性能的八个技巧
根据官网上的一些提示,按照一下这些方面做可以提高Struts2的性能。因为struts2继承了webwork, 所以webwork也是一样的。1. 关闭logging和开发模式(devMode), devMode是在struts.properties中设置的, 关闭logging需要修改web.xml文件,加入以下参数debug0detail02. 除非需要,否则不要使用拦截器(intercept原创 2009-01-25 16:01:00 · 2922 阅读 · 0 评论 -
Linux Ubuntu设置Java环境变量
Linux Ubuntu设置Java环境变量1. 下载 jdk的bin文件 例如:jdk-1_5_0_12-linux-i586.bin2. 打开一个terminal, 到bin文件所在的文件夹, 执行 chmod +x jdk-1_5_0_12-linux-i586.bin3. 执行 ./jdk-1_5_0_12-linux-i586.bin4. 提示版权信息,选yes5. 程原创 2008-12-10 04:12:00 · 1468 阅读 · 0 评论 -
Lucene索引数据库 Indexing Database
Lucene一个常见的用例是在一个或者多个数据库表进行全文检索。 虽然MySql有全文检索的功能,但是如果字段和数据量增加,MySql的性能会减低很快。映射数据到Lucene通常情况下最需要解决的问题是怎么把你数据库的数据描述到Lucene里面,最可能的解决方法法就是把你的数据表放到平面的Lucence Document对象里面。用伪代码表示:String sql = “selec翻译 2008-12-17 02:43:00 · 2715 阅读 · 0 评论 -
Enterprise Service Bus之旅
<br />最近加入了一个新的项目组,做ALSB,版本2.6,距离Oracle收购BEA已经很久了,倒回去做BEA版本的东西确实有点不习惯,很多资料和文档都不好找了。不过因为已经熟悉了Weblogic和ALBPM, 所以看到ALSB console还是有点一见如故的。<br /> <br />一个月的warm up时间一直注重在Message Flow和JQuery方面,感觉进度还可以,只是感觉debug有点难度,因为Message Flow代码不可见,所以只能根据Tracing和Log来调试。有一个不习惯原创 2011-02-01 10:32:00 · 3177 阅读 · 0 评论