[java/初学者]java常用API(1)——包装类

news2025/1/12 21:02:23

 前言

在学习本课题之前,我们首先需要知道什么是API。

API,即Application Programming Interface,中文名称是“应用程序接口",

这些接口就是"jdk所提供"给我们使用的类,我们不需要去深究它是如何实现的,只需要知道这些类的用法是什么,使用时需要注意哪些地方即可。

这些类按照功能的不同,分别在不同的包中。例如我们常用的Scanner类就位于实用程序包java.util中,Math类位于语言包java.lang包中,这些包除了lang包外,都需要使用import语句进行"导包"后才能使用。

而本节我们先简单介绍一下包装类和与字符串有关的一些类。



一、包装类

我们都知道,java是一门面向对象的语言对吧。

不过,其中的8种基本数据类型却不具备面向对象的特征,

故在实际使用过程中极为不便,所以便为这8种基本数据类型提供了对应的包装类Number,包装类负责把基本类型数据转换为对象。

而它位于java.lang包中,故不需要进行"导包"。

 除了int和char外,其余的包装类都是数据类型首字母大写。

包装类有以下特点:

  1. 所有包装类都是final类型,不能创建它们的子类
  2. 使用“==”判断相等时,如果两边都是包装类,则会判断双方的引用地址,如果有一方为基本数据类型,则会进行拆箱操作。如果有算术运算也会触发自动拆箱。而使用equals运算时则会进行装箱操作;
  3. 包装类并不是用来取代基本数据类型的,而是在基本数据类型需要用对象表示时使用

 而包装类的主要用途有两种:

a、作为基本数据类型对应的类存在,方便有关对象的操作
b、可以用设定每种基本数据类型的属性大小及使用方法

下面是一些包装类的常用方法:

 其中,前两个方法的作用刚好是相反的,这里就不得不提前面讲的两个概念装箱与拆箱了。

装箱——基本类型转换为包装类的对象

通过调用valueOf方法来实现。

Integer intObject=5;

拆箱——包装类对象转换为基本类型的值

通过调用XXXValue方法来实现。

int intValue = intObject;

在这些包装类中,对于初学者来说,Integer是使用次数最多的,下面我们介绍一下它的一些常用属性。

我在做一些DP(动态规划)和深度优先搜索(DFS)问题的时候,常常要对数据进行比较,这时我们就需要对数据进行初始化,但我们所给的值在实际运用中可能与题中的数据相同,为了避免这种情况,我们就可以用MAX_VALUEMin_VALUE将其分别初始化为整型的最大值或最小值。

具体的使用方法如下:

int n=Integer.MAX_VALUE;
System.out.println(n);

int m=Integer.MIN_VALUE;
System.out.println(m);

 除此之外,Integer还有一些常用方法:

返回值类型方法声明功能描述
bytebyteValue( )返回整数的字节表示形式
shortshortValue( )返回整数的short表示形式
intintValue( )返回整型的int表示形式
longlongValue( )返回整数的long表示形式
static intparseInt( String s)返回字符串的整数表示形式

以上就是本节的全部内容了,希望各位喜欢!

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

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

相关文章

STM32+EC20实现4G无线通信

EC20是一款集成度非常高的4G无线通信模块,支持多种常见通信频段,能满足几乎所有的M2M(MachinetoMachine)应用需求。模块支持TCP/UDP/FTP等一众网络协议,内置多星座高精度定位GNSS接收机,快速提供准确的经纬度信息,UART…

vscode java环境扩展

下载安装jdk: Java Downloads | Oracle 下载安装maven: Maven – Download Apache Maven windows系统选择 Binary zip archive maven目录中的conf文件中有一个settins.xml文件 镜像&#xff08;mirrors&#xff09;二选一 <mirror><id>nexus-aliyun</…

影视动画设计有些SCI期刊推荐? - 易智编译EaseEditing

以下是几本影视动画设计方向的SCI期刊&#xff1a; ACM Transactions on Graphics: 该期刊是ACM&#xff08;Association for Computing Machinery&#xff0c;美国计算机协会&#xff09;下的一个子刊&#xff0c;涵盖了计算机图形学和交互技术等领域&#xff0c;也包括了动…

虚拟化技术 — 硬件辅助的虚拟化技术

目录 文章目录 目录硬件辅助的虚拟化技术概览CPU 虚拟化技术基于二进制翻译的全虚拟化技术&#xff08;Full-Virtualization&#xff09;需要改造 GuestOS 的半虚拟化技术&#xff08;Para-Virtualization&#xff09;Intel VT-x 硬件辅助的虚拟化技术&#xff08;Hardware-ass…

智芯Z20K11x串口printf重定向

智芯Z20K11x串口printf重定向 目录 智芯Z20K11x串口printf重定向前言1 串口代码编写2 Keil勾选MicroLIB库结束语 前言 智芯Z20K11x系列是基于ARM CORTEX M0的中低端微控制器&#xff0c;高达256K P FLASH 128K D FLASH&#xff0c;2路CANFD接口&#xff0c;4路UART/LIN接口&a…

综合能源系统中基于电转气和碳捕集系统的热电联产建模与优化研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

HashMap理解

简单介绍 HashMap是双列集合Map接口下的实现类&#xff0c;jdk1.8之前其数据结构是数组链表、jdk1.8之后是数组链表红黑树&#xff0c;是线程不安全的&#xff0c; 原理图&#xff1a; HashMap放值的过程&#xff1a; HashMap先是根据Hash算法算出key的hashcode码值&#xff0…

Vivado之VIO原理及应用

虚拟输入输出&#xff08;Virtual Input Output,VIO)核是一个可定制的IP核&#xff0c;它可用于实时监视和驱动内部FPGA的信号&#xff0c;如图所示。 可以定制VIO的输入和输出端口的数量与宽度&#xff0c;用于和FPGA设计进行连接。由于VIO核与被监视和驱动的设计同步&#xf…

Linux操作系统原理—内核网络协议栈

前言 本文主要记录 Linux 内核网络协议栈的运行原理 数据报文的封装与分用 封装&#xff1a;当应用程序用 TCP 协议传送数据时&#xff0c;数据首先进入内核网络协议栈中&#xff0c;然后逐一通过 TCP/IP 协议族的每层直到被当作一串比特流送入网络。对于每一层而言&#xff…

SwiftUI 使用 UIPageViewController 翻页后出现空白的原因及解决

问题现象 我们 SwiftUI 开发的 App 需要 UIPageViewController 的翻页功能,这可以非常方便的通过桥接 UIKit 到 SwiftUI 来搞定: 不过,观察上图可以发现 App 翻页显示的并不太对:当用户通过右下角的 UIPageControl 触发翻页时没有问题,但当用户直接手动在 UIPageViewCont…

【毕业设计】基于程序化生成和音频检测的生态仿真与3D内容生成系统----音频检测算法设计

(2条消息) 【开发日志】2022.09.02 ZENO----Audio----Beat detection algorithm----Combine Wav&Mp3_minimp3 和 ffmpeg_EndlessDaydream的博客-CSDN博客https://blog.csdn.net/Angelloveyatou/article/details/126670613 4 音频检测算法设计 4.1 节拍检测算法 4.1.1 节…

JavaSE——数组

这篇文章的面向读者为Java初级程序员&#xff0c;也就是刚刚接触到Java这门语言&#xff0c;里面描述的内容主要是数组相关的内容&#xff0c;讲解了最基础的一些数组扩容思路&#xff0c;数组赋值机制&#xff0c;什么是引用地址&#xff0c;什么是基础数据赋值。 Java该章节数…

JAVA入坑之线程

目录 一、&#xff1a;相关概念 1.1中央处理器(CPU&#xff0c;Central Processing Unit) 1.2程序、进程、线程 1.3线程与任务 二、线程的创建&#xff1a; 2.1继承Thread创建线程&#xff1a; 使用Thread子类创建线程的优缺点 2.2实现Runnable接口创建线程&#xff1a;…

【C++STL精讲】list的使用教程及其模拟实现

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f337;list是什么&#xff1f;&#x1f337;list如何使用&#xff1f;&#x1f337;list的模拟实现&#x1f33a;定义list类&#x1f33a;构造函数&#x1f33a;push_back&#x1f33a;pop_back &#x1f337;list迭…

利用STM32实现自平衡机器人功能与方法

将机器人整体开源&#xff0c;同时总结一下机器人搭建过程中遇到的坑和未来的改进方向。在分享的文件里包含了结构设计、程序控制、电路设计以及其他模块相关资料供大家参考。 第一&#xff1a;机器人原理分析 首先来看成品图&#xff1a; 如图所示&#xff0c;该机器人根据陀…

宝塔面板设置虚拟内存Swap降低的方法

宝塔面板可以通过设置Swap/虚拟内存的方式来降低内存使用率和负载&#xff0c;使用宝塔面板的Linux工具箱即可设置虚拟内存&#xff0c;新手站长来详细说下宝塔Linux面板设置Swap/虚拟内存的方法&#xff1a; 宝塔面板设置虚拟内存 设置虚拟内存是通过Linux工具箱&#xff0c…

4.0、Java继承与多态 - 抽象类与抽象方法

4.0、Java继承与多态 - 抽象类与抽象方法 先给大家举个例子 -> 创建一个父类 - 图形类&#xff1b;图形类中有一个计算面积的方法 calculateArea()&#xff1b; 创建三个子类 - 正方形、三角形、圆形 类&#xff1b; 由于我们图形类父类中未明确指明是什么图形&#xff0c…

内网域环境搭建学习

建立的关系就是这样&#xff0c;接下来就开始讲解遇到的困难 虚拟机中我们可以克隆来实现域的搭建 可能会出现这样的问题&#xff0c;原因是你的虚拟机没有关闭&#xff0c;所以才会导致这样的原因&#xff0c;解决方法 将虚拟机打开后&#xff0c;电源 -> 关闭客户机&…

MySQL学习笔记第二天

第03章 基本的SELECT语句 1.SQL概述 1.1 SQL背景知识 1946年&#xff0c;世界上第一台电脑诞生&#xff0c;如今&#xff0c;借由这台电脑发展起来的互联网已经自成江湖。在这几十年里&#xff0c;无数的技术、产业在这片江湖里沉浮&#xff0c;有的方兴未艾&#xff0c;有的…

reactxp搭建,start:windows运行不起来

1、官网 reactxp 2、VSCode和Visual Studio2019 安装VSCode Visual Studio 下载地址 先不用勾选工作负荷&#xff0c;直接安装 3、安装nvm 访问下载地址下载安装nvm&#xff1a; 百度云分享 官网直装链接 nvm的github发行界面下载nvm-setup.exe GitCode镜像下载nvm-setup…