java数据类型

数据类型

  • 强类型语言

    • 要求变量的使用严格符合规定,所有变量都必须先定义后使用

  • 弱类型语言

    • 没有严格的规定

  • Java的数据类型分为两大类

    • 基本类型

    • 引用类型

数据类型

基本数据类型

public class Demo01 {
    //八大基本数据类型
​
    //整数
    int num1 = 10;   //最常用
    byte num2 = 20;
    short num3 = 30;
    long num4 = 40L;  //Long类型要在数字后面加L
​
    //小数:浮点数
    float num5 = 50.1F;
    double num6 = 3.116927;
​
    //字符
    char num7 = '中';//代表一个字
​
    //字符串,String不是关键字,是类
    String name = "汉青";
​
    //布尔值:true和false
    boolean flag = true;
}

整数和浮点数拓展

public class Demo03 {
    public static void main(String[] args) {
        //整数拓展: 进制 -->  二进制0b 八进制0  十进制  十六进制0x
        int i = 10;
        int i2 = 010; //八进制0
        int i3 = 0x10;  //十六进制0x   0~9  A~F
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("====================================================");
        //================================================================
        //浮点数拓展:银行业务怎么表示  使用BigDecimal
        //================================================================
        //float    有限 离散 舍入误差  大约   接近但不等于
        float f = 0.1f;//0.1
        //double   最好完全避免使用浮点数进行比较
        double d = 1.0/10;//0.1
        System.out.println(f==d);//false
​
        float f1 = 2113133131f;
        float f2 = f1 + 1;
        System.out.println(f1 == f2);//true
​
    }
}

​

字符拓展

public class Demo04 {
    public static void main(String[] args) {
        //字符拓展
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1);//强制转换
        System.out.println(c2);
        System.out.println((int)c2);//强制转换
        //所有的字符本质上还是数字
        //编码   Unicode
​
        //U0000   UFFFF
        char c3 = '\u0061';
        System.out.println(c3);//a
​
        //转义字符
        //\t 制表符    \n  换行
    }
}

布尔值拓展

public class Demo05 {
    public static void main(String[] args) {
​
        //通过内存分析
        String sa = new String("Hello world");
        String sb = new String("Hello world");
        System.out.println(sa == sb);//false
​
​
        String a = "Hello world";
        String b = "Hello world";
        System.out.println(a == b);//true
​
        //布尔值拓展
        //less is more  java要精简易懂
        boolean flag = true;
        if (flag){}    //if(flag == true){}
    }
}

数据类型转换

类型转换

强制转换

将精度高的转换为精度低的

注意:会出现精度丢失的情况

自动转换

当出现精度低的要转换成精度高的时候,无需手动操作,java虚拟机会自动执行

不会出现精度丢失

public class Demo06 {
    public static void main(String[] args){
        //强制转换   (类型)变量名   高--->低
        int i = 128;
        byte b = (byte)i;
        System.out.println(i);
        System.out.println(b); //  -128  内存溢出
        //自动转换   (类型)变量名   低--->高
       /*
       注意点:
       1. 不能对布尔值进行转换
       2. 不能把对象转换为不相干的类型
       3. 在把高容量转到低容量的时候,强制转换
       4. 转换的时候可能存在内存溢出,或精度问题
        */
        System.out.println((int)23.5);//23
        System.out.println((int)-45.38f);//-45
    }
}
public class Demo07 {
    public static void main(String[] args) {
        //操作比较大的数字的时候,注意溢出问题
        //JDK7新特性,数字之间可以使用下划线来分割
        int money = 10_0000_0000;
        int year = 20;
        int total = money * year;  //-1474836480  计算的时候就出现精度溢出的问题
        long total2 = money * year;  //-1474836480  默认的是int,转换的时候已经存在问题
        long total3 = (long)money * year;//需要先把一个数转换为long类型
        System.out.println(total3);//20000000000
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值