疯狂Java笔记:3.5 基本类型转换
来源:互联网 发布:centos 安装spine 编辑:程序博客网 时间:2024/06/02 03:34
3.5.1 自动类型转换
- 定义:Java 所有数值型变量可以相互转换,若系统支持将A类型的值直接赋给B类型变量,称为自动类型转换
- 表数范围小的数值或变量直接赋值给表数范围大的变量时系统会自动类型转换,否则需要强制转换
- 任何基本类型和字符串值进行连接运算时,基本类型值自动转换为字符串类型
- byte->short->int->long->float->double
- char->int
package jwz;/** * 基本类型的自动类型转换 */public class TypeConversion{ public static void main(String[] args) { int a=6; float f=a;//int自动转换成float类型 System.out.println(a+"\t"+f); byte b=9; double d=b;//byte自动转换为double // char cc=b;//无法转换,出错->char只能和int相互转换 System.out.println(b+"\t"+d); char c='A'; double dd=c;//char转换为int,int自动转换为double System.out.println(c+"\t"+dd); // String str1=d;//double不能直接赋值给String String str=d+"_str";//与字符串连接时自动转换为字符串String System.out.println(str); // 结合顺序不同造成的类型转换结果不同 System.out.println("Hello"+3+4); System.out.println(3+4+"Hello"); System.out.println("Hello"+'a'+4); System.out.println('a'+4+"Hello"); }}
3.5.2 强制类型转换
- 例如:
int b;short a=(short) b;
- 强制类型转换可能造成溢出,从而数据丢失
- 可通过基本类型的包装类实现将字符串转换成对应基本类型
package jwz;/** * 基本类型的强制类型转换 */public class TypeConversion{ public static void main(String[] args) { int iValue=128; // 二进制表示形式:10000000 byte bValue=(byte)iValue;//int强制转换为byte,截断前8位,首位成为符号位,变成负数,该现象为溢出 System.out.println(bValue); double dValue=3.98; int dToi=(int)dValue;//double强制转换为int,取整数部分 System.out.println(dToi); }}
- 练习题目:网页随机验证码的实现
/** * 网页随机验证码的实现:生成随机字符串 */ public static void randomStr(){ String result=""; for(int i=0;i<6;i++){ // 加65转换成大写 int intValue=(int)(Math.random()*26+65); result+=(char)intValue; } System.out.println(result); }
3.5.3 表达式类型自动提升
算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升。
- 所有 byte/short/char 类型提升到 int
- 整个式子类型提升到表达式中最高等级操作数的类型。
package jwz;/** * 表达式类型自动提升 */public class AutoPromote{ public static void main(String[] args) { short sValue=5; //表达式值自动提升为int类型,int赋值给short,出错 // sValue=(sValue-2); // 通过强制类型转换即可赋值 sValue=(short)(sValue-2); //byte、short、char->int; //表达式最后结果保持表达式中最高等级类型double byte b=40; char c='a'; int i=23; double d=.314; double result=b+c+i*d; System.out.println((int)b+"\t"+(int)c+"\t"+d+"\t"+(i*d)+"\t"+result); }}
0 0
- 疯狂Java笔记:3.5 基本类型转换
- 疯狂Java之学习笔记(20)-----------类型转换
- java基本类型转换
- JAVA基本类型转换
- java基本类型转换
- Java 基本类型转换
- java基本类型转换
- 疯狂Java笔记:3.4 基本数据类型
- JAVA基本类型互相转换
- Java基本类型转换总结
- Java类型转换基本规则
- java 基本类型互相转换
- JAVA基本类型强制转换
- Java中基本类型转换
- java基础 基本类型转换
- Java中基本类型转换
- Java复习笔记(四)——Java基本类型的类型转换
- JAVA基本类型的类型转换
- 洛谷 P2085 最小函数值(minval)
- 转发到之前页面
- .NET/C# 开源资源收集
- 推荐一个好用的图片标注软件——by 蠢鱼
- IntelliJ IDEA 使用心得与常用快捷键
- 疯狂Java笔记:3.5 基本类型转换
- 文章标题
- Cocos2dx 贝塞尔曲线
- kal虚拟机统下安装open-vmware-tools
- 采药:顺推法
- 集合总结(List、Map、Set)
- Lets Encrypt
- 【Unity】 WebGL开发中的内存分配问题(分析Unity堆数据)
- mysql 5.7 linux版本安装及Navicat for mysql 远程连接