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…
