重学java 35.API 6.包装类

心有所念,必有所灵

                        —— 24.5.10

一、基本数据类型对应的引用数据类型(包装类)

1概述

        就是基本类型所对应的类(包装类),我们需要将基本类型转为包装类,从而让基本类型拥有类的特性(是基本类型可以使用包装类中的方法操作数据)

2.为什么学包装类

        a.将来有一些特定场景,特定操作,比如调用方法传递包装类

                比如:ArrayList集合,里面有一个方法add(Integer i),此时我们不能调用add方法之后直接传递基本类型,因为引用类型不能直接接收基本类型的值,就需要先将基本类型转成包装类,传递到add方法中

        b.将来我们还可以将包装类转成基本类型
                包装类不能直接使用 + - * /,所以需要将包装类转成基本类型,才能使用+ - * /

二、Integer的介绍以及使用

1.integer基本使用

概述

        Integer是int的包装类

构造

        Integer(int value)

        Integer(string s) s必须是数字形式

public class Demo188Integer {public static void main(String[] args) {Integer i1 = new Integer(10);System.out.println("i1 = "+i1);Integer i2 = new Integer("10");System.out.println("i2 = "+i2);System.out.println("————————————————————————");Boolean b1 = new Boolean("true");System.out.println("b1 = "+b1);Boolean b2 = new Boolean("false");System.out.println("b2 = "+b2);Boolean b3 = new Boolean("True");System.out.println("b3 = "+b3);}
}

2.valueOf装箱

        将基本类型转成对应的包装类

方法:

        static Integer valueof(int i)

        static Integer valueof(String s)

3.数据类型+Value拆箱

        将包装类转成基本类型

方法:

        int intvalue()

package S63Integer;public class Demo190IntValue {public static void main(String[] args) {Integer i1 = Integer.valueOf(10);System.out.println("i1 = "+ i1);int i2 = i1.intValue();System.out.println("(i2+10) = "+(i2+10) );}
}

4.自动拆箱装箱

//1、包装类中的自动装箱拆箱机制
Integer  num1 = 1;		//自动装箱
int num2 = num1;		//自动拆箱
System.out.println(num1 +"	"+ num2);

        拆箱和装箱都是自动完成

public class Demo191IntegerOpsite {public static void main(String[] args) {Integer i = 1;  // 发生了自动装箱Integer sum = i+6;// 发生了自动拆箱装箱System.out.println("sum = "+ sum);}
}

数组里装的是-128~127间的Integer对象,如果在-128 ~ 127之间 直接从数组里取元素返回,转化为基本数据类型,不用new对象

public class Demo192Integer {public static void main(String[] args) {// 自动装箱Integer i1 = 100;Integer i2 = 100;System.out.println(i1 == i2);// 如果在-128 ~ 127之间 直接从数组里取元素返回,不用new对象// 自动装箱Integer i3 = 128;Integer i4 = 128;System.out.println(i3 == i4);}
}

对上述代码进行反编译

Integer integer = Integer.valueOf(1);
int i = integer.intValue();
System.out.println((new StringBuilder()).append(integer).append("\t").append(i).toString());

三、基本类型和String之间的转换

1 基本类型往String转

①方式1:

        +拼接

②方式2:

        String中的静态方法static String valueof(int i)

③示例

public class Demo193StringParse {public static void main(String[] args) {int i = 10;String s1 = i+"";System.out.println(s1+1);System.out.println(s1.getClass().toString());System.out.println("——————————————————————————");String s = String.valueOf(10);System.out.println(s+1);System.out.println(s.getClass().toString());}
}

2.String转成基本数据类型

        每个包装类中都有一个类似的方法:parsexxx

public class Demo194Parse {public static void main(String[] args) {method01();method02();}private static void method02() {int num = Integer.parseInt("1111");System.out.println("(num+1) = " + num+1);}private static void method01() {}
}

1.在实际开发过程中如何定义一个标准javabean?

        定义javabean的时候一般会将基本类型的属性定义成包装类型的属性

public class User {private int uid;// 用户idprivate String username;// 用户名private String password;// 密码public User() {}public User(int uid, String username, String password) {this.uid = uid;this.username = username;this.password = password;}public int getUid() {return uid;}public void setUid(int uid) {this.uid = uid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

1.举例:如果uid为Integer型,默认值是null

2.将来javabean中的数据都是和数据库表联系起来的,我们可以将javabean中的数据添加到表中如果表中的uid为主键自增的,此时添加语句时,uid中的数据不用我们单独维护赋值了,添加语句的sql语句就可以这样写:
        insert into user(uid,username,password)values (NULL,'金莲','36666');
3.到时候,我们需要将javabean中封装的数据获取出来放到sq]语句中,如果uid为主键自增,而且javabean中的uid为包装类型,默认值为NULL,这样就不用单独维护uid的值了,也不用先给javabean中的uid赋值,然后在保存到数据库中了,咱们就可以直接使用uid的默认值,将默认值放到sql语句的uid列中
4.而且将javabean中的属性变成包装类,还可以使用包装类中的方法去操作此属性值

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Electron学习笔记(三)

文章目录 相关笔记笔记说明 五、界面1、获取 webContents 实例(1)通过窗口对象的 webContent 属性获取 webContent 实例:(2)获取当前激活窗口的 webContents 实例:(3)在渲染进程中获…

局域网手机端远程控制手机

局域网手机端远程控制手机 随着科技的进步和智能设备的普及,远程控制技术在日常生活与工作中的应用越来越广泛。其中,局域网内的手机端远程控制手机技术,因其便捷性和实用性,受到了众多用户的关注。本文将简要介绍该技术及其应用…

linux开发笔记(buildroot 增加自己的开发板支持文件)

1、该笔记参考了mangopi r3的buildroot。某宝上卖的LC-PI-200S提供的buildroot就是这个。已经上传到我的资源中,可以下载看看。 2、首先在buildroot目录输入make menuconfig打开buildroot配置。 进入build options查看 可以看到第二行就是buildroot配置的保存位置…

机器学习算法 - 逻辑回归

逻辑回归是一种广泛应用于统计学和机器学习领域的回归分析方法,主要用于处理二分类问题。它的目的是找到一个最佳拟合模型来预测一个事件的发生概率。以下是逻辑回归的一些核心要点: 基本概念 输出:逻辑回归模型的输出是一个介于0和1之间的…

一文扫盲(12):公寓/酒店管理系统的功能模块和界面设计

大千UI工场本次带来第12期:酒店管理系统,从系统定义、功能模块、界面构成和设计方向四个方面讲解,大千UI工场愿意持续和大家分享,欢迎关注、点赞、转发。 公寓管理系统是一种用于管理和运营公寓的软件系统。它通过集成各种功能模…

远程服务器监控工具Navicat Monitor全新发布v3.0 - 支持PostgreSQL用户

Navicat Monitor 是一套安全、简单而且无代理的远程服务器监控工具。它具有强大的功能使你的监控发挥最大效用。受监控的服务器包括 MySQL、MariaDB 和 Percona Server,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure 和阿里云等云数据库兼容。Nav…

地址传递,使用uint8的数组解析int, short等类型

当需要使用UINT8去解析所传入的数组类型的时候,我们需要使用到传递地址,再通过数组的形式,通过较小的类型去以数组的类型来解析大的类型。 char 类型是1个字节, 占8位, 使用十六进制表示,如:0x…

回溯法、全排列、子集等

回溯法 感想:回溯算法本质是一个循环,有点像while循环 一些回溯法(递归)的经典应用 1.全排列 2.子集 其实上面两个点,也是对应着高中数学里面的“排列”与“组合” 1.全排列问题 给定一个集合S{a,b,c}&#xff0…

【Linux】什么是进程?

一个正在执行的程序,我们称之为进程。 然后我们来顺着一条线来思考。 操作系统底层是用C语言编写的,而我们的进程,它会有各种属性,那么各种属性就可以用一个结构体来对进程的各个属性进行描述,然后这个结构体里面&…

一个优秀 Maven 项目,各 Model 间最佳继承设计方案

1.单一职责原则 (Single Responsibility Principle): 每个模块应该专注于执行一个清晰且明确定义的功能,遵循单一职责原则,以降低模块的复杂性。 2.高内聚性 (High Cohesion): 模块内的组件和类应该紧密相关,共同实现模块的目标。高内聚性…

[图解]实现领域驱动设计译文暴露的问题01

0 00:00:00,430 --> 00:00:03,470 今天呢,我们来说一个主题 1 00:00:03,810 --> 00:00:04,041 2 00:00:04,041 --> 00:00:05,430 我们来谈一谈 3 00:00:05,960 --> 00:00:07,710 实现领域驱动设计 4 00:00:09,120 --> 00:00:11,070 这本书的中译本…

【C++历练之路】unordered_map与unordered_set的封装实现

W...Y的主页 😊 代码仓库分享💕 前言:我们已经认识并实现了哈希底层的逻辑,创建出了其开散列。现在我们要进行封装,类比STL中的unordered_set 与 unordered_map。 目录 1. 模拟实现 1.1 哈希表的改造 1.2 unorde…

一图看懂 | 蓝卓煤炭行业解决方案

煤炭是我国能源保障的“压舱石,也是国民经济中重要的支柱产业之一无论是发电、建材、造纸、冶金、化工等工业领域都离不开煤炭近年来,在“双碳”及能源安全双重背景下推动智能化技术与煤炭产业的融合发展提升煤矿安全生产能力的重要性与日俱增智慧矿山的建设已逐渐成…

Ardupilot Rpanion iperf网络性能测试

Ardupilot Rpanion iperf网络性能测试 1. 源由2. 分析3. 安装4. 测试4.1 第一次测试4.1.1 iperf测试参数A4.1.1.1 测试链路14.1.1.2 测试链路24.1.1.3 测试链路3 4.1.2 iperf测试参数B - 测试链路34.1.2.1 测试数据4.1.2.2 数据简单分析4.1.2.3 数据深入分析4.1.2.4 模拟测试网…

订单管理系统(OMS):一文扫盲,订单的全生命周期管理

一、什么是OMS系统 OMS(Order Management System)即订单管理系统,是一种用于管理和处理订单的软件系统。它主要用于跟踪订单的生命周期,从订单的创建、处理、配送到最终的交付和结算。OMS系统在电子商务、零售、物流等领域广泛应…

[Kubernetes] 云原生 Istio 介绍

文章目录 1.Istio 介绍2.Istio 特征3.Istio 与服务治理4.Istio与Kubernetes4.1 Istio是Kubernetes的好帮手4.2 Kubernetes是Istio的好基座 5.Istio与服务网格5.1 时代选择服务网格5.2 服务网格选择Istio 1.Istio 介绍 服务网格是一个独立的基础设施层,用来处理服务之…

Web前端开发 小实训(三) 商品秒杀小练习

学生能够在本次实训中完成商品秒杀页面的基本逻辑 任务要求 能够实现某一个商品的秒杀&#xff0c;在倒计时结束后不再进行秒杀。 操作步骤 1、打开预设好的页面 <html><head><meta charset"utf-8"><title>秒杀</title><link …

若依生成树表和下拉框选择树表结构(在其他页面使用该下拉框输入)

1.数据库表设计 生成树结构的主要列是id列和parent_id列&#xff0c;后者指向他的父级 2.来到前端代码生成器页面 导入你刚刚写出该格式的数据库表 3.点击编辑&#xff0c;来到字段 祖籍列表是为了好找到直接父类&#xff0c;不属于代码生成器方法&#xff0c;需要后台编…

[js] 递归,数组对象根据某个值进行升序或者降序

一、效果图 1.1 父级 1.2 父级与子级 二、代码 升序降序&#xff0c;只要把 a.num - b.num 改成 b.num - a.num <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, i…

Apache Flume概述

Apache Flume概述 1.Flume定义 ​ Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。 它将各个服务器中的数据收集起来并送到指定的地方去&#xff0c;比如说送到HDFS、Hbase&#xff0c;简单来说flume就是收集日志的。 2.Flume基础架构…