1.八种基本数据类型
八种基本数据类型包括:byte,short,int,long,double,float,Boolean,char
- byte:字节型:用于存储整数,占1个字节,范围-128-127
- short:短整型:用于存储整数的,占2个字节,范围-32768到32767
- int:最常用整型:用于存储整数的,占用4个字节,范围-2^31到2^31-1
- long:长整型:用于存储较大的整数,占用8个字节,范围-2^62到2^62-1
- float:单精度浮点数:用于存储小数的,占用4个字节,不能表示精确的值
- double:双精度浮点数,最常用的存储小数的类型,占用8个字节,不能表示精确的值
- boolean:布尔型,用于存储true和false,占用1个字节
- char:字符型,采用的是Unicode的字符编码格式,存储单个字符,占用两个字节
对于int型
- 整数直接默认为int型,但是不能超出它的范围,若超出范围则发生编译错误
- 两个整数相除,结果还是整数,小数无条件舍弃(不会四舍五入)
- 运算时,若超出范围则发生溢出,虽然溢出不是错误,但是需要避免
对于long型
- 长整形直接量需要在后面加L或l
- 运算时若有可能发生溢出,建议在第1个数字后面加L
long e=10000000000L*10
long g=10000000000*10L
System.out.println(e);
System.out.printle(g);
//上述两种答案是不一样的,g则是发生了溢出
对于double浮点型
- 浮点型直接连默认为double类型,若想便是float,需要在数字后面加F或f
- double和float型数据参加运算时,有可能会发生舍如误差,精确场合不能使用
对于boolean型
只能存储true或false,对于它的定义,我们只能如下:
boolean a=true;
boolean b=false;
boolean c=5;//编译错误,只能存储true或false
对于char
- 采用的是Unicode编码格式,一个字符对应一个码
- 表现的形式是字符char,但本质上是int(0到65535)
- 字符直接量必须放在单引号中,只能有一个
- 特殊符号需要通过\来转义
char c1='女';//字符女
char c2='f';//字符f
char c3=65;//A
char c4='A';//65
char c5='';//编译错误,不能为空
//特殊符号需要通过\来转义(转义符号)
char c6='\\';//\
对于他们之间的装换
转换有两种方式:
- 自动/隐式类型转换:小类型转为大类型
- 强制类型装换:大类型转为小类型
语法:
数据类型 变量=(要转换成为的数据类型)变量
注意:
强制有可能溢出或丢失精度.
int a=5;
long b=a;//自动类型装换,小数据类型转换为大数据类型,int型转换为long型
long d=5;//这也算自动转换
double e=5;
//强制类型转换,大数据类型装换为小数据类型,long型装换为int型
long b=(int)a;
long l=100000000000L;
int g=(int)f;//这里虽然进行了强制装换,但是发送了数据溢出
double h=3.1415
int i=(int)h;//这里进行了强制的转换,但是丢失了精度.
所以我们数据转换有两点规则
- 整数直接量可以给byte,short,char赋值,但是不能超出范围.
- byte,short,char类型数据参与运算时,系统会自动装换为int再运算
byte b1=5;
byte b2=5;
byte b3=(byte)(b1+b2);//因为系统会自动转换为int再运算
int a='刘';//此时输出的是'刘'对应的码
System.out.printlen(2+'2');//52,2加上'2'对应的码50;
注:基本数据类型从小到大
byte--short--int--long--float--double--char