解惑

解己之惑,解人之惑

分类:Java (第13页共20页)

Java技术

公司需要使用到的全部技术列表

今天为公司写一个文档,其中就有需要使用到的全部技术,大致列了一下,虽然不是非常完整,但是应该包括了所有主要使用到的东西,其中前23项是我需要使用到的

  1. EJB
  2. JMS
  3. JDBC
  4. HTML
  5. JavaScript
  6. CSS
  7. JSP
  8. Java Mail
  9. AJAX
  10. XML
  11. XDoclet
  12. Struts
  13. Fusion chart
  14. JUnit
  15. MockEJB
  16. StrutsTest
  17. Cobertura
  18. Crystal Report
  19. Oracle
  20. CVS
  21. Remedy
  22. Peregrine
  23. Ant
  24. LDAP
  25. Ruby
  26. Shell
  27. C
  28. C++
  29. Make
  30. SNMP
  31. Install anywhere

完成轮子的第三个部分-连接池

其实也不是连接池,而且我还是不太清楚Connection的close应该干嘛,简单的实现了DataSource,并使用动态代理实现Connection的复用,Connection使用几次以后或者使用一段时间以后再真正的关闭。

代码如下:
阅读全文

连接池中的Connection.close()应该干什么?

本来想写一个简单的数据库连接池的,上网搜索了一下别人的实现,也看了一些开源的实现,感觉有些问题,那就是连接池中的Connection.close()应该干什么?按照API的说明,这个方法应该释放数据库和JDBC的资源,但是这样的话,连接池中的连接就要重新建立,似乎没有起到pool应有的作用,如果代码不进行close操作,交给其它的地方释放又不太安全。难到说我原来的代码习惯都是错的?取得一个Connection后,使用完不需要close,而是把相关的ResultSet和Statement关闭就行了?
找了很多文章,都没有提到这个问题。
目前来看,我不用关注那么多了,可能的解决方法就是让框架来执行数据库操作,执行完以后commit,关掉ResultSet和Statement,Connection保持连接,一定时间以后再close。

完成轮子的第二个部分-缓存

昨天晚上花了一个多小时完成了我的大轮子的第二部分:缓存
今天中午利用休息时间写了测试用例,还算很顺利的,哈哈。

代码如下:
阅读全文

遭遇OutOfMemoryError

进行运行全部的测试用例的时候发现不能运行完了,到了后面的一些测试用例的时候出现OutOfMemoryError,程序并没有什么大内存消耗,上网查了一下,发现可能是junit导致的,因为teardown并没有清理掉使用过的内存,没有办法,只能修改Run的时候的参数,把内存加大,问题解决。
Eclipse启动JUnit的时候设置的值大概是64M左右,而我加大内存后监控内存使用的结果表明全部的测试用例需要使用100M内存。
方法为:Run->Run…->JUnit->AllTests->(x)=Arguments->VM Arguments: -Xmx500m
注意上面的AllTests为自己要修改的那个包含全部测试用例的Test suite的类。

正式启动造大轮子计划

前几天说过想造一个大轮子,今天有点时间就开始写了一点代码。和上次不同的是,原来打算使用的OGNL打算放弃了,决定尽可能的使用JDK带的API和自己写的代码完成,尽可能少的使用第三方的代码,这样更好把握一些。进度可能会非常的慢,因为我会写完整的单元测试代码,并且因为公司加班的原因也没有多少时间投入这个,不过反正是我自己用,也不急。
今天的工作成果就是OGNL的简化版本:BeanAccessExpress。
语法比较简单,就是xxx.yyy[index].zzz[key]
只支持对象属性、数组、List和Map,长度不限。数组和List使用[index]访问,Map的元素使用[key]访问,key必须是字母开头的单词。
代码如下:
阅读全文

Java工程师推荐书目

简单的推荐几本我认为Java工程师应该看的书。
程序设计实践
这个不是Java的书,应该是所有的软件工程师都应该看的,可以培养良好的编程习惯。
Think In Java
不多说,学习Java必看的。
SL275
这个是SCJP认证的教材,对于学习Java的一些细节性的语法点或者特性非常的有帮助,现在很多的Java面试题似乎也喜欢出这些相关的问题。
Java高效编程指南
这个是SUN出的书,比较全面的介绍了Java基础编程应该注意的一些问题。
Java技术精髓
这个也是SUN出的书,比高效编程指南更全面的介绍了Java编程应该注意的一些问题,包括EJB方面的内容。
Java Pitfalls
介绍了很多Java编程容易遇到的陷阱以及解决方法。
设计模式
就是GOF的那本,比较难懂,但是还是必看的,结合一些Java的实际例子看比较好,或者看完以后看看老版本的Jive的源代码(2.0及以前)
重构
代码应该经常的重构以不断的提升程序的结构,让代码更好维护、更可读、更灵活、扩展性更好。特别是要和设计模式结合。

如何解决问题

对于新手而言,最大的问题可能就是遇到问题完全没有头绪,特别是程序出错的时候,简单的说一下我解决问题的方式。

  1. 首先就是看错误信息,发生错误,一般都会有一些错误信息,在控制台或者日志里面,要仔细的看那些错误信息,有时候错误信息的提示已经指出了问题的所在,如果是一堆的调用堆栈,最重要的就是最开始的错误信息和caused by的那个错误信息。通过这个方式我们至少可以解决20%的问题。
  2. 如果是自己写的或者公司其他同事的代码出错,那么就要从错误堆栈信息里面找自己公司代码的那些行了,并且重新浏览一遍那些代码,思考可能的出错原因并进行调试。一定要知道如何使用IDE进行调试。
  3. 如果不是公司的代码出错,而是使用的服务器或者第三方组件出错,那么就直接把出错信息贴到google里面搜索下其他人出现的相同问题,并找到可能和你一样的问题。
  4. 如果是第三方的代码出的问题,并且是比较简单的开源组件,看看相关的源代码也是一个选择。
  5. 如果还不能搞定,那么找公司的其他同事帮忙,特别是你认为对所出现的问题比较熟悉的人。当然,你应该首先判断是哪方面的问题。
  6. 最后就是上论坛提问题,期望有人遇到过相同问题,或者是高手帮你分析问题并提示你如何确定问题。
  7. 最后一招就是修改实现方式,绕过问题,有些是服务器、OS的限制,使用其他的方法搞定吧。

见识Ruby及编程语言杂谈

今天总算是见识到了Ruby,给我的感觉是好像和PHP很像,功能还是很完善的,但是我还是不喜欢,因为我讨厌记那么多的语法,原来一头扎进Java就是欣赏Java的语法简单好记。现在想想,其实我也使用学习过很多编程语言,我写过一千行有效代码的语言就有:

  • Basic
  • C
  • C++
  • Perl
  • 汇编
  • Java
  • Shell

如果再算上VB、VC、Pro*c之类的改造过的语言,也算不少了。
在这些语言中,我印象最深的就是Perl和Java,Perl也是很好的脚本语言,印象中也是弱类型,类型转换也很简单,另外就是我从它学会了正则表达式。

全面自动测试

今天参加了QA的一个演示,演示的是他们基于Watir的测试框架,这样加上我做的单元测试框架,我们就可以全面的进行自动测试了,使用我的单元测试框架,可以测试EJB和Action,进行的是白盒测试,而使用QA的测试框架,可以测试页面的功能,进行的是黑盒测试。

更早的文章 更新的文章

© 2025 解惑

本主题由Anders Noren提供向上 ↑