Java数据类型
2018-05-22 17:09:59
数据类型
。Java语言是强类型语言
。。所有变量必须先声明再使用
。。指定类型的变量只能接受类型与之匹配的值
。Java数据类型分为两大类-基本数据类型和引用类
基本类型 |
数值类型 |
整数类型 |
byte |
1字节 |
8位 |
-128(2^7)~127(2^7-1) |
short |
2字节 |
16位 |
(2^15)~(2^15-1) |
|||
int((默认) |
4字节 |
32位 |
(2^31)~(2^31-1) |
|||
long |
8字节 |
64位 |
(2^65)~(2^65-1) |
|||
char |
2字节 |
16位 |
(^15)~(2^15-1) |
|||
浮点类型 |
float |
4字节 |
32位 |
(2^31)~(2^31-1) |
||
double |
8字节 |
64位 |
(2^65)~(2^65-1) |
|||
bolean类型 |
boolean |
1字节 |
8位 |
-128(2^7)~127(2^7-1) |
||
引用类型 |
包括类、接口、数组等类型以及null类型 |
。整数类型
。。默认类型int
。。如果一个数超出其类型范围例超出int范围,则java不会自动当做long来处理;
*如果要处理为long,则需要添加后缀L/l
。。如果一个较小整数(byte/short范围)赋给byte或short变量,系统自动将其当成byte或short数据处理
。。将较小数值赋给较大范围类型,如将在int范围的数据赋值给long,则java依然将其当做int处理,并自动转换为long
。整数值4种表示方式
。。十进制
。。二进制-0B/0b开头
。。八进制-0开头
。。十六进制-0x/0X开头,10~15以a~f(不区分大小写)表示
。字符型值3表示方式
。。单个字符指定-‘A’、‘9’
。。转义字符表示-‘\n’、’\t’
。。以十六进制编码表示-‘\u0000’~’\uFFFF’
。字符型,相当于无符号整数类型
。。使用单引号括起来
。。计算机保存字符是,实际保存字符对应的编号,则char类型可以当做整数值,相当于16位无符号整数,0~65535
。。char类型变量、值可参与加、减、乘、除等数学运算,也可以比较大小
*以字符对应编码参与运算
。。将16位范围内的int整数赋给char类型变量,系统自动把int整数当成char类型
* char zhong=’字’;
int char2Int=zhong
可将char变量当成int变量使用
。字符串不是基本数据类型,通过String类表示
。。通过双引号括起来
。浮点型
。。默认为double类型
。。float-单精度浮点型
。。double-双精度浮点型
。。3个特殊浮点数
*正无穷大-整数/0
*负无穷大-负数/0
*非数-0.0/0.0、负数开方
。。如果要将一个浮点型数值以float类型处理,则需在数值后添加f/F
。浮点数2种表示方式
。。十进制-必须包含一个小数点,否则会被当做int处理
*如.12、512.0、.512
。。科学计数法-只有浮点数可以使用科学计数法
*如int类型51200表示为521E2则转换为float类型
。数值中使用下划线分隔
。。Java7引入功能,以方便查看数值位数
。。int value1=0B1000_0000_0000_0000_0011;
double value2=3.14_15_92_65_36;
。布尔型
。。只能以true/false表示,不能以0/1表示
。。其他基本数据类型不能转换成boolean类型
。。boolean类型变量只需要1位内存空间,但最小分配内存单位为字节bit(8位)
。。字符串“true”或“false“不会直接转换成boolean类型,但boolean值与字符串进行连接,则boolean类型会自动转换为字符串
*String str=true+””;-结果为字符串true
。。boolean类型值主要用来进行流程控制
*if条件控制
*while循环控制
*do循环控制
*for循环控制
*三目运算(?:)
。null类型
。。没有类型名称,所以不能声明一个null类型的变量或转换到null类型
。。null是null类型变量的唯一值
。。null(空引用)可以转换为任何的引用类型
基本类型的类型转换
Java程序中不同的基本类型的值需要进行互相转换。转换类型分为自动类型转换和强制类型转换
。自动类型转换-范围小的数值或变量赋给范围比较大的类型的变量时,系统进行自动转换
。。int类型与float类型可以自动转换
。。基本类型与字符串进行连接运算,基本类型自动转换为字符串类型
。。希望将基本类型转换为字符串类型可以将基本类型值与空字符串进行连接实现转换
。强制类型转换-范围大的数值或变量赋给范围比较小的类型的变量
。。数值带上小数则默认为double类型;要表示float类型需要数值后面添加f/F
。。浮点型转换为整型时,Java直接截断小数部分
。。转化时,当数据超出范围,相当于将大瓶中的水倒入到小瓶当中,造成溢出,数据丢失
。。例
*代码
double d=2.2222;
long l=(long) d;
System.out.println(l);
int i1=127;
byte b1=(byte) i1;
System.out.println(b1);
int i2=128;
byte b2=(byte) i2;
System.out.println(b2);
*结果
。字符串类型转换为基本类型
。。通过基本类型对应的包装类实现
。。Java为8中基本类型提供了对应的包装类
*byte-Byte
*short-Short
*int-Integer
*long-Long
*char-Charater
*float-Float
*double-Double
*boolean-Boolean
。。每个包装类提供了parseXxx(String str)静态方法将字符串转换为基本类型
。。例
。表达式类型的自动上升
。。当表达式中包含多个基本类型的值是,整个表达式的类型自动上升
。。上升规则
*所有byte类型、short类型、char类型上升为int类型
*如下,表达式上升到
*表达式类型提升到整个表达式中最高等级操作数同样的类型
**如上,根据右边表达式最高等级操作数为2(int类型),则其赋值给的对象应该是int类型变量
直接量
。指在源代码中直接给出的值-int a=5;中5就是一个直接量
。直接量3中类型,具体有8种
。。基本类型
*int类型-二进制、八进制、十进制、十六进制
*long类型-其后添加l/L表示
*float类型-其后添加f/F;可以是标准小数形式也可以是科学计数法表示
*double类型-可以是标准小数形式也可以是科学计数法表示
*char类型-单引号括起来、转义字符、Unicode值表示
*String类型-双引号括起来
**当程序第一次使用某字符串直接量时,Java使用常量池缓存该字符串直接量;如果程序后面部分需要使用该字符串则直接使用常量池中的字符串直接量
* null类型-null(可赋值给任何引用类型变量)