持续总结中!2024年面试必问 100 道 Java基础面试题(十八)

上一篇地址:持续总结中!2024年面试必问 100 道 Java基础面试题(十七)-CSDN博客

三十五、什么是包装类型?有什么用?

什么是包装类型?

在Java中,包装类型是指那些用于封装基本数据类型的类。Java为每个基本数据类型提供了对应的包装类型:

  • boolean - Boolean
  • byte - Byte
  • short - Short
  • int - Integer
  • long - Long
  • float - Float
  • double - Double
  • char - Character

包装类型的用途

  1. 对象实例: 基本数据类型是不可变的,并且不是对象。包装类型允许基本数据类型拥有对象的属性,例如可以为它们设置方法和属性。

  2. 集合框架: Java的集合框架(如ArrayListHashMap等)只能接受对象作为元素。包装类型允许基本数据类型作为集合的元素。

  3. 自动装箱与拆箱: Java 5引入了自动装箱(Autoboxing)和自动拆箱(Unboxing)特性,允许在基本数据类型和相应的包装类型之间无缝转换。

    Integer refInt = 5; // 自动装箱,基本类型int转换为Integer对象
    int num = refInt;   // 自动拆箱,Integer对象转换为基本类型int
  4. 使用类特有的方法: 包装类型提供了一些有用的方法,例如IntegertoString()parseInt()valueOf()等。

  5. 资源管理: 在需要对象而不是原始类型的地方,如try-with-resources语句,包装类型非常有用。

  6. 泛型和注解: 泛型和注解通常需要对象类型,包装类型在这些情况下可以满足要求。

  7. 枚举和正则表达式: 枚举类型和正则表达式等特性只能与对象一起使用,包装类型在这些情况下非常有用。

  8. 分布式对象: 在分布式系统中,基本数据类型不能直接在网络上传输,需要使用它们对应的包装类型。

示例代码

public class WrapperExample {public static void main(String[] args) {Integer integerObject = 100; // 自动装箱int primitiveInt = integerObject; // 自动拆箱List<Integer> intList = new ArrayList<>();intList.add(1);intList.add(2);intList.add(3);for (Integer num : intList) {System.out.println(num); // 输出集合中的每个Integer对象}}
}

在这个示例中,Integerint的基本数据类型对应的包装类型。示例展示了自动装箱和自动拆箱的过程,以及如何将包装类型对象放入集合中。

总结来说,包装类型在Java中非常有用,它们允许基本数据类型在需要对象的地方使用,同时提供了额外的方法和属性,增强了基本数据类型的功能。

三十六、什么是自动装厢、拆厢?

自动装箱(Autoboxing)

自动装箱是Java 5引入的一个特性,它允许将基本数据类型自动转换为对应的包装类类型。这意味着在需要对象的地方,可以直接使用基本数据类型的值,编译器会自动将这个值包装成对应的包装类对象。

例如:

Integer integerObject = 100; // 基本类型int自动装箱为Integer对象

在这个例子中,int类型的值100被自动装箱为Integer对象。

自动拆箱(Unboxing)

自动拆箱是自动装箱的逆过程,它允许将包装类类型的对象自动转换为对应的基本数据类型。这在使用对象的地方,需要基本数据类型值时非常有用。

例如:

int primitiveInt = integerObject; // Integer对象自动拆箱为基本类型int

在这个例子中,Integer对象被自动拆箱为int类型的值。

自动装箱和拆箱的用途

  • 简化代码:在集合框架、泛型、注解等需要对象的地方,自动装箱和拆箱简化了代码编写。
  • 类型转换:允许在基本数据类型和对象之间无缝转换,增强了代码的灵活性。

注意事项

  • 性能:虽然自动装箱和拆箱简化了代码,但过度使用可能会影响性能,因为它们涉及到对象的创建和垃圾收集。
  • null安全性:基本数据类型不能为null,但包装类对象可以。在自动拆箱时,如果尝试将一个null对象拆箱为基本数据类型,会抛出NullPointerException

示例代码

public class BoxingUnboxingExample {public static void main(String[] args) {// 自动装箱Integer integerWrapper = 123;Double doubleWrapper = 4.56;// 自动拆箱int intPrimitive = integerWrapper;double doublePrimitive = doubleWrapper;System.out.println("Integer wrapper to primitive: " + intPrimitive);System.out.println("Double wrapper to primitive: " + doublePrimitive);}
}

在这个示例中,1234.56是基本数据类型的值,它们被自动装箱为IntegerDouble对象。然后,这些包装类对象被自动拆箱为基本数据类型的变量。

总结来说,自动装箱和拆箱是Java中提高代码可读性和简化类型转换的有用特性,但在性能敏感的应用中应该谨慎使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zookeeper集群部署和单机部署

Zookeeper集群部署和单机部署 Zookeeper单机部署 cd /data/softwarewget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gztar -zxvf zookeeper-3.4.12.tar.gz mv zookeeper-3.4.12 /data/apps/zookeeper-3.4.12cd /data/apps/zookeeper…

nginx--安装

yum安装 官方包链接&#xff1a;nginx: Linux packages 官方yum源链接&#xff1a;nginx: Linux packages 配置yum源 [rootlocalhost ~]# yum install -y nginx [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gp…

为什么 GPU 适用于 AI 卷积计算 cnn GPU 线程分级 计算强度 FP32 和 FP64

为什么 GPU 适用于 AI 为什么 GPU 适用于 AI 计算或者为什么 AI 训练需要使用 GPU,而不是使用 CPU 呢?本节内容主要探究 GPU AI 编程的本质,首先回顾卷积计算是如何实现的,然后探究 GPU 的线程分级,分析 AI 的计算模式和线程之间的关系,最后讨论矩阵乘计算如何使用 GPU …

零基础HTML教程(31)--HTML5多媒体

文章目录 1. 背景2. audio音频3. video视频4. audio与video常用属性5. 小结 1. 背景 在H5之前&#xff0c;我们要在网页上播放音频、视频&#xff0c;需要借助第三方插件。 这些插件里面最火的就是Flash了&#xff0c;使用它有几个问题&#xff1a; 首先要单独安装Flash&…

竞争分析:波特五力模型

波特五力模型是分析企业竞争环境的一个分析模型。 根据波特的观点&#xff0c;每家企业都受到“直接竞争对手、顾客、供应商、潜在新进公司和替代性产品”这五个“竞争作用力”的影响。 我们用波特五力模型试着分析下实体书店竞争是否激励。 直接竞争对手&#xff1a;如果直接…

01.Kafka简介与基本概念介绍

1 Kafka 简介 Kafka 是最初由 Linkedin公司开发&#xff0c;是一个分布式、支持分区(partition)的、多副本(replica)的&#xff0c;基于 Zookeeper 协调的分布式消息系统&#xff0c;它的最大的特性就是可以实时的处理大量数据以满足各种需求场景&#xff1a;比如基于 hadoop 的…

Spring AOP详解,简单Demo

目录 一、Spring AOP 是什么&#xff1f; 二、学习AOP 有什么作用&#xff1f; 三、AOP 的组成 四、 Spring AOP 简单demo 一、Spring AOP 是什么&#xff1f; Spring AOP&#xff08;Aspect-Oriented Programming in Spring&#xff09;是Spring框架中的一个重要组件&…

【13】编写shell-备份mysql数据

【13】编写shell-备份mysql数据 # !/bin/bash#****************************************************** # Author : 秋天枫叶35 # Last modified : 2024-04-25 # Filename : dbbackup-sql.sh # Description : 备份mysql数据库sql语句 #***********************…

c# 构造函数 静态构造函数 内联字段(即静态字段和实例字段) 父类构造函数 父类静态构造函数 父类内联字段 执行顺序

顺序如下&#xff1a; 1.子类的内联字段 2.子类的静态构造函数 3.父类的内联字段 4.父类的静态构造函数 5.父类的构造函数 6.子类的构造函数 7.子类的方法 public class A{public static string a1"A0";static A(){Console.WriteLine("父类内联字段&#xff1a;…

基于遗传优化算法的TSP问题求解matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于遗传优化算法的TSP问题求解&#xff0c;分别对四个不同的城市坐标进行路径搜索。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 3.核心程序 ....…

LT6911GX HDMI2.1 至四端口 MIPI/LVDS,带音频 龙迅方案

1. 描述LT6911GX 是一款面向 VR / 显示应用的高性能 HDMI2.1 至 MIPI 或 LVDS 芯片。HDCP RX作为HDCP中继器的上游&#xff0c;可以与其他芯片的HDCP TX配合使用&#xff0c;实现中继器功能。对于 HDMI2.1 输入&#xff0c;LT6911GX 可配置为 3/4 通道。自适应均衡功能使其适合…

学习C语言的指针

有一阵没更新了&#xff0c;因为最近比较繁忙&#xff0c;所以更新比较慢&#xff0c;还在慢慢学习 话不多说&#xff0c;开始今天的内容&#xff0c;聊一聊C语言指针。 很多小伙伴可能会被指针这个名字吓到&#xff0c;觉得很难&#xff0c;实际上确实有点难&#xff0c;但是…

关于谷歌浏览器对于https的证书不通过校验的无法跳转的问题

谷歌浏览器对于https的证书问题会出现如下提示: 解决方法: 直接在页面输入 thisisunsafe 就能跳转了.

SpringCloud系列(21)--更换Ribbon的负载均衡模式

前言&#xff1a;在上一篇文章中我们介绍了关于Ribbon的知识点已经如果去应用Ribbon&#xff0c;而本章节内容则是关于如何去切换Ribbon的负载均衡模式。 以下是上篇文章的部分内容&#xff0c;可以再看下熟悉下&#xff0c;方便后续理解 Ribbon工作架构图 Ribbon的负载均衡模式…

Linux基本指令(3)

目录 时间相关的指令&#xff1a; 1.在显示方面&#xff0c;使用者可以设定欲显示的格式&#xff0c;格式设定为一个加好后接数个标记&#xff0c;其中常用的标记列表如下&#xff1a; 2.在设定时间方面&#xff1a; 3.时间戳&#xff1a; Cal指令&#xff1a; find指令&a…

机器学习:驱动现代交通运输革命的AI智慧引擎

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

C#中的扩展方法

C#中的扩展方法是一种非常实用的语言特性&#xff0c;它允许我们在不修改原有类定义的情况下&#xff0c;为其添加新的方法。这种机制极大地增强了代码的灵活性和可维护性&#xff0c;特别是在处理第三方库或无法直接修改源码的类时尤为有用。下面&#xff0c;我将详细阐述C#扩…

22 - Hadoop HA 高可用集群搭建、手动模式、自动模式以及HA模式集群

目录 1、HA 概述 2、HDFS-HA 集群搭建 2.1、HDFS-HA 核心问题 3、HDFS-HA 手动模式 3.1、环境准备 3.2、规划集群 3.3、配置 HDFS-HA 集群 3.4、启动 HDFS-HA 集群 4、HDFS-HA 自动模式 4.1、HDFS-HA 自动故障转移工作机制 4.2、HDFS-HA 自动故障转移的集群规划 4.…

使用CSS3 + Vue3 + js-tool-big-box工具,实现炫酷五一倒计时动效

时间过得真是飞速&#xff0c;很快又要到一年一度的五一劳动节啦&#xff0c;今年五天假&#xff0c;做好准备了吗&#xff1f;今天我们用CSS3 Vue3 一个前端工具库 js-tool-big-box来实现一个炫酷的五一倒计时动效吧。 目录 1 先制作一个CSS3样式 2 Vue3功能提前准备 3…

中科数安 | 电脑文件落地透明加密软件系统

#电脑文件加密软件# 中科数安的文件落地透明加密软件系统是一种先进的信息安全解决方案&#xff0c;旨在保护企业内部的敏感数据免受内外部威胁。 PC地址&#xff1a;www.weaem.com 该系统的特点和功能主要包括&#xff1a; 透明加密技术&#xff1a;系统自动对指定类型或目录…