zoukankan      html  css  js  c++  java
  • java基础之8种基本数据类型

    简单往往是最重要的,在刚刚学java的时候老师会给我们先讲这8种基本数据类型,今天再来做一个温习,【本文大部分参考了 https://zhuanlan.zhihu.com/p/25439066,在上面做了一点补充】

    • 根据java的数据类型分类

    1、整型

      byte 、short 、int 、long

    2、浮点型

      float 、 double

    3、字符型

      char

    4、布尔型

      boolean

    • 8种基本数据类型
    数据类型名称   占用字节 默认值 封装器
    byte 1 0 Byte
    short 2 0 Short
    int   4 0 Integer
    long   8 0.0l Long
    float 4 0.0f  Float
    double  8  0  Double
     char  u0000(空格) Character 
     boolean  - - Boolean 

    对于boolean布尔数据类型,在《Java虚拟机规范》一书中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。

    这样我们可以得出boolean类型占了单独使用是4个字节,在数组中又是1个字节。

    • 8种基本数据类型的取值范围

      a. 整形

        1.  byte : -128~127 (负  2 的7次方 到 2 的7次方-1)

        2.  short : -32768 ~ 32767  (负  2 的15次方 到 2 的15次方-1)

        3.  int :  -2147483648~2147483647(-2的31次方到2的31次方-1)

        4.  long: -9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)

      b. 浮点型

        float 和 double 都是表示浮点型的数据类型,它们之间的区别在于精确度的不同。

        float(单精度浮点型)取值范围:3.402823e+38~1.401298e-45(e+38 表示乘以10的38次方,而e-45 表示乘以10的负45次方)

        double(双精度浮点型)取值范围:1.797693e+308~4.9000000e-324(同上)

        double 类型比float 类型存储范围更大,精度更高。

        通常的浮点型数据在不声明的情况下都是double型的,如果要表示一个数据时float 型的,可以在数据后面加上 "F" 。

        浮点型的数据是不能完全精确的,有时候在计算时可能出现小数点最后几位出现浮动,这时正常的。

      c. 字符型

        char 有以下的初始化方式:

        char ch = 'a'; // 可以是汉字,因为是Unicode编码

        char ch = 1010; // 可以是十进制数、八进制数、十六进制数等等。

        char ch = ''; // 可以用字符编码来初始化,如:'' 表示结束符,它的ascll码是0,这句话的意思和 ch = 0 是一个意思。

        Java是用unicode 来表示字符,“中” 这个中文字符的unicode 就是两个字节。

        String.getBytes(encoding) 方法获取的是指定编码的byte数组表示。

        通常gbk / gb2312 是两个字节,utf-8 是3个字节。

      d. 布尔型

        boolean : 就俩  false 和true  ,程序员都知道~

    • 8种基本数据类型的相互转换

        将一种类型的值赋值给另一种类型是很常见的。在Java中,boolean 类型与其他7中类型的数据都不能进行转换,这一点很明确。但对于其他7种数据类型,它们之间都可以进行转换,只是可能会存在

      精度损失或其他一些变化。

        转换分为自动转换和强制转换:

        自动转换(隐式):无需任何操作。

        强制转换(显式):需使用转换操作符(type)。

        将6种数据类型按下面顺序排列一下:

        double > float > long > int > short > byte

        如果从小转换到大,那么可以直接转换,而从大到小,或char 和其他6种数据类型转换,则必须使用强制转换。

      拓展知识点

        Java是面向对象语言,其概念为一切皆为对象,但基本数据类型算是个例外哦,基本数据类型大多是面向机器底层的类型,它是 “值” 而不是一个对象,它存放于“栈”中而不是存放于“堆”中,但Java一切皆为对象的概念不是说说而已,它为每一个基本数据类型都做了相应的包装类,我们日常使用中大多情况下都会使用着这些包装类:

      boolean Boolean
      char Character
      byte Byte
      short Short
      int Integer
      long Long
      float Float
      double Double
      String(字符串)
      包装类就是一个对象,它存放于“堆”中。

     

    为了未来有更多的选择
  • 相关阅读:
    关于SQL批量插入数据方法比较
    Meta详细说明及使用方法
    【原创】自己写的用户控件的传值
    Windows 2003全面优化
    IT职位全面解析(软件类)
    NHibernate介绍
    获取到的客户端发送的文件的MIME内容类型的全部类型列
    C#如何编程方式获取计算机主板序列号
    XP下HTTP的403.9错误禁止访问:连接的用户过多如何解
    用户登录验证程序——VB.NET
  • 原文地址:https://www.cnblogs.com/zhixinSHOU/p/14697331.html
Copyright © 2011-2022 走看看