zoukankan      html  css  js  c++  java
  • Java基础--int与Integer区别


    看过java相关入门开发的书籍的应该都知道,这个标题其实涉及到两个问题:

    1. java基本数据类型和引用类型
    2. 自动拆箱自动装箱

    下面就这两个问题进行一下总结复习。

    一、java基本数据类型和引用类型

    java在最初设计的时候就提供了8种基本数据类型和对应的8种引用类型。

    基本数据类型 封装类型
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    boolean Boolean
    char Character

    二、自动拆箱和自动装箱

    Integer n = 100 //编译器自动使用Integer.valueOf(int)  称为自动装箱
    int x = n //编译器自动使用 Integer.intValue() 称为自动拆箱
    

    三、两者之间区别

    • int是基本类型,Integer是引用数据类型
    • int默认值是0,Integer默认是null
    • int类型直接存储数值,Integer需要实例化对象,指向对象的地址。

    最后通过一个示例,帮助检测自己是否记住了

        public class IntTest {
    	public static void main(String[] args) {
    		int a = 1;
    		int b = 1;
    
    		Integer c = new Integer(1);
    		Integer d = new Integer(1);
    
    		Integer e = 1;
    		Integer f = 1;
    
    		Integer g = 130;
    		Integer h = 130;
    
    		Integer i = new Integer(130);
    		int j = 130;
    
    		System.out.println(a == b);
    		System.out.println(c == d);
    		System.out.println(c == a);
    		System.out.println(g == h);
    		System.out.println(i == j);
    	}
    }
    //执行结果如下
    Connected to the target VM, address: '127.0.0.1:65049', transport: 'socket'
    true
    false
    true
    false
    true
    

    小结

    1. Java核心库提供的包装类型可以把基本类型包装为class;
    2. 自动装箱和自动拆箱都是在编译期完成的(JDK>=1.5);
    3. 装箱和拆箱会影响执行效率,且拆箱时可能发生NullPointerException;
    4. 包装类型的比较必须使用equals();
    5. 包装类型提供了大量实用方法;
    6. Integer会对-128~127的值进行缓存,具体查看jdk源码;
    7. 基本类型和引用类型进行比较时会有一个自动拆箱操作。
  • 相关阅读:
    搭建armlinuxgcc交叉编译工具链环境(Android原生(JNI)开发环境搭建)
    linux vi命令详解
    Android手机在开发调试时logcat不显示输出信息的解决办法
    2012的总结和13的展望
    Gvim编码学习笔记
    vue自定义过滤器格式化时间为年、月、日、小时、分钟、刚刚 J
    学校网站群建设理念
    何为真正网站群?
    手机网站——移动互联网新趋势
    建站是浮云,We7很给力
  • 原文地址:https://www.cnblogs.com/xieshuang/p/12186349.html
Copyright © 2011-2022 走看看