zoukankan      html  css  js  c++  java
  • Java 基础语法(2)- 基础数据类型

    前言

    直接搬别人的笔记了,只做排版梳理,可能会加一点自己见解

    Java的数据类型

    • 基础数据类型
    • 引用类型:除了基础数据类型剩下都是引用类型

    Java 中的几种基本数据类型是什么?

    Java 中有 8 种基本数据类型

    • 6 种数字类型 :byteshortintlongfloatdouble
    • 1 种字符类型:char
    • 1 种布尔型:boolean

    位(bit)

    是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数

    字节(byte)

    • 是计算机中 数据处理 的基本单位,习惯上用大写B来表示
    • 1Byte(字节) = 8bit(位)
    • 1bit 表示1位
    • 1024B = 1KB
    • 1024KB = 1M
    • 1024M = 1G

    字符

    是指计算机中使用的字母、数字、字和符号

    各自占用多少字节呢?

    这 8 种基本数据类型的默认值以及所占空间的大小如下:

    基本类型位数字节默认值
    int 32 4 0
    short 16 2 0
    long 64 8 0L
    byte 8 1 0
    char 16 2 'u0000'
    float 32 4 0f
    double 64 8 0d
    boolean 1   false

    另外,对于 boolean,官方文档未明确定义,它依赖于 JVM 厂商的具体实现。逻辑上理解是占用 1 位,但是实际中会考虑计算机高效存储因素

    基础类型注意点

    1. Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析
    2.  char a = 'h'  char 用单引号, String a = "hello" String 用双引号
    3. String 不是基础数据类型,是引用类型

    整型中 byte、short、int、long 的取值范围

    • byte:byte用 1 个字节来存储,范围为 -128(-2^7) 到 127(2^7-1),在变量初始化的时候,byte 类型的默认值为 0
    • short:short用 2 个字节存储,范围为-32,768 (-2^15) 到 32,767 (2^15-1),在变量初始化的时候,short 类型的默认值为 0,一般情况下,因为Java本身转型的原因,可以直接写为 0
    • int:int用 4 个字节存储,范围为-2,147,483,648 (-2^31) 到 2,147,483,647 (2^31-1),在变量初始化的时候,int 类型的默认值为 0
    • long:long用 8 个字节存储,范围为-9,223,372,036,854,775,808 (-2^63) 到 9,223,372,036, 854,775,807 (2^63-1),在变量初始化的时候,long类型的默认值为 0L 或 0l,也可直接写为 0

    类型转换

    由于 Java 是强类型语言,所有需要有些运算的时候的,需要用到类型转换。

    低 --------------------------------------->高

    byte, short, char -> int -> long -> float -> double

    ​ (小数的优先级高于整数)

    • 运算中,不同类型的数据先转换为同一类型,然后进行运算
    • 强制类型转换,优先级 高 转 低
    • 这个后面专门的文章来讲解

      

    自动类型转换

    由低到高直接输入,无需强制转换

    转换注意

    • 不能对布尔值进行转换
    • 不能把对象类型转换为不相干的类型
    • 在把高容量转换到低容量的时候,需要强制转换
    • 转换的时候可能存在内存溢出,或者精度问题!

    各自的对应的包装类是什么?

    基本类型包装类型
    int Integer
    short Short
    long Long
    byte Byte
    char Character
    float Float
    double Double
    boolean Boolean

     

    基础类型和包装类型注意点

    • 包装类型不赋值就是 Null 
    • 而基本类型有默认值所以不是 Null

    单精度、双精度

    • 单精度浮点数(float)在计算机存储器中占用 4 个字节(32 bits),利用“浮点”(浮动小数点)的方法,可以表示一个范围很大的数值
    • 比起单精度浮点数,双精度浮点数(double)使用 64 位(8字节) 来存储一个浮点数

    浮点数拓展

    • float; double 不够准确
    • 实际过程中浮点数无限且离散的,但是float是有限的,他会自动舍入误差,大约接近,但不等于
    • 银行等准确的计算工具最好使用BigDecimal 数学工具类

    精确的对账最好完全避免使用浮点数进行比较

    精确的对账最好完全避免使用浮点数进行比较

    精确的对账最好完全避免使用浮点数进行比较

  • 相关阅读:
    linux会话浅析
    linux memory lock浅析
    浅谈动态库符号的私有化与全局化
    LINUX内核内存屏障
    linux内存屏障浅析
    linux内核mem_cgroup浅析
    记一个linux内核内存提权问题
    linux内核cfs浅析
    linux内核tmpfs/shmem浅析
    linux IPv4报文处理浅析
  • 原文地址:https://www.cnblogs.com/poloyy/p/14964114.html
Copyright © 2011-2022 走看看