java基本数据类型及类型间相互转换

1.数据类型的分类

基本数据类型(4类8种)

  • 整数类型:byte、short、int、long(字节分别为:1 , 2 , 4 , 8)
  • 浮点型:float、double(字节分别为:4 , 8)
  • 布尔型:boolean
  • 字符型:char

引用数据类型

  • String
  • 类(class)
  • 接口(interface)
  • 数组

2.基本数据类型的范围

它们的值都已经以常量的形式定义在对应的包装类中,下面我们用代码看看

public class Type {
    public static void main(String[] args) {
        // byte
        System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
        System.out.println();

        // short
        System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
        System.out.println();

        // int
        System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
        System.out.println();

        // long
        System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
        System.out.println("包装类:java.lang.Long");
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
        System.out.println();

        // float
        System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
        System.out.println();

        // double
        System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
        System.out.println();

        // char
        System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
        // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
        System.out.println("最小值:Character.MIN_VALUE="
                + (int) Character.MIN_VALUE);
        // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
        System.out.println("最大值:Character.MAX_VALUE="
                + (int) Character.MAX_VALUE);
    }
}

运行效果
在这里插入图片描述由基本数据类型的字节,位,不难发现它们取值范围的规律:
取值范围的规律

类型字节最小范围,最大范围
byte18-2^7, 2^7-1
short216-2^15, 2^15-1
int432-2^31, 2^31-1
long864-2^63, 2^63-1
float4321.4E-45,3.4028235E38
double8644.9E-324,1.7976931348623157E308
char1160,65535

需要注意的是:
1.float和double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.4E38即为3.4x10^38,1.4E-45即为1.4x10-45.
2.boolean类型的值只有false和true

3.各类型的默认值

类型默认值
byte0
short0
int0
long0L
float0.0f
double0.0d
char‘u0000’
booleanfalse
Stringnull

代码

public class TestType {
    static byte by;
    static short sh;
    static int i;
    static long l;
    static float f;
    static double d;
    static char ch;
    static boolean bool;
    static String str;

    public static void main(String[] args) {
        System.out.println("Byte :" + by);
        System.out.println("Short :" + sh);
        System.out.println("Integer :" + i);
        System.out.println("Long :" + l);
        System.out.println("Float :" + f);
        System.out.println("Double :" + d);
        System.out.println("Character:" + ch);
        System.out.println("Bool :" + bool);
        System.out.println("String :" + str);
    }
}

运行效果
在这里插入图片描述

4.类型转换

转换规律
1.数值类型之间转换;
小到大,正常转换
大到小,强制转换
2.整数 和char之间的转换;

代码

public class Type_01 {
    //类型转换
    public static void main(String[] args) {
        /**
         * 1.同类型   :大到小 强制转换
         *              小到大  直接转换
         */
        short s=12;
        int i=13;
        //s=i;大到小转换,即将i的值赋给s这样写会报错,这时候需要强制转换,快捷键alt+回车,再回车
        s= (short) i;//快捷键后强制转换
        i=s;//小到大转换,即将s的值赋给i,直接转换
        byte b=1;
        long l=2;
        l=b;//小到大直接转换
        /**
         * 2.1不同类型   :正常型
         */
        //1. int(4个字节) float(4个字节)
        int i1=12;
        float f1=12.3f;
        //i1=f1; 大到小转换,即将f1的值赋给i1这样写会报错,这时候需要强制转换,快捷键alt+回车,再回车
        i1= (int) f1;//快捷键后强制转换
        f1=i1;//小到大转换,即将i1的值赋给f1,直接转换

        /**
         *2.2 不同类型  :非正常型
         */
        //int(4) double (8) byte  float
        //int char
        int a=97;
        char c='a';
        a=c;
        //c=a;
        c= (char) a;
        System.out.println((char)33);
    }
}

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值