2-6 基本数据类型
数值型–
1、整数类型—(bytr)1个字节,(short)2个字节,(int)4个字节,(long)8个字节。
2、浮点类型(小数)----(float)4个字节,(double)8个字节。
字符型(char)–表示单个字符,如‘a’,由 单引号 括起。空间大小2字节。
布尔型(boolean)–只有两个值,一个是true,一个是false。用于逻辑判断。空间大小1位。
2-6-1 整形常量/变量。
Java语言 整形常量的四种表现形式
1、十进制整数,如:99,100,0.
2、八进制整数,要求以0开头,如:015.
3、十六进制数,要求以0x或0X开头,如:0x15.
4、二进制数,要求以0b或0B开头,如:0b01110011、
Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ 。
public class Jibenshujuleixing {
public static void main(String[] args) {
//测试整形常量
int a =15;
int b =015;//以0开头的数,是八进制的数。
int c =0x15;//以0x开头的数,是十六进制的数。
int d =0b0111001;//以0b开头的数,是二进制的数。
System.out.println(b);
System.out.println©;
System.out.println(d);
byte age =30;
short gongzi =10000;
int renkou =1000000000;//整形常量默认是int类型。
long quanqiurenkou = 7400000000L;//如果要表示long类型数据,需要在数据后加L。
}
}
2-6-2 浮点型常量/变量
float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型类,绝大部分应用程序都采用double型。浮点型常量默认类型也是double。
浮点类型float,double的数据不适合在不容许舍入误差的金融计算领域。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
import java.math.*;//导入包。在使用外部相关的类的时,需要导入相关的包。
/**
- 浮点型常量/变量
- @author CSL
*/
public class Fudianleixing {
public static void main (String[] args) {
float a =3.14F;
double b=6.28;
double c=628E-2;
System.out.println(c);
System.out.println(b);
//浮点数是不精确的,一定不要用于比较!
float d1=0.1f;
double d2=1.0/10;
System.out.println(d1==d2);//结果为false
float f1=432432432f;
float f2=f1+1;
if(f1==f2) {
System.out.println("f1==f2");//结果为输出 f1==f2
}else {
System.out.println("f1!=f2");
}
System.out.println("########################");
//使用精确的浮点运行,推荐:BigDecimal
BigDecimal bd= BigDecimal.valueOf(1.0);
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd);
System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);
BigDecimal bd1 = BigDecimal.valueOf(0.1);
BigDecimal bd2 = BigDecimal.valueOf(1.0/10.0);
System.out.println(bd1.equals(bd2));
}
}
2-6-3 字符型常量/变量
字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。
char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。
以后我们学的String类,其实是字符序列(char sequence)。
/**
- 测试字符类型常量/变量
- @author CSL
*/
public class Zifuleixing {
public static void main (String[] agrs) {
char a =‘a’;//char 字符类型用单引号’‘来表示。
char b =’\u0000’;//char类型用来表示Unicode中的字符,所以也可以用Unicode中的编码来表示,从\u0000-\uffff.共65536个字符。
char c =‘c’;
System.out.println(b);//打印空格
System.out.println(a);
//转义字符
/**
* 转义字符有 \b 表示空格; \n 表示换行; \r 表示回车; \t 表示制表符
* \" 表示双引号 \' 表示单引号 \\ 表示反斜杠
*/
System.out.println(""+a+c);//打印 ac
System.out.println(""+a+"\t"+c);//打印a c。中间间隔制表符
//char只表示单个字符类型。当表示多个字符如"abc"时,使用String类型。
String f ="abc";//注意 String 首字母大写
}
}
2-6-4 布尔类型常量/变量 boolean
boolean类型有两个常量值,true和false.在内存中占一位(不是一个字节)。
boolean flag ;
flag = true; //或者flag=false;
if(flag) {
// true分支
} else {
// false分支
}