首页 > 编程语言 >Java拾贝第六天——包装类

Java拾贝第六天——包装类

时间:2023-10-19 21:24:33浏览次数:44  
标签:拆箱 Java 拾贝 void 数据类型 第六天 Integer main

Java拾贝不建议作为0基础学习,都是本人想到什么写什么

基本数据类型怎么变化引用数据类型(对象)

Java为每种基本类型都提供了对应的包装类型:

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

因为基本数据类型和包装类一一对应。所以Java提供了转换功能。

即自动装箱和自动拆箱。

自动装,拆箱

    public static void main(String[] args) {
        int i = 10;//声明一个基本数据类型
        Integer integer = new Integer(i);//装箱,将基本数据类型变为包装类
        int j = integer.intValue();//拆箱,将包装类变为基本数据类型
    }

上述代码为手动装拆箱
下述代码为自动装拆箱

    public static void main(String[] args) {
        Integer i = 10;
        int j = i;
    }

只是编译阶段的自动装拆箱,其目的是简化代码,运行过程Java自动完整了代码
拆箱可能会NullPointerException

注意!!!
因为是引用类型,不能拿运算符==去进行比较

    public static void main(String[] args) {
        Integer i=5000;
        Integer j=5000;
        System.out.println(i==j);
    }
//false

引用数据类型==比较的是地址值,需equals进行比较内容。

    public static void main(String[] args) {
        Integer i=5000;
        Integer j=5000;
        System.out.println(i.equals(j));
    }
//true

缓存优化
Java会把小于等于127的Integer转为int。尽管如此引用类型还是要优先使用equals比较。

    public static void main(String[] args) {
        Integer i=127;
        Integer j=127;
        Integer i1=128;
        Integer j1=128;
        System.out.println(i==j);
        System.out.println(i1==j1);
    }
/*
true
false
*/

标签:拆箱,Java,拾贝,void,数据类型,第六天,Integer,main
From: https://www.cnblogs.com/Ocraft/p/17775667.html

相关文章

  • java程序题
    指数计算问题1.有一对兔子,从出生后第3个月起每个月都生兴对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?程序分析;兔子的规律为数列1,1,2,3,5,8,13,21..... 2.水仙花数打印出所有的"水仙花数",所谓"水仙花数“是指一个三位数,其各位数......
  • Javaweb前端-cnblog
    HTML+CSS+JS+Vue+Element目录HTML+CSS+JS+Vue+Element一、基本概念二、Web服务器三、HTMLCSS3.1官方文档四、JavaScript五、Vue六、Ajax七、前端工程化八、Element一、基本概念静态web:html,css缺点:无法动态更新;无法和数据库交互伪动态:轮播图、点击特效(JavaScript)......
  • Java基础知识-cnblog
    Java基础知识目录Java基础知识第08章面向对象编程(中级部分)306~318多态第10章面向对象编程(高级部分)374~382static类变量和类方法383~385main386~391代码块392~393单例模式394~397final403~412接口413~424内部类第11章枚举和注解425~432Enum枚举433~436注解第12章异......
  • Java基础 Stream 流的终结方法
    void forEach(Consumer action)  →  遍历long count()  →  统计toArray()  →  收集流中的数据,放到数组中collect(Collector collector)  →  收集流中的数据,放到集合中  count()方法:ArrayList<String>list=newArrayLis......
  • Javaweb后端-cnblog
    Javaweb后端目录Javaweb后端MavenHTTP请求响应请求(补充)xml文件分层解耦三层架构IOC/DI入门IoC控制反转DI依赖注入MySQL事务索引分页查询MyBatis快速入门数据库连接池Lombok增删改查删除新增查询条件查询xml映射文件动态sql案例部门管理分页查询文件上传阿里云OSS配置文件参数......
  • JAVA项目常用异常处理汇总
    1.空指针异常(java.lang.nullpointerexception) 发生该情况一般是字符串变量未初始化,数组未初始化,类对象未初始化等。还有一种情况是当该对象为空时你并没有判断是否为空值,这个错误我在之前的web习题上犯过,因此为了避免这种情况,除了检查是否初始化之外,如有必要则要加上判断是......
  • Java拾贝第六天——匿名内部类
    Java拾贝不建议作为0基础学习,都是本人想到什么写什么匿名内部类匿名对象没忘吧?newPerson();//语法同匿名内部类匿名内部类就是匿名的局部内部类,地位同局部变量。有两种形式:基于接口的匿名内部类,基于类的匿名内部类基于接口的匿名内部类常规方式实现接口并重写其方法publ......
  • JAVA项目中的常用的异常处理情况
    #Java项目中常用的异常处理情况Java是一种强类型、面向对象的编程语言,它具有丰富的异常处理机制。异常处理是编写健壮、可靠和可维护的Java代码的关键组成部分。在Java项目中,处理异常的方式通常包括:##1.try-catch-finally块try-catch-finally是Java中最常见的异常处理机......
  • Java有哪些保证原子性的方法?如何保证多线程下i++ 结果正确?什么是原子操作类?
    使用循环原子类,例如AtomicInteger,实现i++原子操作使用juc包下的锁,如ReentrantLock,对i++操作加锁lock.lock()来实现原子性使用synchronized,对i++操作加锁原子操作类当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经......
  • JavaScript内置对象和DOM
    数组数组遍历/* 数组遍历的方法 1.for循环遍历数组下标输出 2.forEach遍历forEach(function(item,index,arr)) 3.filter(function(item,index,arr))返回一个新数组,回调函数返回true的结果会保存在新数组中 4.map(function(item,index,arr)) 返回一个新数组,回调函数retur......