您的位置:

java中类型转换那种性能最优(java中各种类型之间的转换)

本文目录一览:

java中如何进行安全的类型转换

java中类型转换有自动转化跟强制类型转换;打个比方就是:int转double类型是自动转化,

而double转化成int是强制类型转化;(注意强制类型转化会造成数据丢失)

以下是大概类型转化:

byte-short-int-long-double

char-int -long-double

char-int -float-double

long-float

Java强制数据类型转换

规则可不少,挺乱的其实:

强制数据类型转换: int nowC = (int)c;

还可以这样,使用intValue方法,返回一个int值:

Double d = 5 / 9.0 * (f - 32);

int nowC = d.intValue();

Double类是基本数据类型double所对应的包装类。

基本数据类型转换的规则:

Java中基本数据类型共有8种,其中boolean类型不能转换为其它类型,其它类型也不能转换为boolean型

除了boolean类型,还有7种,按照它们的容量(也就是表数范围,就是能表示的数的大小范围,比如char是0——65535)的大小,从小到大,排序依次为:

byte short char int long float double

1.容量小的向容量大的转换,可以自动转换,比如可以直接将一个int类型赋值给double:

double d = 34;

2.容量大的向容量小的转换,必须强制类型转换,就是你上面的那种形式,比如:

double c = 5/9.0 *(f - 32);

int nowC = (int)c;

3.整数类型常量默认为int类型,比如17

4.浮点类型常量默认为double类型,比如3.14

5.在多种数据类型混合运算时,容量小的自动转换为整个表达式中容量最大的,然后再进行计算,比如:

int i = 9; float f = 4f; double d = 3.14; double dd = i+f+d;

此时,i和f都各自先转换成double,在进行+运算。

6.在多种数据类型混合运算时,byte short char 3者不会互相转换,他们各自转换为int再进行计算

7.在有些时候,容量小的会自动提升为容量大的,比如方法重载传参数时候,

但是byte 和 short 不会自动提升为char,其它类型按照我上面所述的顺序提升。

差不多就这些,不明白补充,另外需要注意的是强转虽然编译没问题,但是运行时,有可能会数据溢出,损失精度

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语言数据类型转换有什么特点?

Java数据类型的转换原则

从低精度向高精度转换

byte 、short、int、long、float、double、char

注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换

基本类型向类类型转换

正向转换:通过类包装器来new出一个新的类类型的变量

Integer a= new Integer(2);

反向转换:通过类包装器来转换

int b=a.intValue();

类类型向字符串转换

正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可

反向转换:通过类包装器new出一个新的类类型的变量

eg1: int i=Integer.valueOf(“123”).intValue()

说明:上例是将一个字符串转化成一个Integer对象,然后再调用这个对象的intValue()方法返回其对应的int数值。

eg2: float f=Float.valueOf(“123”).floatValue()

说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。

eg3: boolean b=Boolean.valueOf(“123”).booleanValue()

说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。

eg4:double d=Double.valueOf(“123”).doubleValue()

说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。

eg5: long l=Long.valueOf(“123”).longValue()

说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。

eg6: char=Character.valueOf(“123”).charValue()

说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。

基本类型向字符串的转换

正向转换:

如:int a=12;

String b;b=a+””;

反向转换:

通过类包装器

eg1:int i=Integer.parseInt(“123”)

说明:此方法只能适用于字符串转化成整型变量

eg2: float f=Float.valueOf(“123”).floatValue()

说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。

eg3: boolean b=Boolean.valueOf(“123”).booleanValue()

说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。

eg4:double d=Double.valueOf(“123”).doubleValue()

说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。

eg5: long l=Long.valueOf(“123”).longValue()

说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。

eg6: char=Character.valueOf(“123”).charValue()

说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。

Java数据类型自动转换的优先顺序

楼主你好: 转换原则:从低精度向高精度转换byte 、short、int、long、float、double、char

注:两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换

基本类型有以下四种:int 长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、

float 长度数据类型有:单精度(32bits float)、双精度(64bits double)

boolean 类型变量的取值有:ture、false 。1字节(8位)

char数据类型有:unicode字符,16位

对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long

java 强制转换类型有性能开销吗?

1、java强制转换类型,对性能没有什么影响。

2、尽量不要使用强制转换。

3、手机上的java ide,你用过吗?随时随地写java,无需安装任何操作环境,简单,直接,一切就是这么容易。快来造吧。。

4、学java,用java,都少不了i码邦,10月10日国内Android和ios已经全部上线,欢迎下载。国际版即将上线,届时你将和全球程序员共享一个社区。