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基本数据类型 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java编程long数据类型的使用问题

    在Java编程中经常遇到一些整数类型的使用问题,下面我们来看看长整形数据使用问题. 今天在写一个java线程的时候,想让线程休眠720小时候继续执行,代码如下: long runSperiod = 720 * 60 * 60 * 1000; Thread.sleep(runSperiod) 启动线程测试的时候,发现线程并没有按照预想的720小时候后执行,而是不停在执行,最后跟踪代码发现 runSperiod 的值时负数.仔细研究后发现,java在处理几个数相乘时,如果几个数都是 int 类型,那

  • Java基本数据类型与类型转换实例分析

    本文实例讲述了Java基本数据类型与类型转换.分享给大家供大家参考,具体如下: 相关内容: 基本数据类型 整型 浮点型 字符型 布尔型 数据类型转换 数组 首发时间:2017-06-22 21:18 修改时间: 2018-03-16 15:40  :修改了一下文字布局和样式,增加了"相关内容",修改了标题,增加了数组 数据类型: Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间 注意: 整数默认类型为:int,所以 1 2 3 为in

  • Java基本知识点之变量和数据类型

    Java中的变量和基本数据类型: 写完第一个java程序之后,我们对Java也有了初步的了解,现在我们再来继续认识一下Java中的基本知识点--变量和数据类型. 那么我们该怎样来认识变量和数据类型呢,在这里,我们首先来认识一下内存,我们日常生活中的计算机体系中内存主要分为内存储器和外存储器,比如说我们平常看我们电脑配置的时候,都会看到8G+256G这样的标志,其中的8G就是所说的内存储器(RAM),而256G也就是外存储器,诸如磁盘,u盘,光盘等,这里我们就不详细的研究了.我们定义的变量占用的就

  • java 各种数据类型的互相转换实例代码

    StringBuilder转化为String String str = "abcdefghijklmnopqrs"; StringBuilder stb = new StringBuilder(str); 整型数组转化为字符串 StringBuilder s = new StringBuilder(); for(i=1;i<=n;i++) { s.append(String.valueOf(a[i])); } String str = ""+s; 字符串转化为

  • java char数据类型原理解析

    这篇文章主要介绍了java char数据类型原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java中的 char 数据类型使用 Unicode 编码,占用两个字节内存. 因为Unicode 采用无符号编码,一共可以存储 0x0000 ~ 0xffff 共65536 个字符, 而 int 是有符号4个字节,刚好一半是2个字节,所以在 java 将 char 看作整数(0-65535),于是我做了一个测试: //unicode 无符号编码

  • 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) *

  • Java基础之详解HashSet的使用方法

    Java HashSet HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合. HashSet 允许有 null 值. HashSet 是无序的,即不会记录插入的顺序. HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的. 您必须在多线程访问时显式同步对 HashSet 的并发访问. HashSet 实现了 Set 接口. HashSet 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类. 添加元素 HashSet

  • java基础详解之数据类型知识点总结

    一.基本数据类型 1.1 整形 1.1.1 int int a = Integer.MAX_VALUE;//int最大值 int b = Integer.MIN_VALUE;//int最小值 在java中int占4个字节,和操作系统每任何关系.这也是java的可移植性. int 能表示的范围为-231~231-1,如果超出最大值或者小于最小值则会发生溢出. public static void main(String[] args) { int a = Integer.MAX_VALUE;//i

  • java 方法与数组基础使用详解

    目录 一.方法的使用 1.方法的定义 2.方法重载 二.数组的定义和使用 1.数组的基本概念 (1)数组的创建 (2)数组的初始化 (3)数组的遍历 2.数组是引用类型(JVM的内存分布) 3.引用变量 4.数组拷贝函数 5.二维数组的for.each遍历 一.方法的使用 1.方法的定义 java中的方法就相当于C语言中的函数 方法的语法格式 //方法的定义 修饰符  返回值类型  方法的名称([参数类型 参数]){ 方法体代码: [return 返回值]: } [注意事项] 修饰符:现阶段直接

  • java语言注解基础概念详解

    1.RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃: 2.RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期: 3.RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在: 这3个生命周期分别对应于:Java源文件(.java文件)--->.class文件--->内存中的字节码.

  • Java基础之java泛型通配符详解

    前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数. 泛型带来的好处 在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的"任意化","任意化"带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的.对于强制类型转换错误的情况,编译器可能不提示错

  • Java BigDecimal基础用法详解

    目录 一.BigDecimal概述 二.BigDecimal常用构造函数 2.1.常用构造函数 2.2.使用问题分析 三.BigDecimal常用方法详解 3.1.常用方法 3.2.BigDecimal大小比较 四.BigDecimal格式化 五.BigDecimal常见异常 5.1.除法的时候出现异常 六.BigDecimal总结 6.1.总结 6.2.工具类推荐 一.BigDecimal概述 一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Do

  • java二维数组基础知识详解

    目录 1. 查找 2. 顺序查找 3. 二分查找 4. 多维数组 4.1 二维数组 175 4.2 二维数组细节 5. 二维数组的使用方式 176 6. 二维数组的动态初始化 1.先声明:类型 数组名[][]; 再定义(开辟空间) 数组名 = new 类型[大小][大小] 2.动态初始化-列数不确定 178 7. 二维数组的静态初始化 179 8. 二维数组练习 180 8.1 int arr[][]={{4,6},{1,4,5,7},{-2}}; 遍历该二维数组,并得到和 1. 查找 1) 顺

  • 基于JS脚本语言的基础语法详解

    JS脚本语言的基础语法:输出语法  alert("警告!");  confirm("确定吗?");   prompt("请输入密码");为弱类型语言: 开始时要嵌入JS代码:<script type="text/javascript"></script>: 关于写程序是需注意的基本语法: 1.所有的字符全都是英文半角的: 2.大部分情况下每条语句结束后要加分号: 3.每一块代码结束后加换行:4.程序前呼

  • java IO 字节流详解及实例代码

    java IO 字节流详解 1.         如何理解输入输出流? 这是我当初在学习Java IO这一块很难理解的一块,输入输出流我们可必须以一个为参照物:我们以内存为参照物,凡是写入内存的我们叫输入流,从内存中写出的我们叫输出流.看下面的示例图 有了这样的一个概念对于我们再学习Java中的IO流我相信就会变得特别简单了. 2.         再看流的分类 流的分类,Java的流分类比较丰富,刚接触的人看了后会感觉很晕.流分类的方式很多: 1.按照输入的方向分,输入流和输出流,输入输出的参

随机推荐