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. 基本类型和引用类型进行比较时会有一个自动拆箱操作。
  • 相关阅读:
    C++运算符优先级
    UNREFERENCED_PARAMETER
    Eclipse无法查看源码 提示source not found
    JAVAWEB dbutils执行sql命令并遍历结果集时不能查到内容的原因
    JAVAWEB和数据库 Mysql连接不上的原因及解决方案
    电子设备 Kindle如何删除书籍或漫画
    JAVA StringUtils需要导入的包
    JAVAWEB servlet和jsp的权限访问控制
    JAVAWEB servlet验证登录时进行完全的非空判断防止空值登录
    JAVAWEB 遍历mysql结果集时 字段为0、false、null的问题
  • 原文地址:https://www.cnblogs.com/xieshuang/p/12186349.html
Copyright © 2011-2022 走看看