viLuo-小工具

Java反编译工具JD

java反编译的内核一般用的都是jad,这次发现一个比较强悍的,jd,法国人做的,有自己的内核,也有配套的可视化工具,有Eclipse的插件,甚至连IntelliJ都有!

阅读全文>>

JAVA-备忘录

Java derby数据库入门

derby是一个用java语言写的开源数据库,它可以作为一个嵌入式数据库嵌入在应用程序中。在没有数据库环境的情况下,或者在做数据迁移,或者在一些相关的数据存储中使用

阅读全文>>

程序员-杂谈

第一个计算机BUG

对于开发人员来说,Bug 是无法避免也最令人头疼的,你需要不停地 Debug、不停地 Debug……
Bug 一词的原意是“臭虫”或“虫子”。现在,在电脑系统或程序中,如果隐藏着的一些未被发现的缺陷或问题,也称之为“Bug”,这是怎么回事呢?
第一个有记载的 Bug 是美国海军编程员、编译器的发明者格蕾斯·哈珀(GraceHopper)发现的。哈珀后来成为了美国海军的一位将军,还领导了著名计算机语言 Cobol 的开发。

阅读全文>>

程序员-杂谈

程序员常说的20句话

viLuo:呃,被戳中了...程序猿们,看看哪句踩住了你的痛角~~
1.见鬼了….
2.以前重来没出过问题。
3.昨天还好好的。
4.这怎么可能?
5.一定是机器出了问题。
6.你究竟输入什么了导致它崩溃?
7.应该是数据有问题。
8.我好几个星期都没碰这块代码了!

阅读全文>>

JAVA-J2EE

AOP的简单入门

自己也算是从业多年,对于AOP的概念应该算是听的烂的不能再烂了,这方面的书也看的不少,但是自己一直没有机会去实践下。 乘在这个稍微有点空闲的下午,就随手玩玩SPRING的AOP,也谈谈自己对于AOP的理解及其衍生的一些东西。

阅读全文>>

JAVA-实践

java编程中'为了性能'一些尽量做到的地方

最近的机器内存又爆满了,出了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。

阅读全文>>

程序员-管理

我对创业和管理的一些看法

创业,对于刚工作的人,会比较兴奋,因为创业充满想象力;对于工作几年的人,会比较向往,因为压抑得太久。其实,创业和就业一样,只是实现自己人生价值的两种方式,关键是心态问题。大多数就业的人,一般都把工作叫打工,这是一种对自己不太负责人的态度,其深层次的原因,是因为个人还没有完全独立:对自己的选择负起责任。因为没有谁要求你必须很乏味地工作,没有人要求你必须朝九晚五,你完全可以选择自己的生活,甚至住在山林里。虽然我们可以找出很多被迫的理由,但归根结底,还是自己不能放弃,比如诱人的薪水、优越的身份。

阅读全文>>

JAVA-实践

编码最佳实践--小心!这只是冰山一角

本期的案例依然是来自实际项目,很寻常的代码,却意外遭遇传说中的Java"内存溢出"。
先来看看发生了什么,代码逻辑很简单,在请求的处理过程中:
1. 创建了一个ArrayList,然后往这个list里面放了一些数据,得到了一个size很大的list
List cdrInfoList = new ArrayList();
for(...) {
cdrInfoList.add(cdrInfo);
} 

阅读全文>>

JAVA-实践

编码最佳实践--小心LinkedHashMap的get()方法

这是一个来自实际项目的例子,在这个案例中,有同事基于jdk中的LinkedHashMap设计了一个LRUCache,为了提高性能,使用了 ReentrantReadWriteLock 读写锁:写锁对应put()方法,而读锁对应get()方法,期望通过读写锁来实现并发get()。

阅读全文>>

JAVA-实践

编码最佳实践--尽量重用昂贵的初始化对象

这里将要讲述的是一系列的类似案例,都是在各个产品进行performance tuning时被发现的,非常具有普适性。可以说在日常开发中,有非常大的概率遇到相同或者类似的情形,因此需要对其保持警惕以便避免陷入类似的性能问题。 我们从JAXBContext这个对象开始,JAXBContext 是JAXB API的入口,典型的代码实现如下:
private void unmarshal() {
JAXBContext context = JAXBContext.newInstance(DirectoryConstants.JAXB_CONTEXT_CLASS);
Unmarshaller u = context.createUnmarshaller();
Object obj = u.unmarshal(...);
}

阅读全文>>