重学java 35.API 6.包装类

news2024/12/26 21:23:06

心有所念,必有所灵

                        —— 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;// 用户id
    private 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://www.coloradmin.cn/o/1662084.html

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

相关文章

聊聊ChatGPT:智能语言模型背后的原理

目录 1. ChatGPT的基础:GPT模型 2. 预训练与微调:让模型更加智能 2.1 预训练 2.2 微调 3. 多样化的应用场景 4. 未来的展望 5. 结语 在当今的人工智能领域,OpenAI的ChatGPT无疑是一个炙手可热的话题。它不仅能流畅地进行对话&#xff…

Databend 开源周报第 143 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 了解 Databend …

工控组态技术:实现工业自动化控制的重要手段

体验地址:by组态[web组态插件] 工控组态技术是一种应用于工业自动化控制领域的重要技术,它通过将各种不同的硬件设备和软件系统进行组合和配置,实现了工业生产过程的自动化控制和优化。 随着工业技术的不断发展和进步,工控组态技…

解锁Spring Cloud Gateway与Nginx最強配置,构建未来网络高速公路!(下)

文章目录 5. 监控与日志5.1 Nginx访问日志与错误日志配置访问日志配置错误日志配置 5.2 Spring Cloud Gateway的日志记录与监控集成日志记录监控集成微服务监控 6. 故障排查与常见问题6.1 配置错误常见原因与解决语法错误监听端口冲突路由规则不匹配 6.2 性能瓶颈识别与优化建议…

Navicat Data Modeler Ess for Mac:强大的数据库建模设计软件

Navicat Data Modeler Ess for Mac是一款专为Mac用户设计的数据库建模与设计工具,凭借其强大的功能和直观的界面,帮助用户轻松构建和管理复杂的数据库模型。 Navicat Data Modeler Ess for Mac v3.3.17中文直装版下载 这款软件支持多种数据库系统&#x…

OmniPlan Pro 4 for Mac中文激活版:项目管理的新选择

OmniPlan Pro 4 for Mac作为一款专为Mac用户设计的项目管理软件,为用户提供了全新的项目管理体验。其直观易用的界面和强大的功能特性,使用户能够轻松上手并快速掌握项目管理要点。 首先,OmniPlan Pro 4 for Mac支持自定义视图,用…

鸿蒙内核源码分析(VFS篇) | 文件系统和谐共处的基础

基本概念 | 官方定义 VFS(Virtual File System)是文件系统的虚拟层,它不是一个实际的文件系统,而是一个异构文件系统之上的软件粘合层,为用户提供统一的类Unix文件操作接口。由于不同类型的文件系统接口不统一&#x…

开源相机管理库Aravis例程学习(七)——chunk-parser

开源相机管理库Aravis例程学习(七)——chunk-parser 简介例程代码函数说明arv_camera_create_chunk_parserarv_camera_set_chunksarv_chunk_parser_get_integer_value 简介 本文针对官方例程中的:05-chunk-parser做简单的讲解。并介绍其中调…

钓场是怎么收费看时间的,钓鱼钓虾计时计费管理系统软件

钓场是怎么收费看时间的,钓鱼钓虾计时计费管理系统软件 一、前言 以下软件操作教程以,佳易王钓场计时计费管理软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 佳易王钓场计时计费管理软件,支持百人或千人…

sql-labs通关详解(1-10)

1.less-1 1.判断类型 由此判断是字符型漏洞由单引号闭合。 2.判断 字段个数 http://192.168.190.145/sqli-labs/Less-1/?id1 order by 3-- 3.获取数据库名 -1 union select 1,2,database()-- 4.获取表名 -1 union select 1,2,group_concat(table_name) from information_…

权限束缚术--权限提升你需要知道这些

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要对渗透测试中权限提升的一些基础知识进行整理 并不包含权限提升的具体操作 适合要入门权限提升的朋友 提权的重要性 我们在渗透网站时,我们往往会拿到一些权限,但是我们的权限有…

目标检测算法YOLOv7简介

YOLOv7由Chien-Yao Wang等人于2022年提出,论文名为:《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors》,论文见:https://arxiv.org/pdf/2207.02696 ,项目网页&#xff…

HC-05的简介与使用

蓝牙概述 蓝牙(Bluetooth)是一种用于无线通信的技术标准,允许设备在短距离内进行数据交换和通信。它是由爱立信(Ericsson)公司在1994年推出的,以取代传统的有线连接方式,使设备之间能够实现低功…

Ansible-Playbook通过role角色部署Lnmp架构

目录​​​​​​​ 一、配置Nginx的Roles角色 1.1编写files/default.conf 1.2编写files/nginx.repo 1.3编写handlers/main.yml 1.4编写tasks/main.yml文件 1.5编写vars/main.yml文件 1.6测试运行结果,并不是真的执行任务 二、配置Mysql的Roles角色 2.1编写…

vue-fontawesome-elementui-icon-picker选择icon框架

第一步:安装vue-fontawesome-elementui-icon-picker依赖 npm install vue-fontawesome-elementui-icon-picker --save-dev 第二步:main.js配置 (放在element ui引入之后) import iconPicker from vue-fontawesome-elementui-icon-picker; Vue.use(ico…

day2_greedyIntervalsLRU/LFU

二、贪心算法之区间调度问题 0.计算一个区间集合中无重复的区间的最大数量(模板) public int intervalSchedule(int[][] intvs) {if (intvs.length 0) return 0;// 按 end 升序排序Arrays.sort(intvs, (a, b) -> Integer.compare(a[1], b[1]));// 至少有一个区间不相交in…

Web3 Tools - Base58

Base58编码 Base58编码是一种用于表示数字的非常见的编码方法。它通常用于加密货币领域,例如比特币和其他加密货币的地址表示。 什么是Base58编码? Base58编码是一种将数字转换为人类可读形式的编码方法。与常见的Base64编码不同,Base58编码…

Docker常用镜像安装

1. mysql 1.1 安装 获取镜像 docker pull mysql:8.0.30创建文件挂载目录 创建容器并运行 docker run -p 3306:3306 --name mysql8 \ -v /home/docker/mysql8/log:/var/log/mysql \ -v /home/docker/mysql8/data:/var/lib/mysql \ -v /home/docker/mysql8/mysql-files:/va…

鸿蒙OpenHarmony开发板解析:【特性配置规则】

特性 特性配置规则 下面介绍feature的声明、定义以及使用方法。 feature的声明 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 在部件的bundle.json文件中通过feature_list来声明部件的feature列…

『大模型笔记』Google CEO Sundar Pichai(桑达尔·皮查伊)谈人工智能的未来!

Google CEO Sundar Pichai(桑达尔皮查伊)谈人工智能的未来! 文章目录 一. Google CEO谈人工智能的未来总结摘要观点时间线二. 参考文献中文字幕视频链接,欢迎关注我的xhs账号:Google CEO 皮查伊谈人工智能的未来! 一. Google CEO谈人工智能的未来