Java 基本数据类型

Java基本数据类型
int     32bit
short   16bit
long    64bit
byte    8bit
char    16bit
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基本数据类型大小
[java]  view plain copy print ?
 
  1.     private static void calSize() {  
  2.         System.out.println("Integer: " + Integer.SIZE/8);           // 4  
  3.         System.out.println("Short: " + Short.SIZE/8);               // 2      
  4.         System.out.println("Long: " + Long.SIZE/8);                 // 8  
  5.         System.out.println("Byte: " + Byte.SIZE/8);                 // 1  
  6.         System.out.println("Character: " + Character.SIZE/8);       // 2  
  7.         System.out.println("Float: " + Float.SIZE/8);               // 4  
  8.         System.out.println("Double: " + Double.SIZE/8);             // 8  
  9. //      System.out.println("Boolean: " + Boolean);  
  10.     }  
 
 
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
56、基本类型:short 二进制位数:16
7、包装类:java.lang.Short
8、最小值:Short.MIN_VALUE=-32768
9、最大值:Short.MAX_VALUE=32767
1011、基本类型:int 二进制位数:32
12、包装类:java.lang.Integer
13、最小值:Integer.MIN_VALUE=-2147483648
14、最大值:Integer.MAX_VALUE=2147483647
1516、基本类型:long 二进制位数:64
17、包装类:java.lang.Long
18、最小值:Long.MIN_VALUE=-9223372036854775808
19、最大值:Long.MAX_VALUE=9223372036854775807
2021、基本类型:float 二进制位数:32
22、包装类:java.lang.Float
23、最小值:Float.MIN_VALUE=1.4E-45
24、最大值:Float.MAX_VALUE=3.4028235E38
2526、基本类型:double 二进制位数:64
27、包装类:java.lang.Double
28、最小值:Double.MIN_VALUE=4.9E-324
29、最大值:Double.MAX_VALUE=1.7976931348623157E308
3031、基本类型: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值