数据类型和类型转换

分类

        基本数据类型:

                整数型:byte(字节型)、short(短整型)、int(整型)、long(长整型)

                浮点型:float(单精度)、double(双精度)

                布尔型:boolean

                字符型:char

        引用类型:String、类、接口、数组......

注:Java各数据类型都有固定的范围和字段长度,不受具体OS[操作系统]的影响,以保证java程序的可移植性。

整数型

整数型字面值被默认为int类型,想让整数型字面值被当做long类型来处理的话,要在字面值后添加L(或l)。

声明 long类型变量时,最好以L或l结尾。

浮点型

在java语言中,所有浮点型字面值,都默认为double类型来处理。要想该字面值当做float类型处理,须在字面值后加F(或f)。

double和float存储的都是近似值,有些数字计算机无法储存。例:3.14......

注:浮点数计算时会有偏差。

布尔型

在java语言中,boolean类型只有2个值:true 和false,没有其它值。

层储存时只占一个字节,false底层是0,true是1。

字符型

字符常量是用单引号( '    ' )括起来的单个字符。

在java中,char的本质是一个整数,在输出时,是unicode码对应的字符。所以,可以直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出。

char类型是可以进行运算的,相当于一个整数。

字符型存储到计算机中,需要将字符对应的码值(整数)找出来,比如'a'

存储:'a' ——>码值97——>二进制——>存储
读取:二进制——> 97——> 'a'——>显示

 自动类型转换             

int a= 123;
/*
123为int类型字面值,a为int类型变量
int类型的123.赋值给int类型的变量,无类型转换
*/

long b=456;
/*
456为int类型字面值, 占4个字节
b为long类型变量 占8个字节
int类型的123赋值给long类型的变量,有类型转换
*/

 int类型——> long类型,int类型为小容量,long类型为大容量,小容量可自动转换成大容量,被称为自动类型转换机制。

强制类型转换

long a=100L;
/*
100L是long类型字面值
a是long类型变量直接赋值,无类型转换
*/
int b=100L
/*
100L是long类型字面值
b是int类型变量
编译错误:大容量不能直接赋给小容量
*/

大容量转换成小容量,需要进行强制类型转换

强制类型转换符:()

 例:

inta=(int)100L

强制转换后编译虽然通过了,但运行时可能出现精度损失所以需要谨慎使用,因为损失精度后可能损失严重。
强转原理:将原始数据的二进制表达前几位给删除。
        例:将4个字节转为2个字节,须将4个字节删去2个字节的数据

大容量转化成小容量时,如果字面值在小容量的类型取值范围内,该面值可以直接赋值。(仅限于byte,short,char,且只能赋值为字面值,不能是计算结果和变量

小结

数据类型之间的转换规则

①八种基本数据类型中,除布尔类型之外都可以互相转换。

②小容量向大容量转换,称为自动类型转换。
        容量由小到大;byte <short< int<long<float< double
            char
注:任何浮点型数据不管占用多少个字节都比整数型容量大。char和short平级,可表示的种类数量相同,但char可以取更大的整数。

③大容量向小容量转换,称为强制类型转换。转换时需要加强制转换符。(会出现精度损失)

④当字面值没有超出byte,short,char的取值范围时,可直接赋值。

⑤多种类型混合运算时,先转化成容量大的类型再运算。

补充:byte,sgort,char不能间接赋值(即赋值为另一个变量中的值)。
 

short s=5;
byte b=s; //编译报错:无法从short转化为byte

//解决: 
byte b= (byte) s;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值