Java(api中常用类,包括Object类,Arrays类,String类,基本数据类型包装类)

目录

一.api

1.api介绍:

二.Object类

1.toString方法

2.equals方法

1.什么是equals方法

2.Object类向我们提供的equals方法

​编辑

3.equals方法与"=="的区别

三.Arrays类

1.toString方法

2.sort方法

3.copyOf方法

4.fill方法

5.binarySearch方法

四.基本数据类型包装类

1.Integer

1>.装箱

2>.拆箱

五.String类

1.String类介绍

2.String类中常用方法

3.字符串常量池


一.api

1.api介绍:

java语言中已经把很多功能实现了封装成不同的类和接口,java官方提供了一个文档,为类和接口提供说明,这个文档就叫api文档

api就是java官方给开发人员提供的java中类的使用说明书

二.Object类

Object类是所有类的父类,我们常称Object类是万类之祖

1.toString方法

toString方法会返回一个对象的字符串表现形式,输出的是一个字符串

我们所有没有继承的类都会默认继承Object类,用类名.toString就可以调用toString方法

public static void main(String[] arg){toString t = new toString();t.setAge(10);t.setName("王五");System.out.println(t.toString());
}

但是运行结果却和我们预期不同,运行结果如下:

这是为什么呢,toString方法应该将我们类中的信息以字符串的形式向控制台输出才对,为什么是类的在包中的位置和地址呢,让我们看看源码

从Object中toString方法的源码我们可以看出,它和我们的预期并不相符,只是输出了一个地址

,所以我们想要将类中的信息表示出来就要对toString方法进行重写

//类中的属性private int age;private String name;
@Overridepublic String toString() {return "toString{" +"age=" + age +", name='" + name + '\'' +'}';

这样就得到了我们想要的功能

2.equals方法

1.什么是equals方法

equals方法用于比较两个对象中的信息是否相等

2.Object类向我们提供的equals方法

Object类向我们提供的equals方法是通过==号来判断两个对象地址是否相同,这并不符合我们的要求,所以我们通常会对equals方法进行重写,源码如下:

3.equals方法与"=="的区别

==:如果两边是基本数据类型,==用来判断元素值是否相同,当==两边是对象时,==判断的是两边对象地址是否相同

equals:equals用来判断两个对象中的内容是否相同,但Object类向我们提供的equals方法不能实现,我们通常会进行重写

三.Arrays类

Arrays类在java.lang包中

1.toString方法

将数组中的元素以字符串的形式向控制台输出

public static void main(String[] args) {int[] a = {1,2,3,4,5};System.out.println(Arrays.toString(a));
}
运行结果如下:[1, 2, 3, 4, 5]

2.sort方法

冒泡排序,通过两两交换实现将数组升序排列

public static void main(String[] args) {int[] a = {1,2,5,3,4};Arrays.sort(a);System.out.println(Arrays.toString(a));
}
运行结果如下:[1,2,3,4,5]

3.copyOf方法

将指定数组赋值给另一个指定长度的新数组,常用于数组扩容

public static void main(String[] args) {int[] a = {1,2,5,3,4};int[] b = Arrays.copyOf(a,10);System.out.println(Arrays.toString(b));
}
运行结果如下:[1, 2, 5, 3, 4, 0, 0, 0, 0, 0]

4.fill方法

将指定的值赋给数组

public static void main(String[] args) {int[] a = {1,2,5,3,4};Arrays.fill(a,10);System.out.println(Arrays.toString(a));
}
运行结果如下:[10, 10, 10, 10, 10]

5.binarySearch方法

二分查找算法,通过每次去除一般的元素,高效进行查找,前提必须是这个数组是有序的(升序或者降序)

public static void main(String[] args) {int[] a = {1,2,3,5,11,12,13,17,18};System.out.println(Arrays.binarySearch(a, 17));
}
运行结果如下:7

四.基本数据类型包装类

每一个基本数据类型都有一个自己的包装类

1.Boolean:

布尔类将对象中的基元类型 boolean的值包 boolean

2.Long:

Long类包装一个对象中的基本类型 long的值。

3.Integer:

Integer类包装一个对象中的原始类型 int的值。

4.Short:

Short类在一个对象中包含一个基本类型 short的值。

5.Characte:

Character类包装一个对象中的基本类型 char的值。

6.Byte:

Byte类在一个对象中包含一个原始类型 byte的值。

7.Double:

Double类包装一个对象中的基本类型 double的值。

8.Float:

Float类在一个对象中包含一个基本类型 float的值。

因为基本数据类型不满足我们对面向对象语言特性的使用,所以产生了基本数据类型包装类,每一个基本数据类型包装类中都有一个Value属性,存储基本数据类型的值

1.Integer

Public static void mian(String[] arg){//创建对象Integer i1 = new Integer(20);//包装成一个int的基本类型Integer i2 = new Integer("10");//包装成一个String类型//与其他类型的转换int a = i1.intValue();//将值取出来 转化为基本数据类型
}

1>.装箱

将基本数据类型赋值给基本数据类型包装类这一操作被称为装箱

Public static void main(String[] arg){Integer i1 = new Integer();Integer i1 = Integer.valueOf(10)//手动装箱Integer i2 = 10;//自动装箱,它默认会调用Integer中的ValueOf方法
}​​

自动装箱时需要注意,valueOf方法中整数值在-128到127之间返回的是Integer类中的数组,所以在这个范围内值相同,地址也就相同,在这个地址需要比较的话用equa方法。

不在这个范围之内,每次都是创建一个新的对象

2>.拆箱

将基本数据类型从基本数据类型包装类的对象中取出值的操作我们称为拆箱

​
Public static void main(String[] arg){Integer i1 = new Integer(10);int i = i1;//自动拆箱,默认调用Intvalue方法int i1 = i1.Intvalue();//手动拆箱
}​

五.String类

1.String类介绍

1.String类是java中专门用于处理字符串的类

2.String类是1被final修饰的,其他类不能继承
3.String类中,有一个char数组用来存储字符串的内容
4.字符串的对象一旦创建后就不能改变了(因为char数组是被final修饰的),一旦值改变了就会创建一个新的字符串对象

2.String类中常用方法

1.boolean equals//比较两个字符串内容是否一致
2.boolean equalsIgnoreCase//比较两个对象内容是否相等,忽略大小写
3.boolean contains//判断是否包含一个指定的子串
4.boolean isEmpty//判断字符串的值是否是空串 是空串返回true
5.boolean startsWith//判断字符串是否以某个字符串开头
6.boolean endsWith//判断字符串是否以某个字符串结尾
7.length//获取字符串长度
8.charAt//获取字符串中指定位置的字符
9.indexOf(String str)//获取指定字符在字符串中首次出现的位置 从前向后
10.indexOf(String str int fromIndex)//从指定位置开始查找,获取指定字符首次出现的位置
11.lastIndexOf(string str)//从后向前找
l12.astIndexOf(string str,int fromIndex)//上一个方法的重载
13.substring//从指定位置开始截取到末尾,截取后返回的都是一个新的字符串对象
14.substring//从指定位置开始截取到指定位置结束,不包含结束位置,截取后返回的都是一个新的字符串对象
15.valueOf//用于把各种数据类型转化为字符串,在实际开发过程中toString用的较少,String.valueOf用的比较多,因为当数据为null时,toString会报错,但valueOf不会报错,会把null输出出来
16.toLowerCase//将字符串中全部字母转为小写字母
17.toUpperCase//将字符串中全部字母转为大写字母
18.concat//用于连接两个字符串
19.trim//用于消除字符串最前面和最后面的空格
20.split("分隔符")//用指定的字符将字符串进行拆分成字符数组
21.replace//用一个指定的字符串把字符串中已有的字符串替换
22.toCharArray//将字符串转化为字符数组
23.getByte//将字符串转化为byte数组

3.字符串常量池

Public static void main(String[] arg){String str1 = new String();String str2 = {"ABC"};
}

str1的是直接在堆区创建对象。

str2是现在字符串常量池中寻找是否有相同的字符串常量,如果有str2指向那个地址,如果没有,在字符串常量池中会创建"ABC"对象,然后str2指向那个地址

字符串常量池就是在JVM缓存区中的方法区中的一块空间,用于存储字符串常量,例如下图:

public static void main(String[] arg){String str1 = "ABC"String str2 = "ABC"String str3 = new String("ABC");System.out.println(str1 == str2);//trueSystem.out.println(str1 == str3);//falseSystem.out.println(str1.equals(str3));//true
}

因为字符串常量区的存在,在str1初始化完,"ABC"已经在字符串常量区创建了对象,str2因为值与"ABC"相同,所以str1与str2指向同一地址,但str3是在堆区直接创建对象,==号比较两对象地址,所以str1与str3不相等,但是str1与str3值相同,所以用equals方法比较是true

本篇文章到此结束,谢谢大家的关注

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

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

相关文章

物联网行业通识:从入门到深度解析

物联网行业通识:从入门到深度解析 (图1:物联网生态示意图) 一、引言:万物互联时代的到来 根据IDC最新预测,到2025年全球物联网设备连接数将突破410亿,市场规模达1.1万亿美元。物联网&#xff…

python语言进阶之函数

目录 前言 函数的创建和调用 函数创建 调用函数 参数传递 形式参数和实际参数 位置参数 数量必须与定义时一致 位置必须与定义时一致 关键字参数 为参数设置默认值 可变参数 **parameter 返回值 变量的作用域 局部变量 全局变量 匿名函数 前言 提到函数&…

Qt信号槽调用出错:Qt: Dead lock detected while activating a BlockingQueuedConnection

目录 1.现象和原因分析 2. 总结 1.现象和原因分析 就在最近的开发过程中,程序一运行在控制台就打印: Qt: Dead lock detected while activating a BlockingQueuedConnection: 咋一看,怎么出现死锁了呢?仔细看下…

Linux安装Minio

1、下载rpm包 2、rpm 安装 rpm -ivh xx.rpm3、通过查看minion状态,查看其配置文件位置 systemctl start minio可以根据情况自定义修改配置文件内容,这里暂时不做修改 4、创建数据文件和日志文件,一般在/usr/local/ 5、编写启动脚本 #!/bi…

计算四个锚点TOA定位中GDOP的详细步骤和MATLAB例程

该MATLAB代码演示了在三维空间中,使用四个锚点的TOA(到达时间)定位技术计算几何精度衰减因子(GDOP)的过程。如需帮助,或有导航、定位滤波相关的代码定制需求,请联系作者 文章目录 DOP计算原理MATLAB例程运行结果示例关键点说明扩展方向另有文章: 多锚点Wi-Fi定位和基站…

基于Spring Boot+Vue的宠物服务管理系统(源码+文档)

项目简介 宠物服务管理系统实现了以下功能: 基于Spring BootVue的宠物服务管理系统的主要使用者分为用户管理模块,由于系统运行在互联网络中,一些游客或者病毒恶意进行注册,产生大量的垃圾用户信息,管理员可以对这些…

jenkins服务启动-排错

服务状态为active (exited) 且进程不在 查看/etc/rc.d/init.d/jenkins配置 获取配置参数 [rootfy-jenkins-prod jenkins]# cat /etc/rc.d/init.d/jenkins | grep -v #JENKINS_WAR"/usr/lib/jenkins/jenkins.war" test -r "$JENKINS_WAR" || { echo "…

vue3 分析总结响应式丢失问题原因(二)

上一篇文件理解了响应式对象应用原理了。公式: 响应式对象 代理 触发器。 但是实际使用结果和预期还是不一致。具体现象是数据修改了,但是并没有实现响应式更新界面。即出现了响应式丢失现象。 一、什么情况下对象的响应式会丢失? 一般网…

【网络】协议与网络版计算器

协议与网络版计算器 文章目录 1.协议的概念 1.1序列化与反序列化 2.网络版计算器 2.1封装套接字2.2协议定制 2.2.1Jsoncpp2.2.2报文处理 2.3会话层:TcpServer2.4应用层:Calculate2.5表示层:Service2.6应用层、表示层和会话层->应用层 …

C# 添加图标

一、前言 为应用程序添加图标是优化用户界面、提升应用辨识度的重要操作。合适的图标能帮助用户快速识别和区分不同应用,增强应用的易用性和专业性。 本指南旨在为你提供详细、易懂的步骤,教你如何为应用程序的窗体添加图标。从图标素材的获取到具体的…

使用新版本golang项目中goyacc依赖问题的处理

背景 最近项目使用中有用到go mod 和 goyacc工具。goyacc涉及到编译原理的词法分析,文法分析等功能,可以用来生成基于golang的语法分析文件。本期是记录一个使用中遇到的依赖相关的问题。因为用到goyacc,需要生成goyacc的可执行文件。 而项目…

WPS的AI助手进化跟踪(灵犀+插件)

Ver V0.0 250216: 如何给WPS安装插件用以支持其他大模型LLM V0.1 250217: WPS的灵犀AI现在是DeepSeek R1(可能是全参数671B) 前言 WPS也有内置的AI,叫灵犀,之前应是自已的LLM模型,只能说是属于“能用,有好过无”,所…

计算机视觉:卷积神经网络(CNN)基本概念(一)

第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络 一、引言 卷积神经网络&…

rabbitmq详解

有需要的直接看狂神的视频,讲得很好 简介 RabbitMQ 是一个开源的 消息队列中间件,实现了 AMQP(Advanced Message Queuing Protocol,先进消息队列协议)。它允许 应用程序、服务、系统之间异步地传递消息,并…

moveable 一个可实现前端海报编辑器的 js 库

目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了,海报编辑器换方案了,如果后面用别的再更。 缘由-胡扯 导火…

计算机视觉中图像的基础认知

第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络 一、图像/视频的基本属性…

java八股文-mysql

1. 索引 1.1 什么是索引 索引(index)是帮助Mysql高效获取数据的数据结构(有序).提高数据的检索效率,降低数据库的IO成本(不需要全表扫描).通过索引列对数据进行排序,降低数据排序成本,降低了CPU的消耗. 1.2 mysql索引使用的B树? 1. 没有使用二叉树,最坏情况o&…

Next.js【详解】CSS 样式方案

全局样式 Global CSS 默认已创建,即 src\app\globals.css,可根据需要修改 默认在全局布局中导入 src\app\layout.tsx import "./globals.css";组件样式 CSS Modules 新建文件 src\app\test\styles.module.css .red {color: red;}导入目标页面…

彻底解决Idea控制台中文乱码问题

中文乱码我相信每一个程序员都会遇到这种问题。 但有时候我们按照网上教程去设置,确实编码好了,但是有时候按照教程来却没能达到我们的预期。 在此之前我将所有编码都设置成了UTF-8,文件编码,项目编码,尝试(最终不需要…

[实现Rpc] 客户端划分 | 框架设计 | common类的实现

目录 3. 客户端模块划分 3.1 Network模块 3.2 Protocol模块 3.3 Dispatcher模块 3.4 Requestor模块 3.5 RpcCaller模块 3.6 Publish-Subscribe模块 3.7 Registry-Discovery模块 3.8 Client模块 4. 框架设计 4.1 抽象层 4.2 具象层 4.3 业务层 ⭕4.4 整体设计框架…