zoukankan      html  css  js  c++  java
  • java--数据类型

    Java 是一种强类型语言。 这就意味着必须为每一个变量声明一种类型。

    在 Java 中, 一共有 8 种基本类型(primitive type), 其中有 4 种整型、 2 种浮点类型、 1 种用于表示 Unicode 编码的字符单元的字符类型 char 和 1 种用于表示真值的 boolean类型。

    注释: Java 有一个能够表示任意精度的算术包, 通常称为“大数值”(big number)。 虽然被称为大数值, 但它并不是一种新的 Java 类型, 而是一个 Java 对象。

    整型

    整型用于表示没有小数部分的数值, 它允许是负数。Java 提供了 4 种整型,如下表:

    类型
    存储需求
    取值范围
    byte
    1字节
    - 128 ~ 127
    short
    2字节
    - 32 768 ~ 32 767
    int
    4字节
    - 2 147 483 648 ~ 2 147 483 647(正好超过 20 亿)
    long
    8字节
    - 9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807

    在 Java 中, 整型的范围与运行 Java 代码的机器无关。(可移植性)

    在 Java 中, 所有的数值类型所占据的字节数量与平台无关。

    注意, Java 没有任何无符号类型(unsigned)。

    浮点类型

    浮点类型用于表示有小数部分的数值。 在 Java 中有两种浮点类型,如下表:

    类型
    存储需求
    取值范围
    float
    4字节
    大约 ±3.402 823 47E + 38F(有效位数为 6 ~ 7 位)
    double
    8字节
    大约 ±1.797 693 134 862 315 70E + 308(有效位数为 15 位)

    double 表示这种类型的数值精度是 float 类型的两倍(也称为双精度数值)。

    float 类型的数值有一个后缀 F(例如, 3.14F)。 没有后缀 F 的浮点数值(如 3.14) 默认为double 类型。 当然, 也可以在浮点数值后面添加后缀 D(例如, 3.14D)。

    下面是用于表示溢出和出错情况的三个特殊的浮点数值:

    正无穷大  Double.POSITIVE_INFINITY

    负无穷大  Double.NEGATIVE_INFINITY

    NaN(不是一个数字)  Double.NaN

    注意, 不能这样检测一个特定值是否等于 Double.NaN

    if(x==Double.NaN) // is never true

    所有“非数值” 的值都认为是不相同的。 然而, 可以使用 Double.isNaN 方法:

    if(Double.isNaN(x))

    警告: 浮点数值不适用于禁止出现舍入误差的金融计算中。 

    例如, 命令 System.out.println(2.0–1.1) 将打印出 0.8999999999999999, 而不是人们想象的 0.9。 其主要原因是浮点数值采用二进制系统表示, 而在二进制系统中无法精确的表示分数 1/10。 这就好像十进制无法精确地表示 1/3 一样。 

    如果需要在数值计算中不含有任何舍入误差, 就应该使用BigDecimal 类。

    char类型

    char 类型用于表示单个字符。 通常用来表示字符常量。

    boolean类型

    boolean(布尔) 类型有两个值: false 和 true, 用来判定逻辑条件。 整型值和布尔值之间不能进行相互转换。

    Java规范2.0里面指出boolean在内存中占1个或者4个字节。

    如果使用boolean声明一个基本类型的变量时,那么该变量占4个字节。

    如果使用boolean声明一个数组类型的时候,那么每个数组的元素占1个字节。

  • 相关阅读:
    LC.225. Implement Stack using Queues(using two queues)
    LC.232. Implement Queue using Stacks(use two stacks)
    sort numbers with two stacks(many duplicates)
    LC.154. Find Minimum in Rotated Sorted Array II
    LC.81. Search in Rotated Sorted Array II
    LC.35.Search Insert Position
    前后端分离:(一)
    Redis基本使用(一)
    GIT篇章(二)
    GIT篇章(一)
  • 原文地址:https://www.cnblogs.com/peng-zhang/p/9957779.html
Copyright © 2011-2022 走看看