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

    java的数据类型分为两类:

    1.基本数据类型和引用类型

       基本数据类型分为:整型、浮点型,布尔型

       引用类型包括: 对象、接口、数组、null

    基本数据类型保存的就是变量的值,而引用类型保存的是变量的地址。

    比如:int[] a = new int[4]; 这时变量a的值是数组的地址保存在栈上,而具体的数组值保存在堆上 。所以java中没有指针的概念,对象的赋值都是传递的地址。

       

    2.基本数据类型:

    2.1 整型

    整型有byte short int long char,分别用8、16、32、64、16bits表示。有些地方可能不会把char列入整型范畴,但本质上char类型是int的一个子集。整型的宽度不应该被看成整数所占用的内存空间大小,而应当理解成定义为整型的变量或者表达式的行为。JVM可以自由使用它们希望的、任何大小的内存空间,只要类型的行为符合规范。byte short int long都是有符号的,用2的补码(two‘s-complement)表示。而char用16位表示,它是无符号的,表示的是UTF-16编码集。

    byte由1个字节8位表示。取值范围为:[-128, 127]. 

     short用16位表示,取值范围为:[- 2^15, 2^15 - 1]

    int 32 bits, [- 2^31, 2^31 - 1].

    long 64 bits, [- 2^63, 2^63 - 1,默认值为0L].

    char 16 bits, [0, 65535], [0, 2^16 -1],从'u0000'到'uffff'。无符号,默认值为'u0000'。

    public class 整型 {
       byte b;
       short s;
       int i;
       long l;
       char c;
       boolean bool;
       public static void main(String[] args){
         整型 a = new 整型();
         
         System.out.println("b = "+a.b);
         System.out.println("s = "+a.s);
         System.out.println("i = "+a.i);
         System.out.println("l = "+a.l);
         System.out.println("c = "+a.c);
         System.out.println("bool = "+a.bool);
       }
    }

    结果:

    2.2浮点型

    浮点型默认是double,5.12就是double类型

    float 32 bit表示

    double 64bit表示

    float a = 10.2f/F

    double d = 10.2(d/D)

    默认值:0.0

    ** float num=3.14;//是错误的,3.14默认double类型。

     2.3 boolean

    boolean类型只有两个值true和false,默认为false。

     3.基本数据类型之间的转换

    首先将7种类型按下面顺序排列一下:

    byte <(short=char)< int < long < float < double   (如果从小转换到大,可以自动完成,而从大到小,必须强制转换。short和char两种相同类型也必须强制转换。)

    转换分为自动转换和强制转换。对于自动转换(隐式),无需任何操作,而强制类型转换需要显式转换,即使用转换操作符(type)。首先将7种类型按下面顺序排列一下:

    4.表达式中的自动类型提升

    除了赋值以外,表达式计算过程中也可能发生一些类型转换。在表达式中,类型提升规则如下:

    》所有byte/short/char都被提升为int。

    》如果有一个操作数为long,整个表达式提升为long。float和double情况也一样。

    例如:

    short value=5;

    value = value-2;//value将自动升级到int类型,再赋值给value就会出错!value是short类型,需要强制转换。

  • 相关阅读:
    unsupported jsonb version number 123
    如何在MPlayer上支持RTSP
    TDengine 时序数据库的 ADO.Net Core 提供程序 Maikebing.EntityFrameworkCore.Taos
    如何使用IoTSharp对接ModBus?
    如何从源码启动和编译IoTSharp
    Asp.Net Core 自动适应Windows服务、Linux服务、手动启动时的内容路径的扩展方法
    MQTTnet 的Asp.Net Core 认证事件的扩展
    Asp.Net Core 中利用QuartzHostedService 实现 Quartz 注入依赖 (DI)
    The remote certificate is invalid according to the validation procedure 远程证书验证无效
    settings插拔式源码
  • 原文地址:https://www.cnblogs.com/jycboy/p/5299113.html
Copyright © 2011-2022 走看看