本文目录一览:
- 1、java中如何进行安全的类型转换
- 2、Java强制数据类型转换
- 3、Java的强制转换优先级比.(点号)优先级高吗
- 4、JAVA语言数据类型转换有什么特点?
- 5、Java数据类型自动转换的优先顺序
- 6、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已经全部上线,欢迎下载。国际版即将上线,届时你将和全球程序员共享一个社区。