• 包装类


     Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。

    Integer 是int的包装类,

    1.intValue()是java.lang.Number类的方法,Number是一个抽象类。Java中所有的数值类都继承它。也就是说,不单是Integer有intValue方法,Double,Long等都有此方法。 


    2.此方法的意思是:输出int数据。每个数值类中具体的实现是不同的。例如: 
    Float类和Double类的intValue方法,就是丢掉了小数位,而Long的intValue方法又不一样的

    Integer i = new Integer(100);

    int b =i.intValue();

    意思是 以 int 类型返回该 Integer 的值

    String s = “123”;

    int n = Integer.parseInt(s);

    根据字符串去获取int类型的值

     int m = 20;

    String s = Integer.toString(m);

    根据int 获取string值

     int m = 12;

    Integer in = m;

     //Integer类型会自动转换为int类型

    自动装箱和拆箱

    自动装箱 即自动将基本数据类型转化为对应的封装类型。成为一个对象以后就可以调用对象所声明的所有的方法

    //声明一个Integer对象

    Integer num = 10;
    //以上的声明就是用到了自动的装箱:解析为
    Integer num = new Integer(10);

    自动拆箱:故名思议就是将对象重新转化为基本数据类型:
    //装箱
    Integer num = 10;
    //拆箱
    int num1 = num;
     Integer num1 = 297;   Integer num2 = 297;           
      System.out.println("num1==num2: "+(num1==num2));                    
      // 在-128~127 之内的数 
       Integer num3 = 97;   Integer num4 = 97;   
       System.out.println("num3==num4: "+(num3==num4)); 

    打印的结果是:num1==num2: false    num3==num4: true 

    java对于Integer与int的自动装箱与拆箱的设计,是一种模式:叫享元模式(flyweight)

    为了加大对简单数字的重利用,java定义:在自动装箱时对于值从–128到127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,始终只存在一个对象

    而如果超过了从–128到127之间的值,被装箱后的Integer对象并不会被重用,即相当于每次装箱时都新建一个 Integer对象;

    以上的现象是由于使用了自动装箱所引起的,如果你没有使用自动装箱,而是跟一般类一样,用new来进行实例化,就会每次new就都一个新的对象;

    这个的自动装箱拆箱不仅在基本数据类型中有应用,在String类中也有应用,比如我们经常声明一个String对象时:

    String str = "sl";
    //代替下面的声明方式
    String str = new String("sl");
  • 相关阅读:
    ansible api调用详解
    多线程使用不当导致的 OOM
    常用Excel工具小结
    lazarus 检测内存泄漏
    用lazarus创建linux的菜单、桌面快捷方式及文件关联
    tkinter窗口程序设计
    vim 从嫌弃到依赖(23)——最后的闲扯
    vim 从嫌弃到依赖(22)——自动补全
    从零开始匹配vim(0)——vimscript 简介
    vim 从嫌弃到依赖(21)——跨文件搜索
  • 原文地址:https://www.cnblogs.com/zjf6666/p/7080572.html
Copyright © 2020-2023  润新知