java知识总结(六)包装类

原始类型包装类思维导图.mm 对于Java中原始类型的包装类的有关问题做下的思维导图,便于深化记忆,希望对你有帮助!注意:文件为.mm后缀建议下载freemind打开,免费的思维导图软件! 立即下载

原文出自java包装类,需要转载请注明出处。



一、什么是java的包装类?

java是一种面向对象语言,java中的类把方法与数据连接在一起,并构成了自包含式的处理单元.但在java中不能定义基本类型(primitive type),为了能将基本类型视为对象来处理,并能连接相关的方法,java为每个基本类型都提供了包装类。

二、java包装类常用的几种类型

Boolean,Byte,Short,Character,Integer,Long,Float,Void

三、包装类都有共同的方法

  1. 带有基本值参数并创建包装类对象的构造函数.如可以利用Integer包装类创建对象,Integer obj=new Integer(145);
  2. 带有字符串参数并创建包装类对象的构造函数.如new Integer(“45”);
  3. 生成字符串表示法的toString()方法,如obj.toString().
  4. 对同一个类的两个对象进行比较的equals()方法,如obj1.eauqls(obj2);
  5. 生成哈稀表代码的hashCode方法,如obj.hasCode();
  6. 将字符串转换为基本值的 parseType方法,如Integer.parseInt(args[0]);
  7. 可生成对象基本值的typeValue方法,如obj.intValue();

四、包装类的自动装箱、自动拆箱

首先,什么是装箱与拆箱?最简单的解释就是把最简单的数据类型用他们相对应的引用类型包装起来,使他们具有对象的特性。例如基本类型int,它所对应的包装类就是Integer。装箱与拆箱就是int与Integer之间的转换。

为了使我们的操作更加简单,jdk1.5版本给我们提供了自动拆箱与自动装箱的功能。例如:

inti = 25;
Integer j = i;//自动装箱
intm = j;//自动拆箱

注意:对于Integer的拆装箱需要注意以下问题

publicclassDemo {
    publicstaticvoid main(String[] args) {
        Integer a = 100;
        Integer b = 100;
        Integer c = 200;
        Integer d = 200;
        System.out.println(a==b);
        System.out.println(a==100);
        System.out.println(c==d);
        System.out.println(c==200);
    }
     
}

运行一下,结果依次为true,true,false,true
对于a==100,b==200大家应该可以理解,作了拆装箱,这里比较的是他们的值。但是a等于b为什么c就不等于d了?这就需要我们分析一下了
当Integer a = 100;这条语句执行的时候,java自动把它翻译成Integer a = Integer.valueOf(100);我们就来看一下valueOf这个函数:

publicstaticInteger valueOf(inti) {     
    finalintoffset = 128;    
    if(i >= -128&& i <= 127) { // must cache     
        returnIntegerCache.cache[i + offset];     
    }    
    returnnewInteger(i);     
}    
privatestaticclass IntegerCache {     
    privateIntegerCache(){}    
    staticfinalInteger cache[] = newInteger[-(-128) + 127+1];    
    static{    
        for(inti = 0; i < cache.length; i++)     
            cache[i] = newInteger(i - 128);    
    }    
}

这里看一下,当参数i是属于整型范围以内的就返回IntegerCache.cache[i]。对于IntegerCache的cache[],我们注意到static {}里面对它进行了初始化。new了所有的整型对象出来,而static{}只初始化一次,并且在对象间共享。因此,valueOf函数返回的是一开始就初始化好了的对象的引用。所以a和b都是同一个引用,因此它们相等。当然了,当参数大于127的时候,都是返回的新建对象,因此它们的引用并不等。所以说,对于Integer有特殊的地方,就是它使用了数组的缓存,目的是为了提高运行效率。


银河麒麟V10 SP3离线安装Nginx1.21.5全记录(附11个rpm包下载清单) 本文详细记录了在银河麒麟V10 SP3操作系统上离线安装Nginx 1.21.5的全过程,包括11个必备rpm包的下载清单。通过分步骤的实战指南,帮助用户在国产化环境中高效部署Nginx服务,涵盖安装、配置、调优及故障排查等关键环节,特别适合金融、政务等对安全性要求高的场景。 阅读详情

相关推荐

拆解一个带主动均衡的BMS模块:从变压器、MOS管矩阵到控制逻辑,图文详解内部设计与成本构成

本文深度拆解了一款带主动均衡功能的BMS模块,详细解析了其核心架构、元器件选型与成本构成。通过高频变压器、MOS管矩阵等硬件设计,该模块实现了高达87%的能量转移效率,远超普通被动均衡方案。文章还揭示了汽车级PCB设计、软件策略优化等关键技术细节,为锂电池管理系统设计提供了实用参考。

weixin_42638178的博客 347

java包装类概念与代码详解

包装类就是把八大基本数据类型包起来的对象,因为java是面向对象的编程语言,这些直接封好的包装类就可以方便直接调用。其余的都是首字母大写就好了bate、short、long、float、double、boolean。类型,其他七种都有对应的parseXXX的方法,进行类型转换)JDK5以前获取方式有构造方法和静态获取这两个方式。2.将字符串类型的整数转化为int类型的整数。自动装箱:把基本数据类型变成对应的包装类。自动拆箱:把包装类变成对象的基本数据类型。三、自动装箱和自动拆箱。二、八大基本数据类型。...

快乐学习 1024

电子发票二维码背后的秘密:10分钟看懂校验码、加密字符含义与防伪设计

本文深入解析电子发票二维码的结构与防伪设计,揭示校验码和加密字符的生成原理及验证方法。通过实际案例和技术细节,帮助财务人员理解电子发票的安全机制,提升防伪识别能力,确保税务合规。

weixin_29248611的博客 530

Java中包装类的常用方法

Java中包装类的常用方法

weixin_51733609的博客 1693

Pure Persuit算法基础

Pure Persuit算法本身的原理不难理解,它主要基于几何原理进行的设备控制,本身不考虑太多的运动学约束。同时机器人的路径跟踪效果应该会比较依赖于预瞄点。对于曲线部分而言,如果曲率很小而预瞄点很远的话,对于曲线的跟随性应该会很差。对于直线而言,如果设备在开始时与轨迹有横向偏差,则在运动过程中机器人会逐渐收敛到曲线,但是收敛速度取决于预瞄点距离。

YiYeZhiNian的博客 1522

3D Slicer5.7在win11下的源码编译安装

本博客主要参考官方安装文档以及部分优快云的博客,部分内容的书写会直接参考官方文档的内容。

Topsort的博客 4760

SQLite3简单C++包装类源码示例

一个比较好的SQLite3 C++ wrapper包装类的通常思路是这样的: 数据库连接类,包含连接池,和sqlite3*,负责与数据库文件的连接问题; 一些create table,insert,update,delete等操作都在这里定义,直接使用sqlite3_exec()函数进行就可以,对它的回调函数可以定义为空。 如果对数据库执行查询操作,则需要一个单独的操作类, CQuery,它

雪峰流云 2465

【Musescore 】开源打谱软件 快速入门笔记

前两天做了个西贝柳斯的打谱软件学习笔记,反正都是初学,今天再来学习一款同类软件,比较之后确定一款深入学习。 西贝柳斯的学习笔记在此:https://blog.youkuaiyun.com/yuetaope/article/details/120020342 西贝柳斯是商业收费软件,要么花钱,要么盗版,如果您觉得这两者都不大好,那么推荐您试试Musescore。 Musescore是一款非常优秀的开源的打谱软件,生态繁荣。“开源”和“生态”是码农业的术语,我用正常人类的语言简单解释一下。 开源就是开放程序源代码,对码农

专注于医院数据分析技术与系统开发的创作与分享。 1万+

Java进阶总结——异常处理、包装类、代码块分类

Java进阶总结6 1. 代码块分类  /**  * 代码块  可划分为4类  * 1.局部代码块  * 2.初始化代码块  * 3.构造代码块  * 4.静态代码块  * */   package day11.block; public class BlockDemo { //局部代码块 public void method1() { System.out.print...

qq_41534115的博客 523

Vue3+codemirror6实现公式(规则)编辑器

vue3+codemirror6+ts实现公式编辑器,可以插入标签、公式,也有补全提示

小阮的笔记本 5045

【WRF理论第十四期】 VEGPARM.TBL 文件详解

WRF 读取 VEGPARM.TBL 文件

WW、forever的博客 576

Java——八大包装类

Java中的包装类缓存机制是为了优化性能和节省内存而设计的。它为整型(Byte、Short、Integer、Long)、字符型(Character)和布尔型(Boolean)的包装类提供了缓存,确保在这些类型的小范围值之间可以复用对象。而对于浮点数类型的包装类(Float、Double),则没有这种缓存机制,意味着每次都需要创建新的对象。这样一来,Java在处理常用值时更加高效,但在浮点数处理上则相对简单直接。

Stewie Lee的博客 3603

RAG面试内容整理-8. 文档分块策略(滑动窗口、语义切分)

RAG系统通常面对长文档或整篇知识库资料的检索需求,但大模型一次处理的文本长度有限,向量索引也需固定大小的文本片段。因此,将长文档拆分成合适片段是必不可少的步骤,被称为文档分块(chunking)策略。

不务正业的猿 690

【Java】包装类

Java 包装类

shayudiandian的博客 2808

pscad IEEE标准系统搭建说明

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【Java】Java 包装类详解

Java包装类是八种基本数据类型对应的对象类,使其能用于泛型、集合等场景。主要特点包括自动装箱/拆箱、常用值缓存机制(如Integer缓存范围为-128到127),以及提供字符串转换等实用方法。使用时需注意==比较的陷阱、空指针风险及性能消耗。推荐通过valueOf()创建包装类对象,利用缓存提升效率。

经天纬地,格物致理 1740

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

包装类知识总结

包装(Wrapper)类,也叫封装类。 包装类不止一个,它是Java针对8种基本数据类型提供的类类型,它们对基本数据类型做了包装。 基本类型:byte、 short、 int、 long 、float 、double、 char 、boolean 包装类:Byte、 Short 、Integer、Long 、Float、 Double、Character、Boolean 除了int和char的包装类命名比较特殊(单词的全写)外,其他基本数据类型的 包装类直接是首字 ...

zjqjy0911的博客 2493

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java的包装类

一、包装类分类 Java有八种基本数据类型:byte、short、int、long、float、double、boolean、char Java为其提供了8种对应的包装类:Byte、Short、Integer、Long、Float、Double、Boolean、Character Integer num = new Integer(0); //创建一个数值为0的Integer对象 二、使用包装类的原因 Java语言是面向对象的编程语言,而基本数据类型声明的变量并不是对象,为其提供包装类,增

weixin_46140377的博客 1万+

JAVA 包装类

Java 包装类

qq_53312143的博客 5256

Java的包装类有哪些,包装类的作用

在上一篇文章中我们给大家介绍了**Java中的Object类**,它属于我们开发时的常用类。除此之外,还有另外的一些常用类,比如各种包装类。**那么包装类又是怎么回事?有哪些类属于包装类?包装类的作用是干嘛的?包装类有哪些特性?** 接下来这篇文章就给大家讲一讲这些包装类。

关注我!带你一路 "狂飙" 到底! 2490

JAVA包装类——(包装类介绍以及包装类的常用方法)

一:什么是包装类: 包装类就是把基本类型数据转换为对象,为什么要进行转换:1:集合和数组的区别就是集合中存储的都是对象,不能是基本类型的数据:2:需要运用一些实用的方法,通过对象点出来,比如后面用到的 String words="123"; words.length;可以点出一些方法; 基本类型的数据和引用类型的数据的区别一个是基本类型的数据都是小写,并且基本类型的数据点(.)不出来属性和方法;为了满足一些需求,就需要把基本类型数据转换成对象,就出现了包装类; 每一个基本类型在java.

gitets的博客 2087

java char 包装类_Java 包装类

1、Java 包装类Java有8种基本数据类型:整型(byte、short、int、long)、浮点型(float、double)、布尔型boolean、字符型char,相对应地,Java提供了8种包装类Byte、Short、Integer、Long、Float、Double、Boolean、Character。包装类创建对象的方式就跟其他类一样。包装类提供了一种使用原始数据类型作为对象的方法。下...

weixin_39725193的博客 5603

《JAVA SE》包装类

阿里巴巴编码规范:所有POJO(普通)类的成员变量一律使用包装类代替基本类型。

VIBE的博客 1383

Java 包装类详解

本文全面解析Java包装类的核心机制,涵盖自动装箱拆箱、字符串转换、缓存优化及Integer类常用方法,深入探讨空指针风险、数值精度等陷阱,结合高频面试题剖析整数型常量池原理,助你掌握包装类使用技巧并规避常见错误,轻松应对开发与面试挑战。

m0_73941339的博客 1330

Java包装类

在-

2301_81354580的博客 1066

JAVA包装类

用于表示整数数值,不包含小数部分。byte用于表示带小数的数值,分为单精度和双精度。float用于表示单个 Unicode 字符,占 16 位。char。

m0_61261153的博客 1117

java包装类是什么_java包装类的概念是什么?包括哪些?

在时代的不断变迁与发展之中。越来越多的新技术涌现了出来。今天就为大家介绍一下java的包装类是什么意思,以及它包括哪些内容。首先,由于java中的数据类型int,double等不是对象,所以无法通过向上转型得到Object提供的方法,而像String却可以,原因是String是一个对象而不是一个类型。java提供包装类就是为了解决,基本数据类型因为上述的特性,导致无法参与转型,泛型,反射等过程的问...

weixin_35473090的博客 3279
上一篇: freemaker介绍及常见用法
下一篇: java总结(七)集合类
海之沐
博客等级 码龄12年 1536粉丝 71原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值