java基础知识——数据类型转换(非常全面)

1.基本数据类型转换

基本转换规则
  1. 八种基本数据类型当中出boolean类型之外剩下的其中类型之间都可以相互转换
  2. 小容量向大容量转换,称为自动类型转换。容量从小到大排序:
    byte < short < int < long < float < double
       char <

  1. 大容量转换为小容量,叫做强制类型转换,需要加强制类型转换符。例如:
float num1=123f;
int num2=(int) num1;
  1. 当整数字面值没有超过byte,short,char的取值范围,可以直接赋值类byte,short,char类型的变量
  2. byte,short,char混合运算的时候,各自先转换成int类型做运算
  3. 多种数据类型混合运算,先转换成容量最大的那种类型再做运算

基本数据类型的长度表:

基本类型字节数(byte)位数(bit)取值范围(最小值——最大值)
byte18-128(-2^7) —— 127(2^7-1)
short216-32768(-2^15)—— 32767(2^15 - 1)
int432-2^31—— 2^31 - 1
long864-2^63 —— 2^63 -1
float432单精度、32位、符合IEEE 754标准的浮点数
double864双精度、64 位、符合IEEE 754标准的浮点数
char2160——2^16-1(65,535)

2. 包装类(Wrapper Class)与基本数据类型的

基本数据类型与其相对应的包装类:

基本数据类型包装类
byteByte
booleanBoolean
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
  1. JDK1.5提供了自动装箱(autoboxing)和自动拆箱(autounboxing)功能, 从而实现了包装类和与其对应基本数据类型之间的自动转换

3. 对于特殊的“String”

  1. 基本类型变量—>String.valueof()—>字符串
  2. 字符串—WrapperClass.parseXxx(string)—>基本类型变量()
    例如:String转int:Integer.parseInt(str)

4. 对于一般子类,父类

转换规则:
子类到父类——自动转换            例:Animal cat=new Cat();
父类到子类——强制类型转换     例: Cat cat2= (Cat) cat;

验证代码:

/**
 *数据类型转换
 * 2020年6月15日22:04:35
 */
public class DataTypeConversion {
    public static void main(String[] args) {
        System.out.println("基本数据类型之间的转换");
        byte by=12;//12默认是int类型,这里使用了第四条准则
        //byte by2=10000;//错误演示,超出了byte的表示范围
        byte by3=(byte)10000;//强转会出现精度损失,造成数据出错
        float num=123;//这里代表的是自动类型转换
        float num1=123f;
        int num2=(int) num1;
        System.out.println(by);
        System.out.println(by3);
        System.out.println(num2);
        
        System.out.println("包装类与基本数据类型的转换");
        Integer i=3;//3为int型,自动装箱为Integer
        int i1=i;//自动拆箱
        System.out.println(i.getClass());
        System.out.println(i1);
        
        System.out.println("基本数据类型(包装类)与String");
        String str="10";
        System.out.println(Integer.parseInt(str));//String--->int

        String str2="true";
        System.out.println(Boolean.parseBoolean(str2));//String--->boolean

        String s = String.valueOf(by);
        System.out.println(s.getClass());//byte--->String

        String s2 = String.valueOf(true);
        System.out.println(s2);//boolean--->String
    }
}

结果截图:
在这里插入图片描述

个人总结,若是有不足之处,请与下方评论指正
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值