Java基本数据类型
int 32bit
short 16bit
long 64bit
byte 8bit
int 32bit
short 16bit
long 64bit
byte 8bit
char 16bit
float 32bit
double 64bit
float 32bit
double 64bit
boolean 1bit,This data type represents one bit of information, but its "size" isn't something that's precisely defined.(ref)
Java基本数据类型大小
- private static void calSize() {
- System.out.println("Integer: " + Integer.SIZE/8); // 4
- System.out.println("Short: " + Short.SIZE/8); // 2
- System.out.println("Long: " + Long.SIZE/8); // 8
- System.out.println("Byte: " + Byte.SIZE/8); // 1
- System.out.println("Character: " + Character.SIZE/8); // 2
- System.out.println("Float: " + Float.SIZE/8); // 4
- System.out.println("Double: " + Double.SIZE/8); // 8
- // System.out.println("Boolean: " + Boolean);
- }
package com.homer.learn; public class clazzSize { private static final Runtime rTime = Runtime.getRuntime(); public static void main(String []args){ calSize(); calSize2(); } private static void calSize() { System.out.println("Integer: " + Integer.SIZE/8); // 4 System.out.println("Short: " + Short.SIZE/8); // 2 System.out.println("Long: " + Long.SIZE/8); // 8 System.out.println("Byte: " + Byte.SIZE/8); // 1 System.out.println("Character: " + Character.SIZE/8); // 2 System.out.println("Float: " + Float.SIZE/8); // 4 System.out.println("Double: " + Double.SIZE/8); // 8 // System.out.println("Boolean: " + Boolean); } private static void calSize2() { runGC(); long heap1 = 0; final int count = 100000; Object[] objs = new Object[count]; for(int i=-1; i<count; i++) { Object obj = null; obj = new Object(); // 8 // obj = new Integer( i ); // 16 // obj = new Short( (short)i ); // 16 // obj = new Long( i ); // 16 // obj = new Byte( (byte)0 ); // 16 // obj = new Character( (char)i ); // 16 // obj = new Float( i ); // 16 // obj = new Double( i ); // 16 // obj = new Boolean( true ); // 16 // obj = new String(); // 40 if(i<0){ obj = null; runGC(); heap1 = usedMemory(); // before memory size } else { objs[i] = obj; } } runGC(); long heap2 = usedMemory(); // after memory size final int size = (int)Math.round( (heap2 - heap1)/(double)count ); System.out.println("heap1 = " + heap1 + "; heap2 = " + heap2); System.out.println("heap2-heap1 = " + (heap2 - heap1) + "; " + objs[0].getClass().getSimpleName() + " size = " + size); for(int i=0; i<count; i++) { objs[i] = null; } objs = null; runGC(); } private static void runGC() { for(int i=0; i<4; i++) { long usedMem1 = usedMemory(); long usedMem2 = Long.MAX_VALUE; for(int j=0; (usedMem1<usedMem2) && (j<500); j++) { rTime.runFinalization(); rTime.gc(); Thread.yield(); usedMem2 = usedMem1; usedMem1 = usedMemory(); } } } private static long usedMemory() { return rTime.totalMemory() - rTime.freeMemory(); } }
public class PrimitiveTypeTest { public static void main(String[] args) { // byte System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println("包装类:java.lang.Byte"); System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); // short System.out.println("基本类型:short 二进制位数:" + Short.SIZE); System.out.println("包装类:java.lang.Short"); System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); // int System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("包装类:java.lang.Integer"); System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); // long System.out.println("基本类型:long 二进制位数:" + Long.SIZE); System.out.println("包装类:java.lang.Long"); System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); // float System.out.println("基本类型:float 二进制位数:" + Float.SIZE); System.out.println("包装类:java.lang.Float"); System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); // double System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("包装类:java.lang.Double"); System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); // char System.out.println("基本类型:char 二进制位数:" + Character.SIZE); System.out.println("包装类:java.lang.Character"); // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 System.out.println("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE); // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE); } } 运行结果: 1、基本类型:byte 二进制位数:8 2、包装类:java.lang.Byte 3、最小值:Byte.MIN_VALUE=-128 4、最大值:Byte.MAX_VALUE=127 5、 6、基本类型:short 二进制位数:16 7、包装类:java.lang.Short 8、最小值:Short.MIN_VALUE=-32768 9、最大值:Short.MAX_VALUE=32767 10、 11、基本类型:int 二进制位数:32 12、包装类:java.lang.Integer 13、最小值:Integer.MIN_VALUE=-2147483648 14、最大值:Integer.MAX_VALUE=2147483647 15、 16、基本类型:long 二进制位数:64 17、包装类:java.lang.Long 18、最小值:Long.MIN_VALUE=-9223372036854775808 19、最大值:Long.MAX_VALUE=9223372036854775807 20、 21、基本类型:float 二进制位数:32 22、包装类:java.lang.Float 23、最小值:Float.MIN_VALUE=1.4E-45 24、最大值:Float.MAX_VALUE=3.4028235E38 25、 26、基本类型:double 二进制位数:64 27、包装类:java.lang.Double 28、最小值:Double.MIN_VALUE=4.9E-324 29、最大值:Double.MAX_VALUE=1.7976931348623157E308 30、 31、基本类型:char 二进制位数:16 32、包装类:java.lang.Character 33、最小值:Character.MIN_VALUE=0 34、最大值:Character.MAX_VALUE=65535
文章来源:
1, http://blog.csdn.net/sunboy_2050/article/details/7310008
2, http://www.java3z.com/cwbwebhome/article/article8/81393.html?id=4093