
数据转换在编程里面是十分常用的,将平常可能用到的数据转换类型总结起来会在以后码代码的过程中有很大帮助。
在数据转换之前,需要明白的是基础数据类型的自动转换和强制转换。接下来就先从数据类型的容量讲起。
1、基本数据类型的容量(即表示值的范围)
ps:boolean不参与数据类型的转换,所以不讲
基本数据类型 包装类型 字节及范围
byte Byte 【-128,127】 1个字节(【-2的7次方,2的7次方-1】) 一个字节有8位
short Short 【-32768,32767】 2个字节(【-2的15次方,2的15次方-1】) 2*8-1
int Integer 【-2147483648,2147483647】 4个字节(【-2的31次方,2的31次方-1】)4*8-1
long Long 【-9223372036854774808,9223372036854774807】 8个字节 (【-2的63次方,2的63次方-1】) 8*8-1
float Float 【-3.403e38,3.403e38】4个字节
double Double 【-1.798e308,1.798e308】8个字节
char Character 2个字节
各数据类型按容量大小由小到大排列为:
(byte, short, char) ——int ——long——float——double
2、基本数据类型转换的基本原则
1)容量小的类型自动转换为容量的类型;
public class TS{ public static void main(String [] args){
byte a = 2;
int b = a;
long c = b;
float d = c;
double e = d;
System.out.println(e);
} }
结果为 。
又或者是 char c='a'; int i=c; 输出的i结果为97,即为对应的ASCII值
2)容量大的类型转换为容量小的类型时,要加强制转换符;(有可能会精度损失)
public class TS{ public static void main(String [] args){
double e = 2.123456789;
int i = (int)e;
float j = (float)e;
System.out.println(i);
System.out.println(j);
} }
运行结果为,出现了精度的损失。
3)byte,short,char之间不会自动互相转换,并且三者在计算时首先转换为int类型;
需要强制转换时可以如下操作:
short i=97 ;
char c=(char)i;
System.out.println("output:"+c);输出:output:a;
4)实数常量默认为double类型, 整数常量默认为int类型;
ps:当有表达式时(计算),有以下规则使得数据类型自动提升:
①所有的byte,short,char型的值将被提升为int型;
②如果有一个操作数是long型,计算结果是long型;
③如果有一个操作数是float型,计算结果是float型;
④如果有一个操作数是double型,计算结果是double型;
3、引用数据类型(String)的转换
1)将其他数据类型转换为字符串


