zoukankan      html  css  js  c++  java
  • 【Java常用类之integer包装类 22】

    一、八种基本类型对应的包装类型

    基本数据类型         包装类型(引用数据类型)

    byte           java.lang.Byte;

    short            java.lang.Short;

    int             java.lang.Integer;

    long           java.lang.Long;

    float           java.lang.Float;

    double          java.lang.Double;

    booblean         java.lang.Booblean;

    char           java.lang.Character;

    引入包装类的作用:方便编程

    自动装箱可以简单理解为:基本数据类型转换为引用数据类型

    自动拆箱可以简单理解为:引用数据类型转换为基本数据类型

    二、详细介绍integer类型

    1、Integer类在对象中包装了一个基本类型int的值,integer类在对象中包含了一个int类型的字段

    static int MAX_VALUE  : 值为 2^31-1 的常量,它表示 int 类型能够表示的最大值。
    static int MIN_VALUE:值为 -2^31 的常量,它表示 int 类型能够表示的最小值。

    ……

    2、提供了多个方法,能在int和string类型之间相互转换,还提供了处理int类型时非常有用的其他一些常量和方法

    package com.JavaStudy.wrapperInteger0623;
    
    /**
     * @Author wufq
     * @Date 2020/6/23 16:58
     */
    public class IntegerTest01 {
        public static void main(String[] args){
            //关于常量
            System.out.println("int的最大值:"+Integer.MAX_VALUE);// 2147483647
            System.out.println("int的最小值:"+Integer.MIN_VALUE);// -2147483648
    
            //构造integer类型对象
            //将int -->integer类型   包装过程(装箱)
            Integer i1 = new Integer(10);
            //integer --> int 拆箱
            int i2 = i1.intValue();
            System.out.println("i2:"+i2);
    
            //Integer(String s)构造方法:表示String参数所指示的int值,并且重写了toString方法
            Integer i3 = new Integer("123");
            System.out.println("i3:"+i3.toString());
    
            //此例可以看出构造方法String参数表示的只能是int值,如果是字符串就会报NumberFormatException异常
            Integer i4 = new Integer("中国");
            System.out.println("i4:"+i4.toString());
    
            //Integer类重写了equals方法(equals是Object类的方法,比较的是内存地址),重写以后比较的是值
            Integer i5 = new Integer(10);
            Integer i6 = new Integer(10);
    
            System.out.println(i5==i6);//false
            System.out.println(i5.equals(i6));//true
            
        }
    }

    3、JDK5.0特性(JDK1.5之后,包含1.5在内,可以进行自动装箱和拆箱)

    自动装箱:auto.boxing

    自动拆箱:auto_unboxing

    注意:自动装箱和自动拆箱属于编译期间功能,这种功能会方便程序编写,但是程序真正运行依然用的是new Integer();

    package com.JavaStudy.wrapperInteger0623;
    
    /**
     * @Author wufq
     * @Date 2020/6/23 17:26
     */
    public class IntegerTest02 {
        public static void main(String[] args){
            //JDK1.5版本之前的装箱和拆箱
            Integer i1 = new Integer(10);
            int i2 = i1.intValue();
    
            //JDK1.5版本之后的装箱和拆箱
            Integer i3 = 10;
            int i4 = i3;
    
            //自动装箱、拆箱程序真正运行仍然是new
            Integer i5 = 300;
            Integer i6 = 300;
            System.out.println(i5 == i6);//false  -->底层仍然是:Integer i5 = new Integer(300);
            System.out.println(i5.equals(i6));//true
    
            Integer i7 = 100;
            Integer i8 = 100;
            System.out.println(i7==i8);//true
            
        }
    }

    对比i5 == i6和i7==i8结果发现前者是false,后者是true    为什么会有这样不同的结果?

    原因:integer的缓存问题:integer默认的缓存区间是-128~127,但是可以手动设置缓存区间(设置vm arguments参数 -XX:AutoBoxCacheMax=2008)

    4、int、String、integer三者之间相互转换

    package com.JavaStudy.wrapperInteger0623;
    
    /**
     * @Author wufq
     * @Date 2020/6/24 09:55
     */
    public class IntegerTest03 {
        public static void main(String[] args){
            //Integer ---> String
            Integer i1 = 10;
            String s1 = i1.toString();
            System.out.println(s1);
            //String ---> Integer
            Integer i2 = Integer.valueOf("123");
            System.out.println(i2);
    
            //int ---> String
            int i3 = 10;
            String s2 = i3+"";
            //String ---> int
            int i4 = Integer.parseInt("11");
            System.out.println(i4);
    
            //int --->Integer
            Integer i5 = Integer.valueOf(10);
            //Integer ---> int
            int i6 = i5.intValue();
            System.out.println(i6);
        }
    }
  • 相关阅读:
    Java实现串口通信的小样例
    poi读写Excel
    java的list类
    java集合类
    常用正则表达式
    正则表达式
    Java获取路径中的文件名(正则表达式)
    poi读取word2003(.doc文档)中的表格
    使用poi读取word2007(.docx)中的复杂表格
    使用Maven搭建SpringMVC
  • 原文地址:https://www.cnblogs.com/frankruby/p/13186359.html
Copyright © 2011-2022 走看看