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;
相关文档:
线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
long keepAliveTime, TimeUnit unit,
BlockingQueue<Runnable> workQueue,
RejectedExecutionHandler handler) corePoolSize: 线程池维护线程的最少数量 ......
来自:http://www.cnblogs.com/echozhjun/archive/2010/01/08/1641970.html
JDK Logger
JDK Logger在java.util.logging包下面,自从JDK1.4就有了,可是因为log4j的存在,这个Logger一直沉默着。Java自带的Logger,级别比Log4j还要详细,但是如果需要自定义日志输出格式,需要自己实现Formatter,有些不方便。
Log4j  ......
Java的数据结构有哪些?Map与Set的本质区别是什么?
分析:Java常见的数据结构有Collection和Map,其中Collection接口下包括List和Set接口,其下又有多个实现类如List下有ArrayList、LinkedList和Vector等实现类,Set下有HashSet、LinkedSet等实现类和SortedSet接口,HashSet下有LinkedHashSet子类,SortedSet接口下有Tre ......
One:14109
Two:14000
Three:15141
four:14297
package com.zbalpha.test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListTest {
public static void main(String args[]){
List<Long> ......
首先是build sample
遇到的第一个错误
ADCDMST:/Z19/usr/lpp/cicsts/cicsts32/samples/dfjcics: >make -f makefile jvm
make: Error -- FSUM9383 Configuration file `/etc/startup.mk' not found
修复:cp /samples/startup.mk /etc/startup.mk
export JAVA_HOME=/Z19/usr/lpp/jav ......