包装类知识总结

 
包装类的使用1. 为什么要使用包装类?
为了使得基本数据类型的变量具备引用数据类型变量的相关特征(比如:封装性、继承性、多态性),我们给各个基本数据
类型的变量都提供了对应的包装类。
为了让基本数据类型也可以有引用类型的相关特征 一此功能  在使用基本数据类型时  相当于使用了引用类型  让基本类型有了引用类型的相关特征2. (掌握)基本数据类型对应的包装类类型
byte -> Byte
short -> Short
int -> Integer
long -> Long
float -> Float
double ->Doublechar -> Character
boolean -> Boolean3. 掌握基本数据类型 与 包装类之间的转换。3.1 为什么需要转换> 一方面,在有些场景下,需要使用基本数据类型对应的包装类的对象。此时就需要将基本数据类型的变量转换为包装类的对象。比如:ArrayList的add(Object obj);Object类的equals(Object obj)> 对于包装类来讲,既然我们使用的是对象,那么对象是不能进行+ - * /等运算的。为了能够进行这些运算,就需要将包装类的对象转换为基本数据类型的变量。3.2 如何转换:(装箱)基本数据类型 ---> 包装类:① 使用包装类的构造器 ② (建议)调用包装类的valueOf(xxx xx)(拆箱)包装类 ---> 基本数据类型:调用包装类的xxxValue()注意:原来使用基本数据类型变量的位置,改成包装类以后,对于成员变量来说,其默认值变化了!jdk5.0新特性:自动装箱、自动拆箱。

总结代码:

package chapter08_oop3_teacher.src.com.atguigu12.wrapper;import org.junit.Test;/*** ClassName: WrapperTest* Description:** @Author 尚硅谷-宋红康* @Create 9:02* @Version 1.0*/
public class WrapperTest {/*基本数据类型 ---> 包装类:① 使用包装类的构造器 ② (建议)调用包装类的valueOf(xxx xx)包装类 ---> 基本数据类型:调用包装类的xxxValue()*///包装类 ---> 基本数据类型:调用包装类的xxxValue()/** jdk5.0新特性:自动装箱、自动拆箱。* */@Testpublic void test4(){//自动装箱:   基本数据类型 ---> 包装类int i1 = 10;Integer ii1 = i1; //自动装箱System.out.println(ii1.toString());Integer ii2 = i1 + 1; //自动装箱Boolean bb1 = true;//自动装箱Float f1 = 12.3F;  //自动装箱//自动拆箱:包装类 ---> 基本数据类型int i2 = ii1;  //自动拆箱boolean b1 = bb1;//自动拆箱}@Testpublic void test3(){Account account = new Account();System.out.println(account.isFlag1);//falseSystem.out.println(account.isFlag2);//nullSystem.out.println(account.balance1);//0.0System.out.println(account.balance2);//null}@Testpublic void test2(){Integer ii1 = new Integer(10);int i1 = ii1.intValue();i1 = i1 + 1;Float ff1 = new Float(12.3F);float f1 = ff1.floatValue();Boolean bb1 = Boolean.valueOf(true);boolean b1 = bb1.booleanValue();}//基本数据类型 ---> 包装类:① 使用包装类的构造器 ② (建议)调用包装类的valueOf(xxx xx)@Testpublic void test1(){int i1 = 10;Integer ii1 = new Integer(i1);System.out.println(ii1.toString());float f1 = 12.3F;f1 = 32.2f;Float ff1 = new Float(f1);System.out.println(ff1.toString());String s1 = "32.1";Float ff2 = new Float(s1);//        s1 = "abc";
//        Float ff3 = new Float(s1); //报异常:NumberFormatExceptionboolean b1 = true;Boolean bb1 = new Boolean(b1);System.out.println(bb1);String s2 = "false";s2 = "FaLse123";s2 = "TrUe";Boolean bb2 = new Boolean(s2);System.out.println(bb2); //false  --> true//推荐使用:int i2 = 10;Integer ii2 = Integer.valueOf(i2);Boolean b2 = Boolean.valueOf(true);Float f2 = Float.valueOf(12.3F);}}class Account{boolean isFlag1;Boolean isFlag2;double balance1; //0.0Double balance2; //null  0.0
}

String 与 基本数据类型、包装类之间的转换。 基本数据类型、包装类 ---> String类型:① 调用String的重载的静态方法valueOf(xxx xx) ; ② 基本数据类型的变量 + "" String类型 ---> 基本数据类型、包装类: 调用包装类的静态方法:parseXxx()

package chapter08_oop3_teacher.src.com.atguigu12.wrapper;import org.junit.Test;/*** ClassName: WrapperTest1* Description:** @Author 尚硅谷-宋红康* @Create 9:32* @Version 1.0*/
public class WrapperTest1 {/*基本数据类型、包装类 ---> String类型:① 调用String的重载的静态方法valueOf(xxx xx) ; ② 基本数据类型的变量 + ""String类型 ---> 基本数据类型、包装类: 调用包装类的静态方法:parseXxx()*/@Testpublic void test2(){String s1 = "123";int i1 = Integer.parseInt(s1);System.out.println(i1 + 10);String s2 = "true";boolean b1 = Boolean.parseBoolean(s2);//特别的
//        String s3 = "123a";
//        int i2 = Integer.parseInt(s3); //报错:NumberFormatException}@Testpublic void test1(){//方式1:调用String的重载的静态方法valueOf(xxx xx)int i1 = 10;String str1 = String.valueOf(i1);System.out.println(str1);//"10"boolean b1 = true;Boolean b2 = b1;String str2 = String.valueOf(b1);String str3 = String.valueOf(b2);//方式2:基本数据类型的变量 + ""String str4 = i1 + "";String str5 = b1 + "";}
}

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

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

相关文章

51单片机入门:认识开发板

认识开发板 板载资源: 数码管模块 说明: 2个四位一体共阴数码管 详细: 2个四位一体:两个独立的四位数码管,每个四位数码管都是“一体”的设计,也就是说,每个数码管内部集成了四个独立的七段LE…

HTTPS跟HTTP有区别吗?

HTTPS和HTTP的区别,白话一点说就是: 1. 安全程度: - HTTP:就像是你和朋友面对面聊天,说的话大家都能听见(信息明文传输,容易被偷听)。 - HTTPS:就像是你们俩戴着加密耳机…

回文串问题

1、回文子串 647. 回文子串 - 力扣(LeetCode) class Solution {//1、状态表示:// dp[i][j]:s字符串种从i位置到j位置的子串,是否是回文串//2、状态转移方程://if s[i] != s[j],false//如果s[i] == s[j]:(1)i == j,true;(2) i+1 == j相邻,true;(3)如果不是前面两种关…

论大数据服务化发展史

引言 一直想写一篇服务化相关的文章,那就别犹豫了现在就开始吧 正文 作为大数据基础架构工程师,业界也笑称“运维Boy”,日常工作就是在各个机器上部署以及维护服务,例如部署Hadoop、Kafka、Pulsar这些等等,用于给公…

InternLM2-lesson2笔记

书生浦语大模型趣味 Demo 视频连接:https://www.bilibili.com/video/BV1AH4y1H78d/?vd_source902e3124d4683c41b103f1d1322401fa 目录 书生浦语大模型趣味 Demo课程总览SIG项目Demo部署的一般流程存在的问题总结 课程总览 InternLM2-chat-1.8B部署八戒-chat-1.8B…

【css】文本过长溢出一行不换行普通css以及antd实现

.text-box { white-space: nowrap; /* 防止文字换行 */ overflow: hidden; /* 隐藏超出div的内容 */ text-overflow: ellipsis; /* 当内容超出时,显示省略号 */ max-width: calc(100% - 80px); /* 假设按钮宽度为80px,则设置div的最大宽度为容器宽度…

【华为OD机试】根据IP查找城市(贪心算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

Nginx配置使用笔记

Nginx配置使用笔记 前言 官网下载压缩包https://nginx.org/ 解压完成后当前目录cmd输入nginx指令启动 访问http://localhost:80确认启动成功 1.部署前端项目 部署前端项目到路径E:\Workspaces\Vscode\app-web 2.0配置nginx.conf文件 在nginx安装的conf目录下新建一个文件夹l…

Mysql索引总结(1)

文章目录 InnoDB索引与MyISAM索引实现的区别是什么?一个表中如果没有创建索引,那么还会创建B树吗?B树索引实现原理(数据结构) InnoDB索引与MyISAM索引实现的区别是什么? MyISAM的索引方式都是非聚簇的&…

07-app端文章搜索

app端文章搜索 1) 今日内容介绍 1.1)App端搜索-效果图 1.2)今日内容 文章搜索 ElasticSearch环境搭建 索引库创建 文章搜索多条件复合查询 索引数据同步 搜索历史记录 Mongodb环境搭建 异步保存搜索历史 查看搜索历史列表 删除搜索历史 联想词查询 联想词的来源 联…

elasticSearch原理浅尝

终于等到你 马上就要放弃 开个玩笑 ,进入正题 on fire 基础的咱不说了,一搜一麻袋 读 全文检索: 协调节点广播查询请求到相关分片 并 将其响应 整合 全局排序 返回结果集合 带路由:具体文档 shard hash(document_id) % (…

redis进阶入门主从复制与哨兵集群

一、主从复制 1.1背景 一般来说,要将 Redis用于工程项目中,只使用一台 Redist是万万不能的,原因如下: 从结构上,单个 Redist服务器会发生单点故障,井且一台服务器需要处理所有的请求负載,压力…

HTML基础知识详解(上)(如何想知道html的全部基础知识点,那么只看这一篇就足够了!)

前言:在学习前端基础时,必不可少的就是三大件(html、css、javascript ),而HTML(超文本标记语言——HyperText Markup Language)是构成 Web 世界的一砖一瓦,它定义了网页内容的含义和…

P1570 KC 喝咖啡

P1570 KC 喝咖啡 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 让求 ∑ v i ∑ c i \frac { \sum{ v_i}} { \sum{c_i}} ∑ci​∑vi​​的最大值,假设值为 a n s ans ans,则 a n s ∑ v i ∑ c i ans \frac {\sum{v_i}} {\sum{c_i}} ans∑ci​∑vi​…

物联网实战--驱动篇之(一)EEPROM存储器(AT24C64)

目录 一、驱动概述 二、AT24C64简介 三、驱动编写 四、驱动应用 一、驱动概述 这是驱动篇的第一篇,所以先说明下驱动篇的作用和书写计划。之前的净化器项目已有提及,向ESP8266、SHT30这些都属于驱动设备,主芯片STM32是核心,相…

C++从入门到精通——范围for的使用

范围for的使用 前言一、(引言)python中for循环的使用二、C中的范围forC语言中的for循环C中的范围for的语法不使用范围for的正常写法范围for的写法正常范围forauto自动推导范围for 三、范围for的使用条件for循环迭代的范围必须是确定的迭代的对象要实现和…

第五节 LLava模型数据处理源码解读(input_ids/labels/attention_mask/image,上篇)

文章目录 前言一、torch.nn.utils.rnn.pad_sequence与torch.ne函数1、torch.nn.utils.rnn.pad_sequence函数功能解读1、函数原理2、demo示列3、demo结果对比2、torch.ne函数介绍二、图像与语言加载1、语言处理tokenizer的来源2、图像处理process的来源3、数据加工方法三、数据加…

redis 数据库的安装及使用方法

目录 一 关系数据库与非关系型数据库 (一)关系型数据库 1,关系型数据库是什么 2,主流的关系型数据库有哪些 3,关系型数据库注意事项 (二)非关系型数据库 1,非关系型数据库是…

vue-element-template 设置权限管理配置文件 \ vue用户权限管理

最近使用vue-element-template模板做系统时,需要实现用户权限管理,通过后端传来的roles字段来判断不同用户的身份,不同用户显示不同的侧边栏,下面是配置方法: 0.需要配置的文件有: src/routersrc/store/mo…

模拟---算法

1、定义 仅仅使用较简单的算法和数据结构的题目。模拟顾名思义,按照题目的要求,一步步写出代码。 特点:模拟题目通常是具有码量大、操作多、思路繁复的特点。 2、步骤 读题,读懂题目的意思,要知道题目想做什么建模,利用什么样的数据结构来实现代码实现,写出代码框架调…