java类型转换
一.java的类型转换:
首先先了解java的基本数据类型:
我们知道java提供了八种基本数据类型,分别是:四个整数型(byte,short,int,long),两个浮点型(double,float),一种字符类型(char),以及一种布尔型(boolean)。类型表示范围如下:
byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1,直接赋值时必须在数字后加上l或L。
float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
boolean:只有true和false两个取值。
char:16位,存储Unicode码,用单引号赋值。
其次 ,java的类型转换该如何实现?
1)强制类型转换
即强行将类型范围大的变量、数据赋值给类型范围小的类型。只有当两种数据类型不兼容,或目标类型的取值范围小于源类型时,这时就需要进行强制类型转换。
例题:
描述:
设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型
输入描述:
输出描述:
import java.util.Scanner; public class Main { //write your code here...... int i = (int)d; return i; } } |
表达:数据类型 变量2 = (数据类型)变量1、数据;
强制类型转换会带来哪些问题?
1.可能会造成数据丢失;
2.上述例题中,将浮点型强转成整形,直接丢掉小数部分,保留整数部分返回,数据的精确度不一致,例如输入12.65,输出为12;
二)自动类型转换
即:数字表示范围小的数据类型可以自动转换成范围大的数据类型,且两种数据类型兼容的情况下,就会发生自动类型转换。
范围:byte,short,char→int→long→float→double;(从低级类型数据转换成高级类型数据)
其中char 类型比较特殊,char 自动转换成 int、long、float 和 double,但 byte 和 short 不能自动转换为 char,而且 char 也不能自动转换为 byte 或 short。
例如:类型一:低级变量可以直接转换为高级变量,下列语句可在java直接通过
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
类型2:若char型向高级类型(整型)转换时,会转换为对应ASCII码值
char c='c';
int i=c;
System.out.println("输出:"+i);
结果是:输出:99;
注意:byte,short,char三种类型而言,他们是平级的,不能相互自动转换,需使用强制类型转换。
三)包装类过渡类型转换
包装类,就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上就可以看出它们分别对应于 boolean、char、int、long、float和double。
对比之前两种简单数据类型转换,包装类过度类型转换属于高级数据类型转换,即先声明一个变量,然后生成一个对应的包装类,利用包装类的各种方法进行类型转换。
例:
当把float型转换为double型时:
float f1=100.00f; Float F1=new Float(f1); double d1=F1.doubleValue();//F1.doubleValue()为Float类的返回double值型的方法 |
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)
而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix