Effective Java 学习笔记(5)
尽量复用对象,而不是创建新的对象,特别是当一个对象是immutable(不可改变)的时候。 如String对象, String s= new String(“String”); 千万不要这样做,因为这里实际上创建了两个对象。 要避免出现这样的情况, 1是可以用静态工厂函数,来解决,如类库中的Boolean.valueOf(“true”),这种方式要优于new Boolean(“true”); 2.是尽量复用对象。 看书中的例子。 public class Person {
private final Date birthDate;
public boolean isBabyBoomer() {
Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
gmtCal.set(1946, Calendar.JANUARY, 1, 0, 0, 0);
Date boomStart = gmtCal.getTime();
gmtCal.set(1965, Calendar.JANUARY, 1, 0, 0, 0);
Date boomEnd = gmtCal.getTime();
return birthDate.compareTo(boomStart) >= 0 && birthDate.compareTo(boomEnd) < 0;
}
} 这里,每次调用isBabyBoomer就会创建两个Data对象,一个Calendar对象和TimeZone对象. 改进版: class Person {
private final Date birthDate;
private static final Date BOOM_START;
相关文档:
1、java.lang包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包
2、java.io包:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等等
3、java.util包:包含如处理时间的date类,处理变成数 ......
趁着今天还有点精力,将刚刚学会的APPLET写出来。
感觉用记事本编辑程序太吃力,不过现在是处于学习阶段,先把基本的东西掌握了吧。
JAVA APPLET就是用JAVA语言编写的一些小应用程序,它们可以直接嵌入到网页中或者其他特定容器中,并产生特殊的效果。
JAVA APPLET程序不是将main方法作为入口。
第一个APPLET程序:
打 ......
转自http://xyiyy.javaeye.com/blog/358401
J2SE5.0后提供了自动装箱与拆箱的功能,此功能事实上是编译器来帮您的忙,编译器在编译时期依您所编写的方法,决定是否进行装箱或拆箱动作。例如:
  ......
java四舍五入
package Test;
import java.math.BigDecimal; //引入这个包
public class Test {
public static void main(String[] args) {
double i = 3.856;
// 舍掉小数取整
System.out.println("舍掉小数取整:Math.floor(3.856)=" + (int) Math.floor(i));
......
刚开始学习Java,一直想学但总是坚持不下来,回到家就想着玩游戏,看来是要下决心了,2010年要好好学习Java了.
这是在网上看到的两个小例子,自己也做了一遍.
1.
try
{
FileInputStream in=new FileInputStream("C:/1.txt");
FileOutput ......