java数据类型

本文详细介绍了Java中的数据类型,包括基本类型和引用类型,以及它们的定义方式和计数范围。讨论了强类型语言和弱类型语言的区别,并通过实例展示了二、八、十六进制的表示方法。同时,文章揭示了浮点型比较的陷阱,强调了浮点数精度问题。此外,还探讨了字符与数字的转换以及转义字符的使用。
摘要由CSDN通过智能技术生成

强类型语言

要求变量的使用要严格符合规定,所有变量都必须先定义后使用。(eg:java,c)

优点:安全性高

缺点:速度慢

弱类型语言

变量没有严格规定(eg:js)

java数据类型分为两大类

  • 基本类型
  • 引用类型

八大基本类型

分类
  • 整数:byte,short,int,long
  • 小数:float,double
  • 字符:char
  • 布尔型:boolean
定义方式:
public class Test {
    public static void main(String[] args) {
        //整数
        byte num1 = 10;
        short num2 = 20;
        int num3 = 100000000;
        long num4 = 520L;//long类型要在数字后加个L(不加也可以,加的话L必须大写)

        //小数
        float num5 = 50.1f;//float类型要在数字后加f(必须加,f可大写也可小写)
        double num6 = 3.1415926156;

        //字符
        char name = '中';
        //字符串String不是关键字,是类
        //String name1 = "中国";

        //布尔值:是非
        boolean flag = ture;
        //boolean flag = false;

    }
}
计数范围

请添加图片描述

引用数据类型

  • 接口
  • 数组

字节的概念

  • 位(bit):计算机内部数据存储的最小单元,11001100是一个八位二进制数
  • 字节(byte):计算机中数据处理的基本单位,用B表示
  • 1B=8bit
  • 字符:指计算机中使用的字母,数字,字和符号

举例:

  • 1bit表示1位
  • 1Byte表示一个字节 1B(字节)=8b(位)
  • 1024B=1KB

进制的表示方法

二,八,十六进制表示

  • 二进制:0b
  • 八进制:0
  • 十六进制:0x

代码示例

public class Test {
    public static void main(String[] args) {
        //二进制0b 八进制0 十六进制0x
        int i1 = 10;
        int i2 = 0b10;
        int i3 = 010int i4 = 0x10;
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);
    }
}

运行结果:

请添加图片描述

经典题型

浮点型的比较

public class Test {
    public static void main(String[] args) {
        double d = 1.0/10;
        float f1 = 0.1f;
        System.out.println(d==f1);
        System.out.println(d);
        System.out.println(f1);
    }
}

运行结果:

请添加图片描述

public class Test {
    public static void main(String[] args) {
        float d1 = 32121546466216456f;
        float d2 = d1 + 1;
        System.out.println(d1==d2);
    }
}

运行结果
请添加图片描述

分析结果:

  1. 1.0/10与0.1在数学上是相等的,但使用浮点类型输出进行比较值却不相等。
  2. 浮点型d1=d2+1,在数学上不相等,但输出却相等
  3. 原因是因为java中浮点类型是有限的,离散的,有舍入误差的,使得接近但不想等的数输出相等。
  4. 在进行精密运算时,最好完全避免使用浮点数进行比较,可以使用BigDecimal数学工具类

字符可以转换为数字

public class Test {
    public static void main(String[] args) {
        char c1 = 'a';
        char c2 = '中';
        System.out.println((int)c1);
        System.out.println((int)c2);
        System.out.println(c1);
        System.out.println(c2);
    }
}

运行结果请添加图片描述
结论:char本质是查找Unicode编码表,所有的字符本质还是数字,‘A’=65,‘a’=97.

转义字符

  • \t:空格
  • \n:换行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值