JAVA

Java程序员有许多应遵循的守则或最佳实践方式。该篇文章概述了每个开发者最应该遵循的10条守则或戒律,如果不遵循它们,将会导致灾难性后果。 1. 为代码添加注释(Add comments to your code). – 每个人都知道这一点,但不是每个人都会这么做。你有多少次...

假设你是正在开发和维护一个包含2000个类并使用了很多框架的Java开发者。你要如何理解这些代码?在一个典型的Java企业项目小组中,大部分能够帮你的高级工程师看起来都很忙。文档也很少。你需要尽快交付成果,并向项目组证明自己的能力。你会如何处理这种状况...

关于StringBuilder,一般同学只简单记住了,字符串拼接要用StringBuilder,不要用+,也不要用StringBuffer,然后性能就是最好的了,真的吗吗吗吗? 还有些同学,还听过三句似是而非的经验: 1. Java编译优化后+和StringBuilder的效果一样; 2. StringBui...

使用过JavaMail的api发送邮件的人可能会有这样一个疑惑:本人如何知道本人调用该api发送的邮件是否成功呢?一般的开放的api给各位同行调用都会有个返回值或者状态码,来告诉各位同行执行成功与否。但是JavaMail却没有提供这样一个返回值。 所以在调用JavaMai...

作为刚入门Java的小白,这两天看到内部类,这里做一个总结,若有错误,欢迎指正~ 内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。 内部类分为: 成员内部类、局部内部类 、 静态嵌套类 、匿名内部类 。 1.成员内部类 成员内部类是最...

好吧,本人去了地球的另一边,并且因为本人的PC不在旁边,只有一台MacBook Pro可以用于开发。这篇文章应该被看作是一个加强书签,本人列出了使得MacBook能实现目的的所有必需安装的工具,即用于Java和稍后也会用于JavaScript的开发。 需要提一下的是,直到现...

每次本人怀疑有内存泄漏时,本人都要翻箱倒柜找这些命令。所以,这里总结一下以备后用: 首先,本人用下面的命令监视进程:while ( sleep 1 ) ; do ps -p $PID -o %cpu,%mem,rss ; done(如果有的话还有New Relic) 如果你看到内存上升很快,可能是因为虚...

'学习的最好途径就是看书',这是本人自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处: 能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 对着书上的代码自己敲的时候方便 '看...

2014年3月,Java 8发布,Lambda表达式作为一项重要的特性随之而来。或许现在你已经在使用Lambda表达式来书写简洁灵活的代码。比如,你可以使用Lambda表达式和新增的流相关的API,完成如下的大量数据的查询处理: int total = invoices.stream().filter(inv -&...

随着近来软件规模的日益庞大,API编程接口的设计变的越来越重要。良好的接口设计可以降低系统各部分之间的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合度,从而提高系统的维护性和稳定性。 Joshua Bloch是美国著名程序式设计师。他为Java平台设计...

欢迎阅读本人编写的 Java 8 介绍。本教程将带领你一步步认识这门语言的所有新特性。通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表达式,方法引用和可重复注解。在这篇教程的最后,你还将对最新推出的API有一定的了解,例如:流控制,...

lambda表达式,是一段可以传递的代码,可以被多次执行。在 java8 之前,如果各位同行想写一个简单的比较器 Compartor ,各位同行需要创建一个实现类或者一个匿名内部类类传入到需要比较的方法内当中。 在 java8 之前传递一段代码不是很容易,现在各位同行想...

这是一个挺有意思的讨论话题。 如果你运行下面的代码 Integer a = 1000, b = 1000; System.out.println(a == b);//1 Integer c = 100, d = 100; System.out.println(c == d);//2 你会得到 false true基本知识:各位同行知道,如果两个引用指向同一个对象,...

最近公司项目很多地方使用多线程处理一些任务,逻辑代码和Java多线程处理代码混合在一起,造成代码的可读性超级差,现在把Java多线程相关的处理抽出来,方面代码中重复使用。抽的不好,欢迎大家拍砖 使用方法很简单,有两种使用方法 1.直接传递一批任务给到...

过去的每一年,涌现出越来越多的Java框架。就像JavaScript,每个人都认为他们知道一个好的框架的功能应该是怎么样的。连本人的老祖母现在也使用 一个本人从来没有听说过而且可能永远不会使用的框架。玩笑归玩笑,可以做几乎任何事的臃肿的框架市场已经饱和,...

两个月前向Plumbr公司引进线程死锁的检测之后,各位同行开始收到一些类似于这样的询问:“棒极了!现在本人知道造成程序出现性能问题的原因了,但是接下来该怎么做呢?” 各位同行努力为自己的产品所遇到的问题思考解决办法,但在这篇文章中本人将给大家分享...

在Java应用程序运行时,Java虚拟机会保存一份内部的运行时常量池,它区别于class文件的常量池,是class文件常量池映射到虚拟机中的数据结构。 关于class文件常量池的部分可以参考之前的博文实例探索Class文件。 1.CONSTANT_Class入口解析 数组类的符号解析较...

简介 在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。对于某些大型的应用来说,每次的重启都需 要花费大量的时间成本。虽然 o...

Java8 主要的改变是为集合框架增加了流的概念,提高了集合的抽象层次。相比于旧有框架直接操作数据的内部处理方式,流+高阶函数的外部处理方式对数据封装更好。同时流的概念使得对并发编程支持更强。 在语法上Java8提供了Lambda表达式来传递方法体,简化了之...

java应用程序的启动在在/hotspot/src/share/tools/launcher/java.c的main()函数中,而在虚拟机初始化过程中,将创建并启动Java的Main线程。最后将调用JNIEnv的CallStaticVoidMethod()来执行main方法。 CallStaticVoidMethod()对应的jni函数为jni_CallStaticV...

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。本人选了一些比较常用的项目做简单介绍。文中用了很多网上现成的东西,本人只是做了一个汇总整理。一、Commons BeanUtils http://jakarta.apache.org/commons/beanutil...

在工作中遇到一个问题,用代码描述如下: package test; import java.util.LinkedList; import java.util.List; public class ListTest { public void func(List<Base> list) { } public static void main(String args[]) { List....

关于Java代码的性能优化,是每个javaer都渴望掌握的本领,进而晋升为大牛的必经之路,但是对java的调优需要了解整个java的运行 机制及底层调用细节,需要多看多读多写多试,并非一朝一夕之功。ITJS的这篇文章是近期笔者给公司员工内部做的一个培训,主要讲述...

大多数并发都是通过任务执行的方式来实现的。一般有两种方式执行任务:串行和并行。 class SingleThreadWebServer {public static void main(String[] args) throws Exception { ServerSocket socket = new ServerSocket(80); while(true) { Socket conn =...

前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题本人是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱...