首页 > 编程语言 >关于Java中 因取消装箱可能产生 'NullPointerException' 的原因

关于Java中 因取消装箱可能产生 'NullPointerException' 的原因

时间:2024-06-30 18:53:36浏览次数:23  
标签:拆箱 Java 数据类型 自动 引用 执行 装箱 NullPointerException

一.什么是装箱,什么是拆箱?

装箱:将值类型转换为引用数据类型。

拆箱:将引用数据类型转换为值类型。

  说白了就是 Integer与int数据类型之间的转换

二.为什么会有自动一说呢?

我们都知道,java是一个面向对象的语言。因此包括数字、字符、日期、布尔值等等再内的一切都是对象。但是对于cpu来说,要处理一个对象是很费时费力的过程,同时对于内存来说,也是一个很占用内存的过程。因此为了简化这些过程,就发明了一种自动拆箱自动装箱的过程。当我们执行一些基本数据类型就能完成的操作时,java会自动将他转化为基本数据类型,这个过程也叫拆箱。执行完后又自动装箱,恢复引用数据类型。举例:

 

这段代码中,当执行到userId<=20时,也就是当执行到逻辑运算符时,java会自动拆箱转变为long类型。执行完后又自动装箱成Long。

一般的当要执行一些简单且功能单一的操作时会进行自动拆箱操作。譬如:逻辑运算 + - * /  if for while 等等。

 

那么我们就要考虑到一个问题,引用数据类型是可以为null,但 基本数据类型是不可以的,所以就会出现这类报错:空指针报错

因此在要执行一些自动装箱操作前要做一次判null操作。

 

标签:拆箱,Java,数据类型,自动,引用,执行,装箱,NullPointerException
From: https://www.cnblogs.com/y12123/p/18276805

相关文章

  • 基于java+springboot+vue实现的毕业论文管理系统(文末源码+Lw)251
    摘 要现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本毕业论文管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效......
  • 第十三站:Java蓝宝石——云计算的浩瀚天空
    Java作为一门成熟且广泛使用的编程语言,在云计算领域扮演着重要的角色。以下是对Java在云计算领域应用的详细讲解:云服务提供商的JavaSDK:AmazonWebServices(AWS):提供了AWSSDKforJava,允许开发者在Java应用程序中轻松集成AWS服务,如AmazonEC2、AmazonS3、AWSLamb......
  • pta java
    R7-1标识符命名方式转换:Camel2Snake分数10在程序设计语言中,标识符都不能包含空格。如果我们需要使用两个或两个以上的单词来命名标识符,目前的工程实际中有两种常用的命名方式:Snake方式和Camel方式。Snake方式是指单词用小写字母,单词间下划线(“_”)代替空格;Camel方式是指相......
  • Java语言助力企业实现个人信息的实名认证
    如今,人工智能发展迅速,任何经营活动,都难免会跟个人信息打交道,那么,什么是个人信息呢?有人认为,以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息。包括姓名、出生日期、身份证件号码、个人生物识别信息、住址、通信通......
  • 2024Java基础八股文(背诵版)
    Java基础八股文(背诵版)Java语言具有哪些特点?Java为纯面向对象的语言。它能够直接反应现实生活中的对象。具有平台无关性。Java利用Java虚拟机运行字节码,无论是在Windows、Linux还是MacOS等其它平台对Java程序进行编译,编译后的程序可在其它平台运行。Java为解释型......
  • JavaScript发送带附件的电子邮件
    consttransporter=nodemailer.createTransport({host:"smtp.qq.com",//SMTP服务器地址port:465,//SMTP端口,对于SSL使用465secure:true,//对端口465使用“true”,对所有其他端口使用“false”auth:{user:"发件人邮箱",//发件人邮箱pass:"......
  • Java创建List的4种方法
    1、通过构造方法,例如:List<String>list=newArrayList<>();然后调用list.add增加元素,如果知道初始化的值,这种先构造再一项项添加的方式,用起来并不爽,于是一边都用下面的方法2、通过Arrays.asList("a","b");但是这种方法构造出的List是固定长度的,如果调用add方法增加新的元素,......
  • 520.力扣每日一题6/23 Java
    博客主页:音符犹如代码系列专栏:算法练习关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞......
  • 2748.力扣每日一题6/20 Java
    题目:给你一个下标从0开始的整数数组nums。如果下标对i、j满足0≤i<j<nums.length,如果nums[i]的第一个数字和nums[j]的最后一个数字互质,则认为nums[i]和nums[j]是一组美丽下标对。返回nums中美丽下标对的总数目。对于两个整数x和y,如果......
  • Javascript高级程序设计(第四版)--学习记录之基本引用类型
    DateDate类型将日期保存为自协调世界时间1970年1月1日午夜至今所经过的毫秒数。创建日期对象letnow=newDate()Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数。lettime=newDate(Date.parse("May24,2024"));Date.now()......