• JavaSE03.Java数据类型


    03.数据类型

    1、数据类型分类

        Java是强类型语言,每个变量都必须声明其类型。Java中的数据类型分为两大类,分别是基本数据类型引用数据类型。其中,基本数据类型由Java语言定义,其数据占用内存的大小固定,在内存中存入的是值的数值本身;而引用数据类型在内存中存入的是引用数据的存放地址,并不是数据本身。

    Java的两种数据类型:

    基本数据类型:整型类型、浮点类型、字符类型、布尔类型
    
    引用数据类型:类、接口、数组
    

    2、基本数据类型

    2.1. 基本数据类型范围,如图:

    • 一个字节等于8位,位是计算机内部数据存储的最小单位

    • 布尔数据类型只有两个可能的值:true和false。 将此数据类型用于跟踪真/假条件的简单标志。 此数据类型表示一位信息,但其“大小”不是精确定义的内容。

    2.2. 基本数据类型包装类、最大值和最小值代码演示:

    public static void main(String[] args) {  
        // byte  
        System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);  
        System.out.println("包装类:java.lang.Byte");  
        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("包装类:java.lang.Short");  
        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("包装类:java.lang.Integer");  
        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("包装类:java.lang.Float");  
        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("包装类:java.lang.Double");  
        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);  
        System.out.println("包装类:java.lang.Character");  
        // 以数值形式而不是字符形式将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);  
    }  
    

    金融面试问:银行金融业务用什么类型表示?

    浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。
    如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

    3、类型转换

    3.1. 数据类型转换必须满足如下规则:

    • 不能对boolean类型进行类型转换。
    • 不能把对象类型转换成不相关类的对象。
    • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
    • 转换过程中可能导致溢出或损失精度。

    3.2. 自动类型转换:

    • 容量小的数据类型可以自动转换为容量大的数据类型。
    public static void main(String[] args){
            char c1='a';//定义一个char类型
            int i1 = c1;//char自动类型转换为int
            System.out.println("char自动类型转换为int后的值等于"+i1);
            char c2 = 'A';//定义一个char类型
            int i2 = c2+1;//char 类型和 int 类型计算
            System.out.println("char类型和int计算后的值等于"+i2);
        }
    

    3.3. 强制类型转换:

    • 强制类型转换的语法格式:(type)var,运算符“()”中的type表示将值var想要转换成的目标数据类型。
    public static void main(String[] args) {
        double PI  = 3.14;
        int nx = (int)x;   //值为3
    
        char c = 'a';
        int d = c+1;
        System.out.println(d); //98
        System.out.println((char)d);  //b
    }
    

    3.4. 转换从低级到高级:

    byte,short,char—> int —> long—> float —> double
    

  • 相关阅读:
    域名系统
    DNS域名解析过程
    服务器常用的状态码
    重绘与重排及它的性能优化
    console.time和console.timeEnd用法
    用CSS开启硬件加速来提高网站性能
    公钥和私钥
    svn conflict 冲突解决
    svn分支开发与主干合并(branch & merge)
    源生js惯性滚动与回弹效果
  • 原文地址:https://www.cnblogs.com/zhangliuping/p/11605537.html
Copyright © 2020-2023  润新知