Java011——Java数据类型转换(基本数据类型)

回顾:Java八大基本数据类型

============================================================================================
大类		类型名称	   		关键字	   占用内存	      取值范围
--------------------------------------------------------------------------------------------
		|字节型			byte		1 字节		-128~127
整型		|短整型			short		2 字节		-32768~32767
		|整型			int			4 字节		-2147483648~2147483647
		|长整型			long		8 字节		-9223372036854775808L~9223372036854775807L
--------------------------------------------------------------------------------------------
		|单精度浮点型		float		4 字节		+/-3.4E+38F6~7 个有效位)
浮点型	|双精度浮点型		double		8 字节		+/-1.8E+308 (15 个有效位)
--------------------------------------------------------------------------------------------
字符型	|字符型			char		2 字节		ISO 单一字符集
--------------------------------------------------------------------------------------------
布尔型	|布尔型			boolean		1 字节		truefalse
============================================================================================

这里只讨论8大基本类型中的7个类型,不涉及boolean类型

围绕以下3点学习:
1、什么是Java数据类型转换?
2、自动类型转换
3、强制类型转换

什么是Java数据类型转换?

数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型。

Java数据类型转换包括:自动类型转换强制类型转换

一、自动类型转换

自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。

发生情景:容量小的和容量大的做运算,结果会自动变成容量大的对象的数据类型,即

bytecharshort --> int --> long --> float --> double

特别的:当byte、char、short三种类型的变量做运算时,结果为int型

说明:
1、此时的容量大小指的是,表示数的范围的大和小。比如float容量要大于long的容量
2、不同类型的数字先转换成同类型,再运算

二、强制类型转换

人为通过代码将数据进行类型转换,即强制类型转换。

发生情景:容量大的转换成容量小的,就需要进行强制类型转换。

格式:
(数据类型)变量; 或者(数据类型)变量值
例如:(int) num;int(15.2);

例如

float a = 100;
int b = (int)a;//将a从float类型强制转换成int类型

强制类型转换可能会造成内存溢出,或者数值精度丢失

1、内存溢出
a、显式内存溢出
inte a = 128;
byte b = (byte)a;//内存溢出,因为byte类型最大只能表示127
b、隐式内存溢出
byte c = 5;
byte d = 32;
int e = c * d//出现内存溢出,因为在赋值给e前,c*d结果还是byte类型,
			//但是c*d等于160,大于byte类型最大值127,所以会溢出
int f = c *int)d//正确写法

2、数值精度丢失
float a = 25.63;
int b = (int)a;
System.out.println(b);//输出结果是25,而不是25.63,造成精度丢失0.63

你可能感兴趣的:(Java全套学习笔记,java,开发语言)