慎用Java装箱与拆箱
转自http://xyiyy.javaeye.com/blog/358401
J2SE5.0后提供了自动装箱与拆箱的功能,此功能事实上是编译器来帮您的忙,编译器在编译时期依您所编写的方法,决定是否进行装箱或拆箱动作。例如:
Integer i = 100;
相当于编译器为您作以下的语法编译:
Integer i = new Integer(100);
虽然此功能很方便,但在程序运行阶段您得了解Java的语义。如下面的程序能编译通过:
Integer i = null;
int j = i;
此程序编译时通过,但运行时会有错误。因为这种写法相当于:
Integer i = null;
int j = i.intValue();
由于i实际上没有参考至任何的对象,所以不能操作intValue()方法,上面程序运行时会出现NullPointerException错误。
自动装箱、拆箱的功能提供了方便性,但隐藏了一细节,所以必须小心。如下列代码1:
public class AutoBoxDemo2
{
public static void main(String[] args)
{
相关文档:
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ReadSetting {
......
import java.awt.Image;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
public class createXml
{
public static boolean writeXml(String path,String dir,String wpath,String wname)
{
File[] files = ReaderListFiles(path);
boo ......
java 保留2位小数 转载
方式一:
四舍五入
double f = 111231.5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP). ......
1、日期格式化
String tim = "2009-12-29";
String str = (new java.text.SimpleDateFormat("yyyy年MM月dd日")).format((new java.text.SimpleDateFormat("yyyy-MM-dd")).parse(tim));
返回:2009年12月29日
String now = (new java.text.SimpleDateFormat("yyyy-MM-dd")).format(new java.util.Date());
返回当前时间 ......
来CSDN也有一年时间了,一直没有在自己的空间里发表一点东西。
前几天,我朋友想和我一起搞个东西,需要用到java,我没有一点java基础。没办法,只能够从头开始了学习。
从图书馆抱回了两本书《java2入门 进阶与应用实例》和《java me 实用详解》。由于有C和C++的基础,初略看了一下书,对于书中的内容基本上还是能够理解 ......