Java_基础_基本数据类型(Primitive data type)
Java中定义了8种基本数据类型
数值型- byte、 short、int、 long、float、 double
字符型- char
布尔型-boolean
/**
* 基本数据类型(primitive data type)
* 引用类型占用四个字节,表示的是地址
* @author creep_creep_creep
*
*/
public class A_primitive {
//数值型
byte a;//1字节
short b;//2字节
int c;//4字节
long d;//8字节
float e;//4字节
double f;//8字节
//字符型
char name;//2字节
//布尔型
boolean g;//1位
}
整型变量/常量
类型 | 存储空间 | 范围 |
byte | 1字节 | ~ (-128~127) |
short | 2字节 | ~ |
int | 4字节 | ~约21亿 |
long | 8字节 | ~ |
Java 语言整型常量的四种表示形式
十进制整数,如:99, -500, 0
八进制整数,要求以 0 开头,如:015
十六进制数,要求 0x 或 0X 开头,如:0x15
二进制数,要求0b或0B开头,如:0b01110011
Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ 。
/**
* 测试基本数据类型
* @author creep_creep_creep
*
*/
public class A_integer {
public static void main(String[] args) {
int a=15;
int b=015;//八进制
int c=0x15;//十六进制
int d=0b1111;//二进制
System.out.println(a);//15
System.out.println(b);//13
System.out.println(c);//21
System.out.println(d);//15
long a = 6666666; //编译成功,在int表示的范围内(21亿内)。
long b = 66666666666;//不加L编译错误,已经超过int表示的范围。
long b = 66666666666L;
}
}
浮点型变量/常量
类型 | 存储空间 | 范围 |
float | 4字节 | -3.403E38~3.403E38 |
double | 8字节 | -1.798E308~1.798E308 |
- float类型又被称作单精度类型,尾数可以精确到7位有效数字。
- double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型。
- 浮点型常量默认类型也是double。
Java浮点类型常量有两种表示形式
- 十进制数形式,例如:3.14 314.0 0.314
- 科学记数法形式,如314e2 314E2 314E-2
- float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。
- 可以在浮点数值后添加后缀D或者d, 以明确其为double类型。
import java.math.*;//导包
/**
* 测试浮点型
* @author creep_creep_creep
*
*/
public class A_floating {
public static void main(String[] args) {
float a=3.14f;
double b=6.28;
double c=628E-2;
System.out.println(c);//6.28
//浮点数不精确,不能用作比较
float d1=0.1f;
double d2=1.0/10;
System.out.println(d1==d2);//false
float f1=4343433434f;
float f2=f1+1;
System.out.println(f1==f2);//true
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);//0.5
System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);//0.5000000000000001
BigDecimal bd2=BigDecimal.valueOf(0.1);
BigDecimal bd3=BigDecimal.valueOf(1.0/10);
System.out.println(bd2.equals(bd3));//true
}
}
字符型变量/常量
- 字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。’A’是一个字符,”A”表示含有一个字符的字符串。
- char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。
- Unicode具有从0到65535之间的编码,他们通常用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)
- Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义。常用的转义字符及其含义和Unicode值如表2-6所示。
转义符 | 含义 | Unicode值 |
\b | 退格(backspace) | \u0008 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\t | 制表符(tab) | \u0009 |
\“ | 双引号 | \u0022 |
\‘ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
/**
* 测试字符类型
* @author creep_creep_creep
*
*/
public class A_char{
public static void main(String[] args) {
char a='z';
char b='中';
char c='\u0061';
System.out.println(c); //a
System.out.println("a"+"\b"+"b");//退格 ab
System.out.println("a"+"\n"+"b");//换行 a
// b
System.out.println("a"+"\r"+"b");//回车 a
// b
System.out.println("a"+"\t"+"b");//制表符(tab) a b
System.out.println("a"+"\""+"b");//双引号 a"b
System.out.println("a"+"\'"+"b");//单引号 a'b
System.out.println("a"+"\\"+"b");//反斜杠 a\b
}
}
boolean类型变量/常量
- boolean类型有两个常量值,true和false,在内存中占一位(不是一个字节),不可以使用 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。 boolean 类型用来判断逻辑条件,一般用于程序流程控制 。
/**
* 测试布尔类型
*Less is More
*@author creep_creep_creep
*
*/
public class A033BuErXing {
public static void main(String[] args) {
boolean flag;
flag=true;
if(flag){
System.out.println("正确");//正确
}
}
}