当前位置: 首页 > news >正文

【Java】包装类【主线学习笔记】

文章目录

  • 前言
  • 包装类
  • 基本数据类型与包装类之间的转换
    • 基本数据类型转换为包装类可以通过以下几种方式:
    • 包装类转换为基本数据类型可以通过以下几种方式:
    • 初始化值不同
    • 与String之间的转换


前言

Java是一门功能强大且广泛应用的编程语言,具有跨平台性和高效的执行速度,广受开发者喜爱。在接下来的学习过程中,我将记录学习过程中的基础语法、框架和实践技巧等,分享学习心得,对自己学习过程进行整理和总结,也希望能为其他学习Java的朋友提供一些帮助和参考。


包装类

在Java中,包装类主要用于将基本数据类型转换为对象,以便可以在需要对象的情况下使用。
Java中有八种基本数据类型,每种都有对应的包装类。以下是这些基本数据类型及其对应的包装类:

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

这些包装类都位于java.lang包中,并提供了一些实用的方法和常量,用于处理基本数据类型
在这里插入图片描述

基本数据类型与包装类之间的转换

原因:在一些场景下,需要使用基本数据类型对应的包装类的对象。对于包装类来说,由于包装类是对象,无法进行±*/等运算,由此需要转换为基本数据类型进行计算。

基本数据类型转换为包装类可以通过以下几种方式:

  1. 自动装箱:Java会自动将基本数据类型转换为对应的包装类。

    int primitiveInt = 10;
    Integer wrapperInt = primitiveInt; // 自动装箱
    
  2. 使用构造函数(不推荐):虽然可以使用构造函数创建包装类对象,但从Java 9开始不推荐这样做。

    Integer wrapperInt = new Integer(10); // 不推荐
    
  3. 使用静态方法valueOf方法是推荐的方式,尤其是在创建多个相同值的对象时,可以节省内存。

    Integer wrapperInt = Integer.valueOf(10); // 推荐
    

包装类转换为基本数据类型可以通过以下几种方式:

  1. 自动拆箱:Java会自动将包装类对象转换为对应的基本数据类型。

    Integer wrapperInt = 10; // 自动装箱
    int primitiveInt = wrapperInt; // 自动拆箱
    
  2. 使用方法:可以使用包装类提供的实例方法进行拆箱。

    Integer wrapperInt = Integer.valueOf(10);
    int primitiveInt = wrapperInt.intValue(); // 使用intValue方法
    

对于不同的包装类,转换为对应的基本数据类型时使用的是相应的xxxValue()方法。

初始化值不同

基本数据类型和包装类的初始化值是不同的,包装类的默认值为 null,因为它们是对象类型。

与String之间的转换

  • 基本数据类型、包装类–>String:
    调用String的重载的静态方法valueOf(xxx)。
  • String类型–>基本数据类型、包装类:调用包装类的静态方法parseXxx()
// String转基本数据类型
String str = "100";
int stringToInt = Integer.parseInt(str);
http://www.lryc.cn/news/447868.html

相关文章:

  • 华为HarmonyOS地图服务 11 - 如何在地图上增加点注释?
  • uniapp js怎么根据map需要显示的点位,计算自适应的缩放scale
  • Mysql 架构
  • C语言 | Leetcode C语言题解之第429题N叉树的层序遍历
  • Python中列表常用方法
  • 『功能项目』下载Mongodb【81】
  • 图像特征提取-SIFT
  • ElasticSearch分页查询性能及封装实现
  • Python精选200Tips:176-180
  • 【Kotlin 集合概述】可变参数vararg、中缀函数infix以及解构声明(二十)
  • unity安装报错问题记录
  • 秋招|面试|群面|求职
  • 【Kubernetes】日志平台EFK+Logstash+Kafka【理论】
  • 基于SpringBoot+Vue+MySQL的教学资料管理系统
  • 动态规划day45:编辑距离|115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离(动规终极好题)
  • 剑指 offer 刷题集
  • C++在线开发环境搭建(WEBIDE)
  • 重磅首发!大语言模型LLM学习路线图来了!
  • neo4j关系的创建删除 图的删除
  • 【WRF运行第三期】服务器上运行WRF模型(官网案例-Hurricane Matthew)
  • 基于springboot的书店图书销售管理系统的设计与实现 (含源码+sql+视频导入教程)
  • Spring MVC 基本配置步骤 总结
  • HCIP--以太网交换安全(一)
  • PyQt5中关于QLineEdit的空输入报错的简单处理
  • 【前端】ES12:ES12新特性
  • 语音识别(非实时)
  • 【计算机网络】--URL统一资源定位符
  • 在成都建“圈”五年,鲲鹏让智能化新风吹遍巴蜀大地
  • Unity图形用户界面!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。(万字解析)
  • 【JAVA报错已解决】Java.lang.NullPointerException