Java中的强制类型转换是如何转换的?

Python021

Java中的强制类型转换是如何转换的?,第1张

java中数据类型的强制转换是通过强制转换语句完成的,强制转换语句的格式为“目标数据类型 变量=(目标数据类型)数据;”。下面给出例子:

1、定义两个字节数据类型a、b、c,分别赋予1和2和a+b的值,进行加法运算的式子a+b=3,得出的结果“3”将会被编译环境判定为整形数据,把这个整形数据赋值给c,系统将会报错,这样就需要用到格式为“目标数据类型 变量=(目标数据类型)数据;”的强制转换语句。

2、根据强制转换语句的格式,易得“bytec=(byte)(a+b)”;

3、这样就把整形数据的“3”赋值给字节数据类型的c了,其中完成数据的强制类型转换。

扩展资料:

基本类型转换原则:

1、类型转换主要在在 赋值、方法调用、算术运算 三种情况下发生。

a、赋值和方法调用转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:

(1)布尔型和其它基本数据类型之间不能相互转换;

(2)byte型可以转换为short、int、、long、float和double;

(3)short可转换为int、long、float和double;

(4)char可转换为int、long、float和double;

(5)int可转换为long、float和double;

(6)long可转换为float和double;

(7)float可转换为double;

b、算术运算中的类型转换:

1、基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型;

2、byteshortchar运算会转换为Int;

(1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。

(2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。

(3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。

(4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。

特殊:

(1)如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。

(2) 当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char类型不发生改变;

参考资料:百度百科-java关键字

if(null != n ){} 就行了。

n都为null 也,你还让它n.toString?肯定报错.

在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。

常用的方法有Object.toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。

方法1:采用 Object.toString()方法

请看下面的例子:

Object object = getObject()

System.out.println(object.toString())注1

在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),所以对任何严格意义上的java对象都可以调用此方法。但在使用时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,通常派生类会覆盖Object里的toString()方法。

方法2:采用类型转换(String)object方法

这是标准的类型转换,将object转成String类型的值。使用这种方法时,需要注意的是类型必须能转成String类型。因此最好用instanceof做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别小心的是因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。这时要格外小心。如:

Object obj = new Integer(100)

String strVal = (String)obj

在运行时将会出错,因为将Integer类型强制转换为String类型,无法通过。但是,

Integer obj = new Integer(100)

String strVal = (String)obj

如上格式代码,将会报语法错误。

此外,因null值可以强制转换为任何java类类型,(String)null也是合法的。

方法3:采用String.valueOf(Object)

String.valueOf(Object)的基础是Object.toString()。

java的数据类型是强类型 意思就是要求每一个变量或常量都要有明确的数据类型(比如基本类型的int char byte..或其他自己定义的类型)

所以java编译器在编译时都会对每一个变量或常量进行检查,相同的数据类型才能进行一些操作

比如说

//i为整形

int i = 0

//c为char类型

char c = '1'

这个时候对i和c做相加操作,就会抛出异常

所以要先对c做类型转化,将其转化为int类型(方法:int(c))

不过 如果c = 'x'(里面的不是数字)就无法转换了

上面说的是最基本的,其他的学习再深入一点就会了解到了

具体各种类型的转换方法搜下java类型转换应该可以找到很多

希望以上可以帮到你理解