这篇文章,我们讨论一些java的最基本的东西,这些东西我们一般刚刚学java的时候就学过,但是不一定真正明白。正好,我在做一个读取内存的值,涉及到bit位的值的读取和写。那就可以讨论一个java的基本数据类型的值在机器的详细情况:
      Java基本数据类型共有八种三类:字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。
    Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。
    下面,我们就是要分析java基本数据类型的取值范围和占多少字节多少bit(1字节 = 8 bit)。
public class BaseDataInfo{ 
	
public static void main(String[] args) {  
	
	System.out.println("Boolean.FALSE:"+Boolean.FALSE);
	System.out.println("Boolean.TRUE:"+Boolean.TRUE);
  
	int maxByte = Byte.MAX_VALUE;
	int minByte = Byte.MIN_VALUE;
	int sizeByte = Byte.SIZE;
	System.out.println("Byte.MAX_VALUE:"+maxByte);
	System.out.println("Byte.MIN_VALUE:"+minByte);
	System.out.println("Byte.SIZE:"+sizeByte);
	
	int maxChar = Character.MAX_VALUE;
	int minChar = Character.MIN_VALUE;
	int sizeChar = Character.SIZE;
	System.out.println("Character.MAX_VALUE:"+maxChar);
	System.out.println("Character.MIN_VALUE:"+minChar);
	System.out.println("Character.SIZE:"+sizeChar);
	
	int maxShort = Short.MAX_VALUE;
	int minShort = Short.MIN_VALUE;
	int sizeShort = Short.SIZE;	
	System.out.println("Short.MAX_VALUE:"+maxShort);
	System.out.println("Short.MIN_VALUE:"+minShort);
	System.out.println("Short.SIZE:"+sizeShort);
	
	int maxInt = Integer.MAX_VALUE;
	int minInt = Integer.MIN_VALUE;
	int sizeInt = Integer.SIZE;
	int bitCount = Integer.bitCount(10);
	System.out.println("Integer.MAX_VALUE:"+maxInt);
	System.out.println("Integer.MIN_VALUE:"+minInt);
	System.out.println("Integer.SIZE:"+sizeInt);
	System.out.println("Integer.bitCount(1):"+bitCount);
	
	long maxLong = Long.MAX_VALUE;
	long minLong = Long.MIN_VALUE;
	int sizeLong = Long.SIZE;
	System.out.println("Long.MAX_VALUE:"+maxLong);
	System.out.println("Long.MIN_VALUE:"+minLong);
	System.out.println("Long.SIZE:"+sizeLong);
	
		
	float maxFloat =  Float.MAX_VALUE;
	float minFloat =  Float.MIN_VALUE;
	int sizeFloat = Float.SIZE;
	System.out.println("Float.MAX_VALUE:"+maxFloat);
	System.out.println("Float.MIN_VALUE:"+minFloat);
	System.out.println("Float.SIZE:"+sizeFloat);	
	
	Double maxDouble =  Double.MAX_VALUE;
	Double minDouble =  Double.MIN_VALUE;
	int sizeDouble = Double.SIZE;
	System.out.println("Double.MAX_VALUE:"+maxDouble);
	System.out.println("Double.MIN_VALUE:"+minDouble);
	System.out.println("Double.SIZE:"+sizeDouble);	
	
  }
}
| boolean | 只有true和false两个取值 | 
| byte | 8位,最大存储数据量是255,存放的数据范围是-128~127之间 | 
| short | 16位,最大数据存储量是65536,数据范围是-32768~32767之间 | 
| int | 32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1(也就是-2147483648~2147483647)。从int取值范围可以看,int适合20亿级别的整形数据。 | 
| long | 64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2 的63次方减1(也就是-9223372036854775808~9223372036854775807)。从long的取值范围可以看出,long适合海量级(亿亿级)的整形数据。 | 
| float | 32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。从float的取值范围可以看出,float适合e38级的float数据。 | 
| double | 64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。从double的取值范围可以看出,double适合e308的double数据。 | 
| char | 16位,存储Unicode码,用单引号赋值 | 
| 基本数据类型 | boolean | byte | char | short | int | long | float | double | 
| bit位数 | 1 | 8 | 16 | 16 | 32 | 64 | 32 | 64 | 
| 字节位数 | 0.125 | 1 | 2 | 2 | 4 | 8 | 4 | 8 | 
| 封装类 | Boolean | Byte | Character | Short | Integer | Long | Float | Double | 
原文地址:http://blog.csdn.net/hfreeman2008/article/details/44303503