一、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…