欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 基础类型范围

程序员文章站 2022-03-10 13:30:07
...

 

 Java 基础类型范围

 

 

import java.util.Set;
import java.util.TreeSet;

public class FoundationalTypes {
	
	private static int index=0;
	private static Set set=new TreeSet();
	
	/**
	 * The infomation of types will be printed
	 * @param className
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 * @throws ClassNotFoundException
	 * @throws SecurityException
	 * @throws NoSuchFieldException
	 */
	private void printInfo(String className) 
			throws InstantiationException, IllegalAccessException, ClassNotFoundException, SecurityException, NoSuchFieldException{
		
		Class c=Class.forName(className); 
		
		String MIN_VALUE="";
		String MAX_VALUE="";
		if("java.lang.Character".equals(className)){
			 MIN_VALUE=(int)(java.lang.Character)c.getField("MIN_VALUE").get(c)+"";
			 MAX_VALUE=(int)(java.lang.Character)c.getField("MAX_VALUE").get(c)+"";
		}else{
			 MIN_VALUE=(c.getField("MIN_VALUE").get(c)).toString();
			 MAX_VALUE=(c.getField("MAX_VALUE").get(c)).toString();
		}
		System.out.println((++index)+"、基本类型:"+c.getField("TYPE").get(c)+" 二进制位数:"+c.getField("SIZE").get(c));
		System.out.println((++index)+"、包装类:"+c.getName());
		System.out.println((++index)+"、最小值(MIN_VALUE):"+MIN_VALUE);
		System.out.println((++index)+"、最大值(MAX_VALUE):"+MAX_VALUE);
		System.out.println();
		
		int k= Integer.valueOf(c.getField("SIZE").get(c).toString());
		
		set.add((k<10?"0"+k:k)+":"+c.getName());
	}
	
	/**
	 * running
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			String[] types={
					"java.lang.Long"
					,"java.lang.Double"
					,"java.lang.Integer"
					,"java.lang.Float"
					,"java.lang.Character"
					,"java.lang.Short"
					,"java.lang.Byte"
//				,"java.lang.Boolean"
			};
			
			for(String name : types){
				new FoundationalTypes().printInfo(name);
			}
			StringBuffer starts=new StringBuffer(" \t\t*");
			System.out.println("08:java.lang.Boolean"+starts);
			
			for(Object obj:set){
				starts.append("*");
				System.out.println(obj.toString()+starts);
			}
		} catch (SecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchFieldException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

运行结果为:

 

1、基本类型:long 二进制位数:64
2、包装类:java.lang.Long
3、最小值(MIN_VALUE):-9223372036854775808
4、最大值(MAX_VALUE):9223372036854775807

5、基本类型:double 二进制位数:64
6、包装类:java.lang.Double
7、最小值(MIN_VALUE):4.9E-324
8、最大值(MAX_VALUE):1.7976931348623157E308

9、基本类型:int 二进制位数:32
10、包装类:java.lang.Integer
11、最小值(MIN_VALUE):-2147483648
12、最大值(MAX_VALUE):2147483647

13、基本类型:float 二进制位数:32
14、包装类:java.lang.Float
15、最小值(MIN_VALUE):1.4E-45
16、最大值(MAX_VALUE):3.4028235E38

17、基本类型:char 二进制位数:16
18、包装类:java.lang.Character
19、最小值(MIN_VALUE):0
20、最大值(MAX_VALUE):65535

21、基本类型:short 二进制位数:16
22、包装类:java.lang.Short
23、最小值(MIN_VALUE):-32768
24、最大值(MAX_VALUE):32767

25、基本类型:byte 二进制位数:8
26、包装类:java.lang.Byte
27、最小值(MIN_VALUE):-128
28、最大值(MAX_VALUE):127

 

08:java.lang.Boolean           *
08:java.lang.Byte                 **
16:java.lang.Character        ***
16:java.lang.Short               ****
32:java.lang.Float                *****
32:java.lang.Integer            ******
64:java.lang.Double             *******
64:java.lang.Long                ********

 

相关标签: Java C C++ C#