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

    整数类型:byte(1)   short(2)  int(4)  long(8)

    字符类型:char(2) 用单引号括起来,例如'a';   java采用 Unicode字符集。

    浮点类型:float(4)  double(8)

    布尔类型:boolean(ture ,false ),未规定其所占字节。

    具体的转换规则:byte-->short(char)-->int-->long-->float-->double, 也就是说byte类型的变量可以自动转换成short类型,short类型可以自动转换成int类型等等。

    注意:在整数之间进行类型转换时,数值不发生改变,而将整数类型(特别是大整数类型)转换成较小数类型时,由于存储方式不同,可能造成数据精度的丢失。

    强制类型转换:是从存储范围大的数据类型转换到存储范围小的数据类型。

    例如:

    double b = 30.10;

    int n = (int)b;

    System.out.println(n);

    输出30.

    short a = 10;

    a = a +10;//编译不会通过,编译器不会自动将int类型的10 转换成short类型;

    a+=10;<===>a = (short)(a+10);//不会报错

    2.引用类型:数组,枚举,类,注解等。

    3.简单类型所对应的引用类型:

    byte  -> Byte       short -> Short     int ->Integer     long ->Long      float ->Float        double ->Double    char ->Character      boolean ->Boolean

        简单类型定义的变量,存放在栈中,并且存放的都是数值,引用类型定义的变量中(new出来的对象)存放在堆中,并且存放的都是其地址。

    该程序上面输出为ture;下面输出为false。

    该程序的结果为ture.其原因是包含了intValue()方法,有一个(拆包)的过程。

    该程序输出为ture.虽然是引用类型存放的为地址,其中包含着一个处理过程Integer.valueOf()的处理(装包)过程。在该方法中存在一个对象池,存放着Integer.valueOf(-128~127)的对象,所以其地址是相同的。超出-128~127的范围,会创建新的对象。

    该程序输出为false。其为不同的两个对象,一个是在对象池中的,另一个为new的对象。

     栈内存何时创建和回收?定义该变量的时候被创建,出了函数的右括号,内存就被回收

     堆内存何时创建和回收?new后就在堆里创建了该对象的内存地址,如果么有什么引用这个地址,就靠垃圾回收机制GC来回收

    
    
    
    
  • 相关阅读:
    vue中使用 canvas给页面添加水印
    c++ get keyboard event
    sublime text c++ makefile
    dddd
    songwenxin
    wechat
    ddd
    log
    v3
    xiaoxiaole
  • 原文地址:https://www.cnblogs.com/128-cdy/p/11517605.html
Copyright © 2011-2022 走看看