Java中的数据类型转换

我们先来了解一下基本的数据类型有哪些?Java语言 提供了八种基本数据类型,其中包括六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔值。

byte:

1、 byte数据类型是8位(bit)、有符号的以二进制补码表示的整数;
2、最小值是-128(-2^7);
3、最大值是127(-2^7-1);
4、 默认值是0,例子:byte a=100,byte b=-50。

Short:

1、 short数据类型是16位、有符号的以二进制补码表示的整数;
2、最小值是-32768(-2^15);
3、最大值是32768(2^15-1);
4、 Short数据类型可以节省空间,一个short变量是int型变量所占的空间的二分之一;
5、 默认值是0,列子:short s=100, short r=-200。

int:

1、 int数据类型是32位,有符号的以二进制补码表示的整数;
2、 最小值是-2,147,483,648(-2^31);
3、最大值是2,147,483,647(2^31-1);
4、 一般地整型变量默认为int类型;
5、 默认值是0;列子:int a=1000,int b=-2000.

Long:

1、 long数据类型是64位、有符号的以二进制补码表示的整数;
2、最小值是-9,223,372,036,854,775,808(-2^63);
3、最大值是9,223,372,036,854,775,807(-2^63-1)
4、这种类型主要使用在需要比较大整数的系统上;
5、默认只是0L;列子:Long a=100000.Long b=-200000。注意:“L”理论上不分大小写,但是若写成“l”容易与数字“1”混淆,不容易分辨,所以最好大写

float:

1、 float数据类型是单精度,32位、符合IEEE754标准的浮点数;
2、 float在存储大型浮点数组的时候可节省内存空间;
3、 浮点数不能用来表示精确的值,如货币;
4、 默认值是0.0f;列子:float f1=234.5f.

boolean:

1、 boolean数据类型表示一位的信息;
2、 只有两个取值:true和false;
3、 这种类型只作为一种标志来记录true/false情况;
4、 默认值是false;列子:boolean one=true;

char:

1、 char类型是一个单一的16位Unicode字符;
2、 最小值是\u000(即为0),最大值是\uffff(即为65.535);
3、 Char数据类型可以储存任何字符;例子:char letter=’123’.
我们了解进本的数据类型后,到了我们今天的重点要讲的内容啦!类型转换,类型转换又分为两种:自动类型转换也叫“隐式类型转换”;强制类型转换也叫“显示类型转换”。整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后再进行运算。(转换从低级到高级)

自动转换:

1、 小的类型自动转化为大的类型;

byte byteValue=100;
int intValue=byteValue+80;
System.out.println(“byte类型100+int类型80=+intValue);

输出结果
在这里插入图片描述
2、 整数类型可以自动转化为浮点类型,可能会产生舍入误差;
注:Float和Double提供了快速的运算,然而问题在于转换为二进制的时候,有些数字不能完全转换,只是无限接近于原本的值

float floatValue=10+2f;
float floatValue2=floatValue-11.9f;
System.out.println(“floateValue的值=+floatValue);
System.out.println(“floateValue的值-11.9f=+floatValue2);

输出结果
在这里插入图片描述
3、 字符可以自动提升为整数

char charValue=’a’;
int intValue2=charValue+10;
System.out.println(“char类型的a加int类型的10=+intValue2);

输出结果
在这里插入图片描述

强制类型转换(显示类型转换)

格式:(type)value type是要强制类型转换后的数据类型
注意:1、强制类型装换可能导致溢出或者损失精度导致溢出

byte A=(byte) 128;
System.out.println(“byte类型的128=+A);

输出结果
在这里插入图片描述
损失精度

System.out.println(“Long的最大值=+Long.MAX_VALUE);
float floatValue=(float) Long.MAX_VALUE;
System.out.println(“损失精度=+floatValue);

输出结果
在这里插入图片描述
2、在把容器大的类型转换为容器小的类型时必须使用强制类型转换

int intValue=120;
byte byteValue=(byte) intValue;
System.out.println(“int类型强制转换为byte类型=+byteValue);

输出结果
在这里插入图片描述
4、 浮点型到整数的转换是通过舍弃小数得到,而不是四舍五入

int intValueA=(int)13.7;
int intValueB=(int)-13.7;
System.out.println(“intValueA=+intValueA);
System.out.println(“intValueB=+intValueB);

输出结果
在这里插入图片描述

总结:想要把Java学好,那就把最基本的数据类型掌握好。基本的数据类型,就相当于Java的核心的内容。在数据类型的转换这一方呢!其实也是比较重要的,小的数据类型转换为大的数据类,存在隐式转换。大的数据类型转换为小的数据类型,则需要用到强制转换,强制转换的过程中也存在一个重要的问题;可能导致溢出或者损失精度,对数据带来不准确。前几天我和一个朋友聊天,她跟我说了一句话“谁能持之以恒,谁能一站到低。”我觉得这句话,真的很适合现在我们。虽然每个人都有着自己的梦想,当能真正坚持下来的,又有几个呢?有些人走着走着,就忘记自己出发的目的了,忘记自己的初心。正处于青春美好的时候,我们都有热血蓬勃的心态,有时候就像打了鸡血一样勤奋,追求自己的梦想;有时候会失去战斗力,对任何都没有希望。想要成为真正的强者,我觉得持之以恒是我们每个人必不可少的一门必修课。其实,在学习Java的过程中也是,我们总是觉得基础很简单,然而对基础有一种轻视的心理。到头来才发现自己什么也没学会,才意识到基础的重要性。做每一件事,我们都应该从小事做起,如果你连一件基本的小事都做不好,那更不要谈大事了。

自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的类型到存储范围大的类型。 具体规则为: byte→short(char)→int→long→float→double 也就是说byte类型的变量可以自动转换为short类型,示例代码: byte b = 10; short sh = b; 这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。 在类型转换时可以跳跃。示例代码: byte b1 = 100; int n = b1; l 注意问题 在整数之间进行类型转换时,数值不发生改变,而,特将整数类型别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。 转换规则 从存储范围大的类型到存储范围小的类型。 具体规则为: double→float→long→int→short(char)→byte 语法格式为: (转换到的类型)需要转换的值 示例代码: double d = 3.10; int n = (int)d; 这里将double类型的变量d强制转换成int类型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的低位,例如int类型的变量转换为byte类型时,则只去int类型的低8位(也就是最后一个字节)的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值