java什么时间需要强转,Java中什么情况下需要强制转换
大家好,感谢邀请,今天来为大家分享一下java什么时间需要强转的问题,以及和Java中什么情况下需要强制转换的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
Java中什么情况下需要强制转换
自动转换和强制转换我知道的有两种情况:基本数据类型
和
类。
先说基本数据类型:因为java是强类型语言,由强类型向弱类型转换需要强制转换,而由弱类型向强类型转换则系统自动转换。比如:double
类型相比int类型是属于强类型,则由double类型的数据向int类型数据转换就需要强制转换,反之则自动转换。另外八大基本数据类型的强弱关系如下:byte
评论
0
0
加载更多
Java什么情况下强转型 编译不报错,运行会报错
向下强制转型——把一个父类(或祖先类)引用强制转换成一个子类(或孙类)引用,是不会发生编译错误的。
但如果这个父类(或祖先类)引用实际引用(指向)的对象,不是一个子类(或孙类)对象,运行时就会抛出异常。
举例来说,如果鸟类和狗类都是动物类的子类。
如果有一个动物类的引用a引用了一个鸟类对象,则此时将a强制转换成狗类引用,就不会报编译错误,但运行时会抛出类型转换异常。
因为a这个装动物的笼子,实际上关的是一只鸟,而需要的动物是一只狗。
Java的强制转换优先级比,优先级高吗
java中运算符:
算术运算符:+,-,*,/,%,++,--
关系运算符:>,<,>=,<=,==,!=
布尔逻辑运算符:!,&&,||
位运算符:<<,>>,>>>,&,|,^
赋值运算符=,及其扩展赋值运算符如+=,-=,*=,/=
条件运算符?:
其他:分量运算符.
下标运算符[]
实例运算符instanceof
内存分配符new
强制类型转换运算符(类型)
方法调用运算符()
运算符的运算顺序:
运算符优先级表
优先级运算符结合性
1() [].从左到右
2!+(正)-(负)~++--从右向左
3*/%从左向右
4+(加)-(减)从左向右
5<<>>>>>从左向右
6<<=>>= instanceof从左向右
7==!=从左向右
8&(按位与)从左向右
9 ^从左向右
10|从左向右
11&&从左向右
12||从左向右
13?:从右向左
14=+=-=*=/=%=&=|= ^=~=<<=>>=>>>=从右向左
--------------------------------------------------------------------------------
(Element)node1.getFirstChild()应该是从右至左运算,即先运算node1.getFirstChild(),然后再强制转换。
java 强制类型转换的规则是什么
1、执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如:int型转换成double型,char型转换成int型等等;
2、赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;
3、函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参;
4、函数有返回值时,系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。
扩展资料C++中强制类型转换函数有4个:
1、const_cast(用于去除const属性)。
2、static_cast(用于基本类型的强制转换)。
3、dynamic_cast(用于多态类型之间的类型转换)。
4、reinterpreter_cast(用于不同类型之间的指针之间的转换,最常用的就是不同类型之间函数指针的转换)。
隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中。
在赋值表达式中,如果赋值符左右两侧的操作数类型不同,则将赋值符右边操作数强制转换为赋值符左侧的类型数值后,赋值给赋值符左侧的变量。
在函数调用时,如果return后面表达式的类型与函数返回值类型不同,则在返回值时将return后面表达式的数值强制转换为函数返回值类型后,再将值返回。
参考资料百度百科-强制类型转换
关于java什么时间需要强转和Java中什么情况下需要强制转换的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。