Java基础之详解基本数据类型的使用

 更新时间:2021年06月30日 10:31:03   作者:NorthCastle  
今天给大家带来的是关于Java基础的相关知识,文章围绕着基本数据类型的使用展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下

一、整型

主要扩展一下不同进制的整型
二进制、八进制、十进制、十六进制
* 二进制 : 0B(数字零+B) 0b(数字零+b)
* 八进制 :0(数字零开头)
* 十进制 :正常写就是十进制
* 十六进制 : 0X (数字零+X)0x (数字零+x) A-F 代表 10-15

1.1 测试代码

 		/**
         * 进制 :
         *    二进制 : 0B(数字零+B)  0b(数字零+b)
         *    八进制 :0(数字零开头)
         *    十进制 :正常写就是十进制
         *    十六进制 : 0X (数字零+X)0x  (数字零+x)
         *                A-F 代表 10-15
         *
         */
        int i2_1 = 0b10; // 二进制的 2
        int i2_2 = 0B10;

        int i8 = 010; // 八进制的 8

        int i10 = 10; // 十进制的 10

        int i16_1 = 0X1B; // 十六进制的 16+11 = 27
        int i16_2 = 0x1B;

        System.out.println("二进制:i2_1 = "+i2_1);
        System.out.println("二进制:i2_2 = "+i2_2);
        System.out.println("八进制:i8 = "+i8);
        System.out.println("十进制:i10 = "+i10);
        System.out.println("十六进制:i16_1 = "+i16_1);
        System.out.println("十六进制:i16_2 = "+i16_2);
        

1.2 运行结果

二进制:i2_1 = 2
二进制:i2_2 = 2
八进制:i8 = 8
十进制:i10 = 10
十六进制:i16_1 = 27
十六进制:i16_2 = 27

二、浮点型

【特别注意】程序中尽量不要使用浮点型的数据进行比较,否则可能会出现非常严重的问题

   浮点数的诡异比较
      1. float 和 double 的数据不可直接进行比较 :
         float类型:有限的离散数据,舍入误差,所以不等于double同数据
       2. float 和 float 的数据比较不可直接使用 ==
     
       【结论】 : 当涉及到 浮点数的比较的时候:
                  思路一 : 做差 小于某个数
                  思路二 : 使用 大数类型 BigDecimal

2.1 测试代码(很关键)

		/**
         * 浮点数的诡异比较
         *  1. float 和 double 的数据不可直接进行比较 :
         *     float类型:有限的离散数据,舍入误差,所以不等于double同数据
         *  2. float 和 float 的数据比较不可直接使用 ==
         *
         *  【结论】 : 当涉及到 浮点数的比较的时候:
         *             思路一 : 做差 小于某个数
         *             思路二 : 使用 大数类型 BigDecimal
         */
        float f1 = 1.56f;
        double f2 = 1.56;
        System.out.println("f1 = "+f1);
        System.out.println("f2 = "+f2);
        System.out.println(" f1 是否与 f2 的值相等 :  "+(f1 == f2));

        float d1 = 1231238142342342342909f;
        float d2 = d1 +1;
        System.out.println("d1 = "+d1);
        System.out.println("d2 = "+d2);
        System.out.println("d1 是否与 d2 的值相等 : "+(d1 == d2));
        

2.2 运行结果

f1 = 1.56
f2 = 1.56
 f1 是否与 f2 的值相等 :  false
d1 = 1.2312381E21
d2 = 1.2312381E21
d1 是否与 d2 的值相等 : true

三、字符的本质是数字

字符类型的数据,本质上是一个数字
字符对应的是Unicode 编码表中数字
可以直接写 U0000 UFFFF (U后跟着的是十六进制的数)
【特殊的字符】 : 转义字符***

3.1 测试代码

   		char c1 = 'a';
        char c2 = '国';
        char c3 = '\u0065'; //  十六进制 65 对应 unicode 编码表中的 小写字母 e
        System.out.println("c1 = " +c1+" ; (int)c1 = "+(int)c1);
        System.out.println("c2 = " +c2+" ; (int)c2 = "+(int)c2);
        System.out.println("c3 = "+c3);
        

3.2 运行结果

c1 = a ; (int)c1 = 97
c2 = 国 ; (int)c2 = 22269
c3 = e

四、字符串的比较

【注意】 字符串String 不属于基本数据类型!
此处的比较主要是体会一下 值 的比较对象地址的比较

4.1 测试代码

		String s1 = new String("Hello World!");
        String s2 = new String("Hello World!");

        String s3 = "Hello World!";
        String s4 = "Hello World!";

        System.out.println("s1 是否与 s2 相等 ? : "+(s1 == s2)); // false 对象的比较
        System.out.println("s3 是否与 s4 相等 ? : "+(s3 == s4)); // true 值的比较

4.2 运行结果

s1 是否与 s2 相等 ? : false
s3 是否与 s4 相等 ? : true

到此这篇关于Java基础之详解基本数据类型的使用的文章就介绍到这了,更多相关Java基本数据类型 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java的正则表达式你知道多少

    java的正则表达式你知道多少

    这篇文章主要为大家详细介绍了java的正则表达式,使用表格进行介绍,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Java通过值查找对应的枚举的实现

    Java通过值查找对应的枚举的实现

    本文主要介绍了Java通过值查找对应的枚举的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • 关于Spring Boot对jdbc的支持问题

    关于Spring Boot对jdbc的支持问题

    这篇文章主要介绍了关于Spring Boot对jdbc的支持问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 深入探究TimSort对归并排序算法的优化及Java实现

    深入探究TimSort对归并排序算法的优化及Java实现

    这篇文章主要介绍了TimSort归并排序的优化及Java实现,TimSort 是一个归并排序做了大量优化的版本,需要的朋友可以参考下
    2016-05-05
  • Mybatis如何配置连接池

    Mybatis如何配置连接池

    本文通过实例代码给大家详细介绍了mybatis配置连接池的方法,非常不错,具有参考借鉴价值,感兴趣的朋友参考下吧
    2016-12-12
  • Java全面细致讲解Cookie与Session及kaptcha验证码的使用

    Java全面细致讲解Cookie与Session及kaptcha验证码的使用

    web开发阶段我们主要是浏览器和服务器之间来进行交互。浏览器和服务器之间的交互就像人和人之间进行交流一样,但是对于机器来说,在一次请求之间只是会携带着本次请求的数据的,但是可能多次请求之间是会有联系的,所以提供了会话机制
    2022-06-06
  • 一篇文章总结Java虚拟机内存区域模型

    一篇文章总结Java虚拟机内存区域模型

    这篇文章主要介绍了一篇文章总结Java虚拟机内存区域模型,本篇文章主要来总结一下Java虚拟机内存的各个区域,以及这些区域的作用、服务对象以及其中可能产生的问题,作为大家的面试宝典。,需要的朋友可以参考下
    2019-06-06
  • SpringMVC bean加载控制的实现分析

    SpringMVC bean加载控制的实现分析

    SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发
    2023-02-02
  • Java SoftReference类案例详解

    Java SoftReference类案例详解

    这篇文章主要介绍了Java SoftReference类案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java中几个Reference常见的作用详解

    Java中几个Reference常见的作用详解

    这篇文章主要给大家介绍了Java中关于Reference多个作用的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06

最新评论