jave类型转换
来源:互联网 发布:更改mac屏幕下面的图标 编辑:程序博客网 时间:2024/05/20 17:58
一、类型转换
1、自动类型转换
能够自动实现自动类型转换需要满足两个条件:
- 两种数据类型彼此兼容。(可以理解为同种类型的转换,比如整型之间的转换)
- 目标类型的(转化的类型)取值范围大于源类型(被转化)的取值范围。
具体的3种类型转换情况:
- 整数类型之间可以实现转换。byte类型的数值可以赋值给short、int、long类型的变量。short、char类型的数值可以赋值给int、long类型的变量。int类型的数值可以赋值给long类型的变量。
- 整数类型转换为float类型:byte、short、char、int类型的数据可以赋值给float类型的变量,注意,long类型的数值不可以赋值给float,因long类型的取值范围大于float类型。
- 其他类型转换为double类型:byte、short、char、int、long、float类型的数值可以赋值给double类型的变量。
在自动转换类型中,double类型相当于金字塔结构中的顶端,暴君王者。其他类型是他的手下,他可以任意取其他人的性命。long类型是宰相之类,一人之下万人之上。可以控制整个整型,而float类型比long的地位低下,但与double属于王脉,所以除了long这个宰相外,其他类型都是可以控制的。
注意:表达式类型自动提升的情况
变量在表达式中进行运算时,有可能发生自动类型转换。如果发生表达式类型自动转换时,需要进行强制类型转换。
注意:
2、强制类型的转换
顾名思义,是不满足自动类型的两大条件的转换。
强制类型的转换具体格式:
目标类型 变量=(目标类型)值
注意:
- 进行强制类型转换,会发生取值范围较大的数据类型想取值范围较小的类型转化,极容易造成数据的精度的丢失。
- 在使用特殊的赋值运算符(+=、-=、*=、/=、%=)进行赋值时,强制类型转换会自动完成。既不用强制类型转换具体格式。
对表达式类型自动提升的补充
1.表达式中的自动类型提升:
表达式求值时,Java自动的隐含的将每个byte、short或char操作数提升为int类型,这些类型的包装类型也是可以的。
例如:
short s1 = 1;
s1=s1+1;
s1+1运算中的操作数s1会被自动提升为int类型,s1+1运算结果会成为int类型,再赋值给short类型的s1时,编译器会报告需要强制转换类型的错误。需要改为short s1=1; s1=(short)(s1+1);结果就是short类型。
例如:
short s1 = 1;
s1 += 1;
+=是java语言中的运算符,Java编译器会对它进行自动地强制类型转换。
2.类型提升规则:
- byte、short和char类型的值都被提升为int类型;
- 如果有一个操作数是long类型,就将整个表达式提升为long类型;
- 如果有一个操作数是float类型,就将整个表达式提升为float类型;
- 如果任何一个操作数为double类型,结果将为double类型。
例如:
byte b=1;
char c=’a’;
short s=1024;
int i=50;
float f=2.0f;
double d=.123;
double result = (f * b) + (i / c) - (d * s);
f*b中,b被自动提升为float类型,该表达式结果是float类型;
i/c中,c被自动提升为int类型,该表达式结果是int类型;
d*s中,s被自动提升为doubl类型,该表达式结果是double类型;
最后,float+int-double,结果会被提升为double类型,double类型为最后结果result的类型。
- jave类型转换
- JAVE amr转换mp3
- jave
- JAVE 音频、视频转换工具(转)
- Java利用Jave转换视频格式为3gp
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 类型转换
- 设计模式之4 抽象工厂
- 安卓学习之路之数据存储方式之SharedPreferences
- 获取当前页面的完整URL方法
- JAVA实现简单四则混合运算
- m802 codec无法录音补丁
- jave类型转换
- Android 不要把android做成ios!
- 基于百度地图定位SDK实现定位
- Hibernate named query examples
- Linux写时拷贝技术(copy-on-write)
- 再来看两个包装,一个是context的包装,一个是contexttheme的包装
- android 第二更(后台判断网络状态,反馈到页面)
- NMAP 扫描端口速度快
- android 系统优化包括哪些方面