java基本数据类型之间的转换

时间:2023-02-11 17:25:09
今天要讨论的是基本数据类型之间的转换
java的数据类型分类结构如下:(下图截自百度) java基本数据类型之间的转换 java基本数据类型之间的转换
先说数值型的转换方式,分为两种 1、直接转换
先来说个例子:500毫升的矿泉水与5升的桶装水,你将矿泉水瓶里面的水倒进空的桶装水桶里面,是不是可以装下没有问题
这个就是直接转换,小容量往大容量赋值
例如 int a = 100; long b = a;
float c = 3.14f; double d = c;
2、强制转换 但是反过来,你将一整桶桶装水灌进矿泉水瓶里面,能装完不会漏?不可能吧,肯定会溢出来,因为两者之间的容量有着天壤之别。
那要怎么强制转换? 例如 long b = 10000L; int a = (int)b;
float c = 3.14f; int d = (int)c;//这个时候d为3,后面的0.14丢了
这个就是强制转换,大容量往小容量赋值,这个时候肯定是只能转一部分,也就是所谓的损失精度
要转换,必要先知道哪个大哪个小吧
byte       <short    <int (char)    <float       <long    <double 1个字节  2个字节   4个字节             4个字节    8个字节  8个字节
什么是4个字节、8个字节?就是在内存中开辟空间的大小,可以理解为容量,一个杯子就只能装300毫升水,你可以装200毫升或者100毫升,但是不可以超过300,这个就是容量限制,同理,1个int值是有最大值的,有容量限制的,超过了,只能换个容器,比如转为long
错误的例子 floatb = 1f; inta =b;
longb = 1;inta =b;
doubleb = 1;longa =b;

那么数值型与布尔型如何转换? booleana =true; doubleb =(double)a; longc =(long)a; 这个也是错误的,不能强转,因为两者不是同一个东西,不可以直接转换,只能说true是1,false是0。

字符型与数值型的转换
字符转数值:String b ="10";longc= Long.parseLong(b);intd= Integer.parseInt(b);doublef= Double.parseDouble(b);
数值转字符:inta = 10;String b = a+"";String e = String.valueOf(a);
char转string:chari ='a';Stringj = i+"";Stringk = Character.toString(i);
string转char:String l ="abcdefg";charn = l.charAt(5);//从0开始,5代表字符串中的第6个字符,即fchar[]m = l.toCharArray();//返回一个字符数组