Java包装类学习
我们应用某种数据类型时,很多时候要进行类型转换等操作。在Delphi中,类型转换函数感觉很零乱,如字符串转整形、整形变字节数组等等。
而在JAVA中,已经将Java的基本数据类型与其提供了一些常用的类型操作的方法进行了封装,这样才有一切皆对象的感觉。
在学习包装类时,找了几个比较有意思的类进行了学习!
Integer
Integer i=3;
//上述语句毫无疑问,是进行一个类的创建!但通过Java Decompiler进行反编译后,发现这条语句被编译器优化成了Integer integer = Integer.valueOf(1);比较有意思,于是就看看valueOf中是什么
public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
}
IntegerCache是什么
private static class IntegerCache {
private IntegerCache(){}
static final Integer cache[] = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Integer(i - 128);
}
}
原来当创建Integer时,-128-127范围内的数据已经以static final的形式预先创建了,放在堆中。当用户声明该范围的Integer类型的变量时,直接从IntegerCache中读取。
可以做一个试验:
Integer integer=1;
Integer integer2=1;
if (integer==integer2){
System.out.println("ok");
}
结论是:integer与integer2所指的内存都是一致的,所以打印ok!
(在Java版经常看到很多人对堆与栈搞得很糊涂)
2. Boolean
Boolean boolean1=true;
//这个代码与上述的Integer integer=1的做法类似,编译器对此进行优化(大家可以下载一个java Decompiler)。优化后的语句为Boolean boolean1 = Boolean.valueOf(true);这时可以看看valueOf的代码
public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
}
再看看TRUE与FALSE是什么?
public static final Boolean TRUE = new Boolean(true);
public static final Boolean FALSE = new Boolean(false);
原来Boolean在创建时已经创建了二个static final的Boolean对象,True与False。这时做个实验:
Boolean boolean1=true;
Boolean boolean2=true;
相关文档:
安装开发环境
ubuntu9.10下安装JAVA开发环境其实还是比较简单的,我们就以安装常用的jdk、eclipse、tomcat、svn client(找到一个可以和windows中的小乌龟类似的但安装还有点问题解决后会补上)、oracle client为例讲讲如何安装(本文中自动化安装脚本下载http://download.csdn.net/source/2034239,文件太大分成6份 )。前 ......
学到JAVA的面对对象,发现如此强大!
万物皆对象,万物为我所用!
对JAVA产生强烈的好感!
但对于Sun公司的收购,JAVA不知会如何?
--------------------------------------------------
这第一篇文章,是我在CSDN的开端。
之后我会更新我的博客,写上一些学习感受。
希望能在这里找到一片新的天地! ......
StringTokenizer 这个类其实真正项目里面恐怕很少会用吧?但是这个类真的很实用,因为它可以根据自己的方式按照一定的规则来拆分一个字符串
String s = new String("The Java platform is the ideal platform for network computing");
//默认的构造函数,会 ......
java中字符串和整型之间的转化
1)如何将字符串转化为整型;
int i = Integer.parseInt(String str);
int i = Integer.valueOf().intValue();
注:Integer.parseIn 和 Integer.valueOf 不同,前者生成的是整型,而后者是一个对象,所以要通过intValue()来获得对象的值;
&nb ......
inkfish翻译,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish
)。本文是我学习JUEL同时,对原网站进行的简单的翻译,原网站地址:http://juel.sourceforge.net/
JUEL
是统一表达式语言(Unified Expression Language
, EL
)的一个实现,是JSP 2.1
标准(JSR-245
)的一部分,已经作为Ja ......