为什么要有包装类,顺便说一说基本数据类型、包装类、String类该如何转换?

利用GPAC生成MP4文件 GPAC主要针对学生和内容创作者,代表了一个跨平台的多媒体框架,开发人员可以使用它在 LGPL 许可下制作开源媒体。GPAC多媒体框架兼容范围广泛的流行文件类型,从常见格式(如 AVI、MPEG 和 MOV)到复杂格式(如 MPEG-4 系统或 VRML/X3D)和 360 电影。 阅读详情


一、前言

  • 开门见山,首先看看八种基本数据类型对应的包装类:
基本数据类型包装类
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean

其中Character 、Boolean的父类是Object,其余的父类是Number


二、装箱和拆箱

  • 自动装箱和拆箱就是将基本数据类型和包装类之间进行自动的互相转换。JDK1.5后,Java引入了自动装箱(autoboxing)/拆箱(unboxing)。
  • 自动装箱:在JDK1.5以前,代码 Integer i = 10是错误的,必须要通过Integer i = new Integer(10)这样的语句来实现基本数据类型转换成包装类的过程;而在JDK1.5以后,Java提供了自动装箱的功能,自动装箱过程是通过调用包装类的valueOf()方法实现的,因此只需Integer i = 10这样的语句就能实现基本数据类型转换成包装类,这是因为JVM为我们执行了Integer i = Integer.valueOf(10)这样的操作。
    public void test1() {
        Integer a = 10;
        //等价于 Integer a = Integer.valueOf(10);
    }
  • 自动拆箱:每当需要一个值时,对象会自动转成基本数据类型,没必要再去显式调用intValue()、doubleValue()等转型方法。自动拆箱过程是通过调用包装类的 xxxValue()方法实现的
    public void test1() {
        int a = new Integer(10);
        //等价于int a = new Integer(10).intValue();
    }

三、空指针异常

既然知道了装箱和拆箱,那么下面的代码,我们就可以很明白的分析出来为什么会报空指针的异常了:

    public void test1() {
        Integer a = null;
        int b = a;
    }


四、转换的使用

前面已经讲解了基本数据类型以及包装类之间的相互转换,即自动装箱和拆箱;下面看看基本数据类型与String类之间的转换、String类与包装类之间的转换。

1、基本数据类型与String类之间的转换

  • 基本数据类型到String类:调用valueOf()
    public void test1() {
        int a = 3;
        String s = String.valueOf(a);
        System.out.println(s.getClass());
        //class java.lang.String
    }

  • String类到基本数据类型:调用parseXxx()
    public void test2() {
        String s = "12";
        int a = Integer.parseInt(s);
    }

2、String类与包装类之间的转换

  • String类到包装类:使用构造器
    public void test3() {
        String s = "12";
        Integer a = new Integer(s);
        System.out.println(a.getClass());
        //class java.lang.Integer
    }

  • 包装类到String类:
    public void test4() {
        Integer a = new Integer(12);
        String s = a.toString();
        String s1 = Integer.toString(a);
        System.out.println(s.getClass());
        System.out.println(s1.getClass());
        //class java.lang.String
    }
复制代码

五、经典面试题

试着写一写,看看自己会不会:

    @Test
    public void test5() {
        Integer i = new Integer(1);
        Integer j = new Integer(1);
        System.out.println(i == j);
        Integer m = 1;
        Integer n = 1;
        System.out.println(m == n);
        Integer x = 128;
        Integer y = 128;
        System.out.println(x == y);
    }
复制代码

输出结果:false、true、false


六、总结

用一张图片来收尾~

OTG原理讲解 摘要:USB OTG(On-The-Go)是USB 2.0的重要功能,允许设备在主机和从机间动态切换,实现设备间的直接通信。其核心机制是通过ID引脚电平判断角色:Micro-USB中接地为Host,悬空为Device;USB-C则通过CC引脚协商。电路设计需处理ID引脚连接和VBUS电源控制,MCU根据ID状态配置USB控制器模式。典型应用包括手机连接U盘、键盘等外设,极大扩展了移动设备的连接能力。 阅读详情

相关推荐

FUMA实战:5分钟搞定GWAS数据中的Independent SNPs和Lead SNPs筛选

本文详细介绍了如何使用FUMA平台快速筛选GWAS数据中的Independent SNPs和Lead SNPs。通过解析核心概念、分步实战演示和结果解读,帮助研究人员在5分钟内从海量显著关联位点中提炼出独立且具代表性的遗传信号,为后续功能注释和基因定位奠定高效基础。

weixin_29201859的博客 426

Java中有了基本类型为什么还需要包装类?

在Java中,基本类型(如int、float、double、char等)和引用类型(如类、数组和接口)是两种不同的数据类型。基本类型的值直接存储在内存中,而引用类型的值存储在对象中,通过引用来访问。包装类(Wrapper class)是基本类型的引用类型表示,它们为基本类型提供了对象形式的表示。综上所述,包装类使得基本类型可以用作引用类型,支持泛型、集合类和对象方法,提高了Java编程的灵活性和便利性。

weixin_72084017的博客 783

计算机视觉-全景图像拼接中的特征匹配与优化策略

本文深入探讨了计算机视觉中全景图像拼接的核心技术,重点解析了特征匹配后的关键优化策略。通过SIFT特征提取、RANSAC算法剔除误匹配,并结合APAP算法应对视差与鬼影问题,详细阐述了从基础对齐到无缝融合的完整流程,为开发者实现高质量全景拼接提供了实用指南。

weixin_29039773的博客 363

为什么java中有了基本类型为什么还要有包装类型?

Java中基本数据类型与包装类型有: 基本类型 包装器类型 boolean Boolean char Character int Integer byte Byte short Short long Long float Float double Double 为什么存在这两种类型呢? 我们都知道在Java语言中,new一个对象存储在堆里,我们通过栈中的引用来使用这些对象;但是对于经常用到...

hd12370的博客 1024

Mplus实战:随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用

本文深入探讨了随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用,通过Mplus实战演示了模型设定、结果解读及进阶建模策略。RI-CLPM能有效区分个体间差异和个体内变化,适用于追踪青少年手机使用与抑郁症状等研究。文章还提供了样本量规划、模型比较和结果可视化等实用技巧,助力研究者避免常见陷阱。

weixin_29220405的博客 372

浮点数运算的陷阱与启示:FP16加法器/乘法器开发中的常见误区

本文深入探讨FP16加法器和乘法器开发中的常见误区,包括FP16格式解析、阶码对齐陷阱、尾数运算风险及规格化处理。通过Verilog实战代码展示防御性编程技巧,帮助开发者避免边界条件处理和异常状态管理中的错误,提升硬件设计的可靠性和效率。

dell8的博客 252

Java学习提要——包装类与数据类型转换

1.基本定义方便用户的使用,专门提供了一组包装类,来包装所有的基本类型: byte(Byte)、int(Integer)、long(Long)、short(Short)、float(Float)、double(Double)、char(Character)、boolean(Boolean)、 又分为 对象型包装类(Object直接子类): Character 、Bool

临渊 598

集成calibre到cadence virtuoso环境中 load: can‘t access file - “/opt/eda/Mentor/lib/calibre.skl“

项目场景: 设想是将Calibre集成到cadence virtuoso中,但网上的解决办法尝试过在本机上实验都有点问题,因此想记录下来我的解决办法仅供参考。 问题描述: 安装好cadence, calibre之后打开virtuoso,CIW窗口显示 *Error* load: can't access file - "/opt/eda/Mentor/lib/calibre.skl" 问题是出在calibre.skl的加载路径出错,尝试网上的在工程目录下修改.cdsinit文件,添加calibre安装

weixin_52714276的博客 1万+

基本类型包装类的简单入门

第三阶段 JAVA常见对象的学习 基本类型包装类 我们提出一个需求,将520的二进制、八进制、十六进制算出来,对于这种基本类型的一些操作,包装类就可以很好地解决这些问题。 public class IntegerDemo { public static void main(String[] args) { int love = 520; //转换为二进制...

weixin_30394633的博客 108

OCCT(Open CASCADE Technology)入门-2.搭建开发环境

安装完成后,在【扩展】菜单下会看到【Qt VS Tools】菜单,打开子菜单【options】进入qt配置窗口。打开VS后随便创建一个新项目,进入开发环境主页,打开顶部菜单【扩展】->【管理扩展】打开管理扩展窗口。然后点击右下角【创建】,一路【next】即可,最后会进入到开发主界面,得到一个下面的工程结构。好了,到这里基本的环境我们已经安装好了,下面我们开始创建项目并配置开发环境。打开顶部菜单【项目】,点击最后一个菜单项【xxx属性】,进入项目配置界面。这里的配置一般不用改,我们看【Versions】

2501_91235145的博客 2876

浅谈向量检索

文章目录浅谈向量检索背景什么是向量什么是向量检索距离度量检索方法ANN的基本思路举个容易理解栗子举个正常的例子具体算法树方法KD-TreeAnnoyHash方法LSH 算法矢量量化方法乘积量化码本的建立码字搜索算法倒排乘积量化临近图方法HNSW 算法朴素想法Delaunay算法NSW 主要思想NSW构图NSW查找参考 浅谈向量检索 背景 索引一直被认为是检索引擎最重要的组成部分,之所以数据库能够快速的查询出来结果。系统设计中很多常见的多种数据结构都是为了快速命中索引设计的, 比如 红黑树、跳跃表、倒排索引、

qq_42828391的博客 6553

Java中包装类有什么用?

Java中的八种基本数据类型包括boolean、char、byte、short、int、long、float和double,分别对应包装类Boolean、Character、Byte、Short、Integer、Long、Float和Double。包装类的主要作用是将基本数据类型对象化,提供相关属性和方法。包装类存在缓存机制,如Integer在-127~128范围内会复用对象。自动装箱和拆箱是JDK1.5引入的特性,实现了基本类型与包装类型的自动转换,简化了代码编写。这些特性提高了开发效率。

m0_70325779的博客 900

天猫精灵设备拆机及系统分析

我手头的这个天猫精灵型号为TG_X1,黑色天猫精灵AI助手,拆解没有多少难度,但需要注意连接线的问题。具体的拆机过程可以参见:http://www.geekifix.com/wp/archives/415.html注意一点就是,天猫精灵的主板的位置,位于音频按键的底部,也就是顶端,而拆解是从电源的位置从低到顶进行拆机;拆机后,看到主控板的信息如下:主控型号:联发科 MT8516MT8516支持四核...

LeeKwen的专栏 3万+

Java小白一文讲清楚Java中的包装类及其与基本数据类型、String类型之间的转换

Java小白一文讲清楚Java中的包装类及其与基本数据类型、String类型之间的转换

Kerwin_D的博客 567

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

JAVA学习笔记--类型转换(父类子类 Object 基本类型 String) 拆装箱 包装类

最近一段时间忙着学习JAVA,本来net学的也不怎么好,趁着这个机会转下方向学习JAVA。 不过.NET core的开源还是有点搞头的,微软了解一下。 接下来几天我也会陆续写一些内容关于线程和集合等方面,现在让我来讲一下类型转换的内容吧。 衍生知识: 1.基本类型比较用== 而对象比较用equals 如果改写了equals 那么也要顺便改写 ha...

qq_38409944的博客 599

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Javase day07_包装类

包装类 package com.neuedu.day07; //包装类 import java.util.Scanner; import org.junit.Test; /** * boolean Boolean * byte Byte * char Character * double Double * float Float * int Integer * long Long * short Short * 在java.lang.* 包中不需要引用 */ public class

weixin_45019989的博客 202

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

一大波Java来袭(三)Java经常使用类

版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.youkuaiyun.com/lantingxv_jing/article/details/30462897 本文...

weixin_30732825的博客 150

c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast

C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换。对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式转换,我们下面就用以下这个小例子温故一下这两种用法: 1 #include <iostream> 2 #include <sstream> ...

CX的blogs 302

java对象类型有哪些_Java中常用的对象数据类型有哪些?它们分别又占多少个字节呢?...

优快云上面有关于数据类型的一篇总结详细的文章,顺便复制过来:在java中常见的数据类型有哪些 ?内置数据类型类型名称字节、位数最小值最大值默认值例子byte字节1字节,8位-128(-2^7)127(2^7-1)0byte a = 100,byte b = -50short短整型2字节,16位-32768(-2^15)32767(2^15 - 1)0short s = 1000,short r ...

weixin_36152359的博客 992

数据类型的转换

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 系列文章目录 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录

weixin_59666391的博客 1273

【C++初阶】学习string类的模拟实现

前面已经学习了string类的用法,这篇文章将更深入的学习string类,了解string类的底层是怎么实现的。当然,这里只是模拟一些常用的,不常用的可以看文档学习。

2301_77459845的博客 2765

String 类 --总结

包含目前位置博客中所有总结性的 string类 知识点

CourserLi的博客 586

Java的String类 - 那些犄角旮旯的点

不搞流水账,本文详细介绍我们日常开发中使用String类的痛点问题。 你真的了解 toString() 吗? 可能有的小伙伴看到这个问题会不屑一顾,这个玩意老子天天用! 可是,相信你一定有过被NullPointerException支配的痛苦经历,而 toString() 方法就是其中一个罪魁祸首! 我先问大家一个问题,是不是所有的Java变量都有toString呢? 如果你觉得有,请把1打在公屏上,如果没有,就打2。(话说我在干嘛,这是博客,又不是Bilibili,emmm,不过可以考虑后期..

java小白翻身 272

javascript之基本包装类型(Boolean,Number,String)基础篇

前几天整理了javascript中Array方面的知识,但是String中的一些方法多多少少和Array里的方法有些类似容易混淆,就顺便连同String所在的包装类一起整理一下,希望可以帮助到初学者,同时也算是知识的一个回顾总结。 引子:实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。 var s1='some te...

weixin_30273763的博客 148
上一篇: SSM 框架整合
下一篇: JDK1.5后增加了泛型,那么为什么要有泛型呢?我们该如何自定义泛型结构呢?
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值