【Java笔记】Java的类型转换

目录

太长不看版(总结)

**总结:

  1. 低到高类型转换:(byte、short、char)——int——long——float——double;(帮助记忆:ilfd—–>i love food)
  2. 高到低强制类型转换:(类型名)要转换的值 ;
  3. 其他基本类型转换为类类型:都可以用volueOf(X),例如String.volueOf(X);
  4. 类类型向对象的基本类型转换:例如Integer向int转换,都可以使用XXXValue,例如 int i=Integer.valueOf(“123”).intValue()。这个语句使用的类包装器过渡。

1、JAVA数据类型

要了解JAVA的数据类型转换我们就要先了解一下JAVA都有哪些数据类型。
JAVA中分为基本数据类型及引用数据类型

1、1基本数据类型(小写)

基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。

注意:
4类8种对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long
基本的数据类型由低级到高级分别为:(byte、short、char)——int——long——float——double
PS:此处的“级别”是指表示值的范围的大小。

4类8种:
(1)整型:int、short、long、byte。

(2)浮点型:float、double。

(3)字符型:char。

(4)布尔型:boolean。

byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0

short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0

int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0

long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L

float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0

double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0

char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空

boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false

1、2引用数据类型(大写)

引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过*类或接口进行构造*,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。

引用类型包括类、接口、枚举和数组类型、null类型。
空引用null只能被被转化为引用类型,不能转化成基本类型,因此,不能把一个null值赋给基本类型的变量。

2、JAVA都有哪些类型转换

总结:其他基本类型转换为类类型都可以用volueOf(X),例如String.volueOf(X);类类型向对象的基本类型转换都可以使用XXXValue,例如 int i=Integer.valueOf(“123”).intValue()。这个语句使用的类包装器过渡。

分为以下几种情况:

2.1低级到高级的自动类型转换;

2.2高级到低级的强制类型转换(会导致溢出或丢失精度);

2.3基本类型向类类型转换;

2.4基本类型与字符串的转换;

⑴其它类型向字符串的转换

①调用类的串转换方法:X.toString();
②自动转换:X+“”;
③使用String的方法:String.volueOf(X);

⑵字符串作为值,向其它类型的转换

①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中“32.1”转换double型的值的格式为:new Float(“32.1”).doubleValue()。也可以用:Double.valueOf(“32.1”).doubleValue()
②静态parseXXX方法
String s = “1”;
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
③Character的getNumericValue(char ch)方法
具体可查阅api。

2.5类类型向字符串转换

正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可
反向转换:通过类包装器new出一个新的类类型的变量
eg1: int i=Integer.valueOf(“123”).intValue()
说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。

3、基本数据类型之间的转换规则

基本数据类型之间的转换规则
1.在一个双操作数以及位运算等算术运算式中,会根据操作数的类型将低级的数据类型自动转换为高级的数据类型,分为以下几种情况:

1)只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;

2)只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;

3)只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;

4)两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。

  1. 如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,再做其它类型的自动转换。

  2. 对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。 如:

short i=99 ;
char c=(char)i;
System.out.println(“output:”+c);

  1. 不能在布尔值和任何数字类型间强制类型转换;

  2. 不同级别数据类型间的强制转换,可能会导致溢出或精度的下降。

  3. 当字节类型变量参与运算,java作自动数据运算类型的提升,将其转换为int类型。例如:byte b;
    b=3;
    b=(byte)(b*3);//必须声明byte。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值