C4认证T2——Java数据类型
一、Java基本数据类型 Java的基本数据类型有三类八种,分别: 字符型:char 数值型:byte,short,int,long,double,float 布尔型:boolean
一个字节是八位(八位二进制数),数值型的基本数据类型所占的字节数为: byte:一个字节 short:两个字节 int:四个字节 float:4个字节 long:八个字节 double:八个字节 每个数值型数据类型能表达的数据大小为:2^(二进制位数) 而能表达的范围则为为:-2^(二进制位数-1)~ 2^(二进制位数-1)-1 当数据超过该类型的数据大小范围后,编译器就会报错 例如:
需要注意的是: 字符型占用两个字节 布尔型占用一个字节
二、封装类型 每一个基本数据类型都有对应的封装类型 byte——Byte short——Short int——Integer float——FLoat double——Double long——Long boolean——Boolean char——Character 注意的是,String本身就是封装类型,没有基本类型 封装类型是基本类型的包装器,它的变量值为实例对象,并给实例对象提供方法
封装类型的使用: .MAX_VALUE 得到该封装类对应的基本数据类型的最大值 .MIN_VALUE 得到该封装类对应的基本数据类型的最小值 .SIZE 得到该封装类对应的基本数据类型的二进制位的位数 这三个方法刚好可以验证前面所说
System.out.println(Byte.MAX_VALUE); System.out.println(Byte.MIN_VALUE); System.out.println(Byte.SIZE); //输出分别为127 -128 8
以Integer为例:
//将封装类型中的数值取出来 Integer integer=new Integer(555); int a=integer.intValue(); System.out.println("取出其中的值:"+a); //将整形转换为字符串型 int m=12345; String s=Integer.toString(m); String s2=Integer.toBinaryString(m); System.out.println("整形转换为字符串型:"+s); System.out.println("整形转换为二进制字符串型:"+s2); //将字符串型转换为整型 String ss="345"; int b=Integer.parseInt(ss); System.out.println("字符型转换为整型:"+b);
输出为: 三、枚举类型Enum 常见的方法: values():遍历enum中的值 ordinal():返回此枚举常数的序数 name():返回此枚举常量的名称 compareTo():将此枚举与指定的对象进行比较
public class test3 { enum m{ n1, n2, n3, n4; } public static void main(String[] args) { //遍历enum类中的值 m[] s=m.values(); for(m ms:s) { System.out.println(ms); } // ordinal(),返回此枚举常数的序数(其枚举声明中的位置,其中初始常数的序数为零)。 System.out.println(m.n1.ordinal()); //name()返回此枚举常量的名称,与其枚举声明中声明的完全相同。 System.out.println(m.n1.name()); //compareTo(E o) 将此枚举与指定的对象进行比较 System.out.println(m.n1.compareTo(m.n2)); System.out.println(m.n1.compareTo(m.n3)); System.out.println(m.n3.compareTo(m.n1)); } }
输出为: 在compareTo()方法中,返回的值为前一个枚举常数的序数减去后一个枚举常数的序数,方法源码如下 小练习1
int a = 1; String b = "2"; String c = "3"; System.out.println(a + b + c);
如上代码输出的结果为:123 原因:输出语句中的 “+”,表示的是字符串的连接,自动将结果转换成了字符串
小练习2
float f1 = 9.9f; float f2 = 0.1f; System.out.println(f1 - f2);
输出为
9.799999
原因:计算机程序在执行的过程中转换为二进制, 9.9为1001.111 0011 0011 0011 … …, 0.1为0.00011 00011 00011 … … 算出的答案为9.799999…