119.Java_基本数据类型
1.分类
- Java数据类型
- 基本数据类型
- 数值型
- 整数类型
- 浮点类型
- 字符型
- 布尔型
- 数值型
- 引用数据类型
- 类
- 接口
- 数组
- 基本数据类型
2.基本数据类型
2.1 综述
java的8种基本数据类型(简单数据类型)
boolean byte short char int long float double
分为以下四大类型
1 逻辑类型:boolean 2 整数类型:byte short int long 3 字符类型:char 4 浮点类型:float double
2.2 简要介绍
逻辑类型 | 常量 |
true、false |
true |
||
变量 |
用boolean声明 使用关键字boolean来声明逻辑变量,声明时也可以赋给初值 |
boolean man, male=true; boolean x,ok=true,关闭=false; //T |
有说1位,有说存储范围视内存而定 | ||
整数类型 | int型 | 常量 |
123//十进制 077//八进制 零开通 0x3ABC//十六进制 零小xyz的x |
||
变量 | 用int声明,声明时也可以赋给初值 |
int x = 12;
: int x= 12,平均=9898,jiafei; //T
|
-231~231-1 4字节 32位 231约21亿 |
||
byte型 | 常量 | java中不存在该表示法 |
可以把范围 -27~27-1 内的int型常量赋给byte变量 ???要求0b或0B开头,如:0b01110011 |
||
变量 | 用byte声明 |
byte tom = 28;
|
-27~27-1 1字节 8位 -128~127 |
||
short型 | 常量 |
java中不存在改表示法 |
可以把范围 -215~215-1 内的int型常量赋给short变量 | ||
变量 | 用short声明 |
short x = 12;
|
-215~215-1 2字节 16位 -32768~32767 |
||
long型 | 常量 |
108L//十进制 07123L//八进制 0x3ABCL//十六进制 |
|||
变量 | 用long声明 |
long width = 12L;
|
-263~263-1 8字节 64位 | ||
字符类型 | char类型常量 |
英文单引号括起Unicode 表中的一个字符 |
‘a’ ‘好’ ‘&’ |
||
转意字符常量 |
有些字符(如回车符)不能通过键盘输入到字符串或程序中,就需要使用转意字符常量 |
例如:\n(换行), \b(退格),\t(水平制表),\‘(单引号),
\“(双引号),\\(反斜线)等
|
|||
char类型变量 | 用char声明 |
char x = ‘a’;//等价于char x = 97 |
0~65535 216-1 2字节16位 最高位不是符号位,无负char |
||
浮点类型 | float型 | 常量 |
32.1f 32.1F -23.1f//必有f 2e40f//2×10^40 2乘10的40次方 |
又被称作单精度类型, 可以精确到8位有效数字 |
|
变量 | 用float声明 |
float x = 22.76f;
|
-3.403E38~3.403E38 4字节 |
||
double型 | 常量 |
21.3d 21.3 21.3D//D或d可省略 1e-90//1*10^-90 |
数值精度约是float类型的两倍,16位有效数字 又被称作双精度类型 |
||
变量 | 用double声明 |
double width = 32.56D
|
-1.798E308~1.798E308 8字节 |
||
java中没有无符号的 byte short int long 错误声明:unsigned int m; |
2.2.1 浮点数
1.不要使用浮点数进行比较,需要比较使用BigDecimal类
float f = 0.1f; double d = 1.0/10; System.out.println(f==d);//结果为false float d1 = 423432423f; float d2 = d1+1; if(d1==d2){ System.out.println("d1==d2");//输出结果为d1==d2 }else{ System.out.println("d1!=d2"); } /*因为由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。 浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。 二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。 并不是所有的小数都能可以精确的用二进制浮点数表示。 java.math包下面的两个有用的类:BigInteger和BigDecimal, 这两个类可以处理任意长度的数值。 BigInteger实现了任意精度的整数运算。 BigDecimal实现了任意精度的浮点运算。 */
2.浮点类型float,double的数据不适合在不容许舍入误差的金融计算领域。
如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
2.2.2 字符型
1.char 类型用来表示在Unicode编码表中的字符。
Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符
’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。
String类,其实是字符序列(char sequence)
2.字符型的十六进制值表示方法
Unicode具有从0到65535之间的编码,
通常用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)
char c = '\u0061';
3. Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义
转义符 | 含义 | Unicode值 |
\b | 退格backspace | \u0008 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\t | 制表符tab | \u0009 |
\“ | 双引号 | \u0022 |
\' | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
2.3 类型转换运算
2.3.1高低类型转换
1.基本类型从低到高
byte short char int long float double
2.低 ——> 高
系统自动完成数据类型转换 float x = 100;//输出x为100.0
3.高 ——> 低
必须用类型转换运算 格式:(类型名)要转换的值; int x = (int)34.89;//输出为34
4.当将一种类型强制转换成另一种类型,而又超出了目标类型的表数范围,就会被截断成为一个完全不同的值
int x = 300; byte bx = (byte)x; //值为44 取低的范围内的数
5.不能在布尔类型和任何数值类型之间做强制类型转换
2.3.2字符串型数据与整型数据相互转换
1.字符串转换成数值型数据
数字字符串型数据转换成byte、short、int、float、double、long等数据类型,可以分别使用表3.7所提供的Byte、Short、Integer、Float、Double、Long类的parseXXX方法。
表 字符串转换成数值型数据的方法
例如: String MyNumber="1234.567"; //定义字符串型变量MyNumber float MyFloat=Float.parseFloat(MyNumber);
//1234.567
例如: String MyNumber="1234a.567"; //定义字符串型变量MyNumber float MyFloat=Float.parseFloat(MyNumber); //1234
2.4 常量和变量
2.4.1 常量
1)常量通常指的是一个固定的值,
例如:1、2、3、’a’、’b’、true、false、”helloWorld”等,
一般将称为字面常量;
2)在Java语言中,主要是利用关键字final来定义一个常量,
常量一旦被初始化后不能再更改其值,
使用final修饰的PI等称为符号常量
常量:大写字母和下划线:MAX_VALUE
声明格式为: final type varName = value;
常量的声明及使用: public class TestConstants { public static void main(String[] args) { final double PI = 3.14; // PI = 3.15; //编译错误,不能再被赋值! double r = 4; double area = PI * r * r; double circle = 2 * PI * r; System.out.println("area = " + area); System.out.println("circle = " + circle); } }
为了使用上的方便Java提供了数值型数据的最大值与最小值的标识符及常量值。如表3.4所示。
表3.4 数值型常量的特殊值代码
强制转换前判断是否在范围内防止失真,如double到float
2.4.2 变量
Java是一种强类型语言,每个变量都必须声明其数据类型,可以是基本类型,也可以是引用类型
变量的分类:局部变量、实例变量、静态变量
变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。
格式为:type varName [=value][,varName[=value]...]; //[]中的内容为可选项,即可有可无 数据类型 变量名 [=初始值] [,变量名 [=初始值]…]; double salary; long earthPopulation; int age;