前言
这篇主要讲一下基本数据类型。
基本数据类型(primitive data type)
整型
Java语言整型常量的四种表示形式
- 十进制整数,如:99,-500,0
- 八进制整数,要求以 0 开头,如:015
- 十六进制数,要求 0x 或 0X 开头,如:0x15
- 二进制数,要求 0b 或 0B 开头,如:0b01110011
实例:
public class TestInt{
public static void main(String [] args){
int a = 100; //十进制
int b = 015; //八进制
int c = 0xff; //十六进制
int d = 0b1001010101; //二进制
byte e = 50;
short f = 300;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
int salary = 30000; //整型常量默认类型是int
long yearSalary = 300000000000L; //超过了21亿,后面加L,把整型常量定义为long类型
System.out.println("你的年薪:" + yearSalary);
}
}
浮点型(Floating Point Number)
总结
特性:不精确
- float类型又被称为单精度类型,尾数可以精确到7位有效数字。
- double表示这种类型的数值精确度约是float类型的两倍,又称作双精度类型,绝大部分应用程序都采用double类型。
- Java浮点类型常量有两种表达形式
(1)十进制数形式:例:3.14、 314.0 、 0.314
(2)科学记数法形式。例:3.14e0 (后面的 e0 指的是 3.14乘以10 的 0 次方)、 3.14E2 、 3.14E-1(后面的 E-1指 的是 3.14乘以 10 的 -1 次方,相当于除以10) - 浮点型不精确,不要用于比较。
浮点型存在舍入误差,数字不能精确表示。浮点数适合普通的科学和工程计算,精度足够;但不适合精确度要求非常高的商业计算,这时候要使用BigDecimal进行运算和比较。 - 浮点常量默认类型是double,要改成float可以后面加F或f。
示例:
/**
*测试浮点数的基本用法
*/
public class TestFloatNumber{
public static void main(String [] args){
double d1 = 3.14;
double d2 = 3.14E2; //科学记数法
float f1 = 1.65F; //浮点常量的默认类型是double,改float需要加F
//浮点数是不精确的,尽量不要直接比较
float f2 = 0.1F;
double d3 = 1.0/10;
System.out.println( f2 == d3); //一个=是赋值,两个==是比较。 flase
float f4 = 23432433432L;
float f5 = f4 + 1;
System.out.println( f4 == f5); //true
System.out.println("d2 = " + d2);//d2=314.0
}
}
字符型
char类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。
public class TestChar{
public static void main(String [] args){
char c1 = 'a';
char c2 = '中';
char c3 = '\u0061';
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
//Java中字符串不是基本数据类型,而是一个类
//String类,其实是字符序列,本质是char字符组成的数组。
String str = "我爱中国";
System.out.println(str);
//转义字符
char c5 = '\n'; //换行
System.out.println("a\n\"b\"\nc\nd\n\'e\'\n\\f\ng");
System.out.println("o\tp\tq\tr\ts\tt"); //制表符
}
}
布尔型(boolean)
- boolean类型有两个常量值,true 和 false。
- 在内存中占1个字节或4个字节,不可以使用 0 或 非0 的整数代替 true 和 false。
public class TestBoolean{
public static void main(String [] args){
boolean b1 = true;
boolean b2 = false;
if(b1){
System.out.println("b1是true!");
}else{
System.out.println("b1是false!");
}
}
}