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 数学工具类

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

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

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

  • 相关阅读:
    POJ3320 Jessica's Reading Problem
    POJ3320 Jessica's Reading Problem
    CodeForces 813B The Golden Age
    CodeForces 813B The Golden Age
    An impassioned circulation of affection CodeForces
    An impassioned circulation of affection CodeForces
    Codeforces Round #444 (Div. 2) B. Cubes for Masha
    2013=7=21 进制转换
    2013=7=15
    2013=7=14
  • 原文地址:https://www.cnblogs.com/poloyy/p/14964114.html
Copyright © 2011-2022 走看看