Day20 Java常用类

Day20 Java常用类

一、String类

1、概念: 在Java中,String类是一个非常常用的类,用于表示字符串对象。String类提供了许多方法来操作和处理字符串。

2、String类常用方法:

  1. 获取字符串长度
  • int length(): 返回字符串的长度。
  1. 获取指定位置的字符
  • char charAt(int index): 返回指定索引位置的字符。
  1. 比较字符串
  • boolean equals(Object obj): 比较字符串是否相等。
  • boolean equalsIgnoreCase(String anotherString): 忽略大小写比较字符串是否相等。
  • int compareTo(String anotherString): 按字典顺序比较字符串。
  1. 查找子字符串
  • int indexOf(String str): 返回子字符串第一次出现的位置。
  • int lastIndexOf(String str): 返回子字符串最后一次出现的位置。
  • boolean contains(CharSequence s): 判断字符串是否包含指定的字符序列。
  1. 截取子字符串
  • String substring(int beginIndex): 返回从指定索引开始到字符串末尾的子字符串。
  • String substring(int beginIndex, int endIndex): 返回从指定索引开始到指定索引结束的子字符串。
  1. 替换字符串
  • String replace(char oldChar, char newChar): 替换字符串中的字符。
  • String replace(CharSequence target, CharSequence replacement): 替换字符串中的指定字符序列。
  1. 转换大小写
  • String toLowerCase(): 将字符串转换为小写。
  • String toUpperCase(): 将字符串转换为大写。
  1. 去除空格
  • String trim(): 去除字符串两端的空格。
  1. 拼接字符串
  • String concat(String str): 将指定字符串连接到该字符串的末尾。
  1. 判断字符串是否为空
  • boolean isEmpty(): 判断字符串是否为空。

二、StringBuffer类和StringBuilder类

1、StringBuffer概念:StringBuffer代表可变的字符序列。StringBuffer称为字符串缓冲区,它的工作原理是:预先申请一块内存,存放字符序列,如果字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序列。StringBuffer是可变对象,这个是String最大的不同。

​ StringBuilder概念:StringBuilder与StringBuffer的用法完全一致,唯一的区别是StringBuffer是线程安全的,而StringBuilder不是线程安全的。所以StringBuilder的性能要比StringBuffer要好。单线程推荐使用StringBuilder,多线程使用StringBuffer。

2、 创建StringBuffer类对象:

​ StringBuffer可以理解为一个字符串容器,可以动态的改变容器中的内容。

​ StringBuffer类的常用构造方法:

​ StringBuffer()

​ 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符

​ StringBuffer(String str)

​ 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容

3、StringBuffer类的常用方法:

  1. append(String str)
  • 将指定的字符串追加到当前StringBuffer对象的末尾。
  1. insert(int offset, String str)
  • 在指定位置插入指定的字符串。
  1. delete(int start, int end)
  • 删除从指定位置开始到结束位置之间的字符序列。
  1. replace(int start, int end, String str)
  • 用指定的字符串替换从指定起始位置到结束位置之间的字符。
  1. substring(int start) / substring(int start, int end)
  • 返回从指定位置开始到结束位置之间的子字符串。
  1. reverse()
  • 反转当前StringBuffer对象中的字符序列。
  1. length()
  • 返回当前StringBuffer对象的长度(字符数)。
  1. indexOf(String str) / lastIndexOf(String str)
  • 返回指定字符串在StringBuffer对象中第一次/最后一次出现的位置。
  1. charAt(int index)
  • 返回指定索引位置的字符。
  1. setCharAt(int index, char ch)
  • 将指定索引位置的字符设置为指定的字符。
  1. substring(int start, int end)
  • 返回从指定起始位置到结束位置之间的子字符串。
  1. toString()
  • StringBuffer对象转换为一个普通的字符串。

思考: 为什么需要StringBuilder及StringBuffer类 ?

:字符串的不变性:

一个String对象的长度是固定的,不能改变它的内容,或者是附加新的字符到String对象中。

您也许会使用+来串联字符串以达到附加新字符或字符串的目的,但+会产生一个新的String对象。

String s1 = “abc”;

String s2 = “abc”;

String s3 = s1+s2;

如果程序对这种附加字符串的需求很频繁,系统会频繁在内存中创建String对象,造成性能下降。所以并不建议使用+来进行频繁的字符串串联。应该使用java.lang.StringBuffer类。

三、正则表达式

1、概念: 正则表达式是一种强大的文本匹配工具,用于在字符串中搜索和匹配特定模式的文本。在Java中,正则表达式通常通过java.util.regex包来使用。

2、理解:用来描述或者匹配一系列符合某个语句规则的字符串

3、用法:

  1. .:匹配除换行符以外的任意字符。
  2. ^:匹配字符串的开始。
  3. $:匹配字符串的结束。
  4. \*:匹配前面的元素零次或多次。
  5. +:匹配前面的元素一次或多次。
  6. ?:匹配前面的元素零次或一次。
  7. \d:匹配数字字符。
  8. \w:匹配字母、数字或下划线字符。
  9. \s:匹配空白字符。
  10. [ ]:匹配括号内的任意一个字符。
  11. [^ ]:匹配不在括号内的任意一个字符。
  12. {n}:匹配前面的元素恰好n次。
  13. {n,}:匹配前面的元素至少n次。
  14. {n,m}:匹配前面的元素至少n次,最多m次。

四、日期时间类

在Java中,有多种用于处理日期和时间的类,其中一些主要的类包括:

  1. java.util.Date
    • Date类用于表示特定的时间点,但它在Java 8及以后被标记为过时,不推荐在新代码中使用。
  2. java.util.Calendar
    • Calendar类是一个抽象类,用于对日期和时间进行操作,但使用起来比较繁琐。
  3. java.util.GregorianCalendar
    • GregorianCalendar类是Calendar类的具体实现,提供了处理日期和时间的方法。
  4. java.time.LocalDate
    • LocalDate类表示一个不带时区的日期,可以用于处理年、月、日信息。
  5. java.time.LocalTime
    • LocalTime类表示一个不带时区的时间,可以用于处理时、分、秒信息。
  6. java.time.LocalDateTime
    • LocalDateTime类表示一个不带时区的日期和时间。
  7. java.time.ZonedDateTime
    • ZonedDateTime类表示带时区的日期和时间。
  8. java.time.format.DateTimeFormatter
    • DateTimeFormatter类用于日期时间的格式化和解析。
  9. java.time.Durationjava.time.Period
    • Duration类表示时间间隔,Period类表示日期间隔。

五、Math类

1、概念: 在Java中,java.lang.Math类提供了许多用于执行常见数学运算的静态方法

2、注意:Math 类提供了一序列基本数学运算和几何函数的方法。

​ Math类是类,并且它的所有成员变量和成员方法都是静态的。

3、用法:

  1. 数学函数
  • abs(x):返回参数的绝对值。
  • ceil(x):返回大于或等于参数的最小整数。
  • floor(x):返回小于或等于参数的最大整数。
  • round(x):将参数四舍五入为最接近的整数。
  • max(x, y):返回两个参数中的较大值。
  • min(x, y):返回两个参数中的较小值。
  • sqrt(x):返回参数的平方根。
  • cbrt(x):返回参数的立方根。
  • pow(x, y):返回x的y次幂。
  • exp(x):返回自然对数的底e的x次幂。
  • log(x):返回参数的自然对数(以e为底)。
  • log10(x):返回参数的以10为底的对数。
  • sin(x)cos(x)tan(x):三角函数,分别返回参数的正弦、余弦和正切值。
  • asin(x)acos(x)atan(x):反三角函数,分别返回参数的反正弦、反余弦和反正切值。
  1. 常量
  • Math.PI:表示圆周率π的常量。
  • Math.E:表示自然对数的底e的常量。

六、Random类

1、概念: 在Java中,java.util.Random类用于生成伪随机数

2、创建Random类对象:

​ 此类用于生成随机数:

​ Random(); 创建一个新的随机数生成器Random(long seed);种子数(重点理解工作原理,什么是伪随机数)

3、用法:

  1. 构造方法
    • Random():使用默认种子创建一个新的Random对象。
    • Random(long seed):使用指定种子创建一个新的Random对象,相同种子会生成相同的随机数序列。
  2. 生成随机数
    • nextInt():返回一个随机的32位整数。
    • nextInt(int bound):返回一个大于等于0且小于bound的随机整数。
    • nextLong():返回一个随机的64位整数。
    • nextDouble():返回一个大于等于0.0且小于1.0的随机双精度浮点数。
    • nextBoolean():返回一个随机的布尔值。
  3. 设置种子
    • setSeed(long seed):重新设置随机数生成器的种子,可以影响生成的随机数序列。
  4. 生成随机字节流
    • nextBytes(byte[] bytes):生成随机字节并将其放入指定的字节数组中。

七、 System类

1、概念: 在Java中,java.lang.System类提供了访问系统相关信息和操作系统资源的静态方法。

2、注意:

Java程序的运行平台:

​ 1、 System类提供了一些静态属性和方法,允许通过类名直接调用。

​ 2、 System类提供了代表标准输入、标准输出、错误输出的类属性。

​ 3、 System类提供了一些静态方法用于访问环境变量、系统属性的方法。

3、常用方法及功能:

  1. 标准输入输出
  • System.out:标准输出流,通常用于输出信息到控制台。
  • System.err:标准错误输出流,用于输出错误信息到控制台。
  • System.in:标准输入流,用于从控制台读取输入。
  1. 系统属性
  • getProperty(String key):获取指定系统属性的值。
  • setProperty(String key, String value):设置指定系统属性的值。
  1. 环境变量
  • getenv(String name):获取指定环境变量的值。
  1. 数组复制
  • arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将一个数组的指定范围复制到另一个数组的指定位置。
  1. 退出程序
  • exit(int status):终止当前运行的Java虚拟机,参数为退出状态码。
  1. 垃圾回收
  • gc():运行垃圾回收器。
  1. 获取当前时间
  • currentTimeMillis():返回当前时间与1970年1月1日UTC之间的毫秒数差值,常用于性能测试和时间计算。
  1. 加载动态链接库
  • loadLibrary(String libname):加载指定名称的本机库。

八、 Runtime类

1、概念: 在Java中,java.lang.Runtime类允许应用程序与运行时环境进行交互,执行系统级操作,如执行外部进程、获取系统信息等 。

2、注意:Runtime代表Java程序的运行时环境,可以通过 getRuntime 方法获取当前运行时。

​ 应用程序不能自己创建Runtime对象,可以R通过Runtime的静态方法getRuntime()获得Runtime对象。

Runtime类可以访问jvm的相关信息,如处理器数量,内存信息等

3、用法:

  1. 获取Runtime对象
  • Runtime.getRuntime():返回当前应用程序的Runtime对象,用于与运行时环境交互。
  1. 执行外部进程
  • exec(String command):在单独的进程中执行指定的命令。
  • exec(String[] cmdarray):在单独的进程中执行指定的命令和参数。
  • exec(String command, String[] envp, File dir):在指定环境变量和工作目录下执行指定命令。
  1. 获取系统信息
  • totalMemory():返回JVM的总内存量。
  • freeMemory():返回JVM的空闲内存量。
  • availableProcessors():返回可用的处理器数量。
  • maxMemory():返回JVM的最大内存量。
  1. 垃圾回收
  • gc():运行垃圾回收器。
  1. 关闭虚拟机
  • exit(int status):终止当前运行的Java虚拟机,参数为退出状态码。
  1. 加载动态链接库
  • load(String filename):加载指定名称的本机库。
  1. 执行Finalization
  • runFinalization():运行所有对象的finalize方法。

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

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

相关文章

C#使用ASP.NET Core Razor Pages构建网站(一)

一、了解Web开发 Web开发就是使用HTTP(超文本传输协议)进行开发。 HTTP HTTP(Hypertext Transfer Protocol)是一种用于传输超文本和相关数据的应用层协议。它是Web上数据通信的基础,被用于从Web服务器传输到客户端浏…

如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?

如何让标题1和标题2不一样&#xff1f; 修改根目录下的App.vue&#xff08;核心代码如下&#xff09; <script>export default {onLaunch() {// 监听各种跳转----------------------------------------[navigateTo, redirectTo, reLaunch, switchTab, navigateBack, ].…

【JSON2WEB】10 基于 Amis 做个登录页面login.html

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…

《云计算:数字时代的引擎》

在数字化时代&#xff0c;云计算技术以其强大的计算能力和灵活的应用方式&#xff0c;成为推动各行各业发展的引擎。本文将围绕云计算的技术进展、技术原理、行业应用案例、面临的挑战与机遇以及未来趋势进行详细探讨。 云计算的技术进展 云计算的技术进展涵盖了多个方面&…

AUTOSAR XML(通常称为ARXML)

AUTOSAR XML(通常称为ARXML) ARXML是一种基于XML(可扩展标记语言)的文件格式,用于在AUTOSAR(汽车开放系统架构)标准中描述汽车软件系统的各种元素。 ARXML文件包含软件组件、接口、数据类型和配置参数等信息,这些信息可以用于描述系统的功能和结构。ARXML文件的特点是…

Session、Cookie 和 Token的保存

在用户登录过程中&#xff0c;Session、Cookie 和 Token 都是用来管理用户状态和身份验证的重要机制&#xff0c;它们在保存和交互方面有所不同。 1. Session 的保存&#xff1a; 保存位置&#xff1a; Session 数据通常保存在服务器端的内存中或者持久化存储&#xff08;如数…

ADO.NET封装个单例异步类类

.NET兼职社区 防止重复造轮子。可以直接使用 using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration;namespace Wpf.Personne…

python(django)之产品后台管理功能实现

1、添加新项目 在命令行输入以下代码 python manage.py startapp prroduct 2、添加路径和代码结构 在新项目目录下admin.py中加入以代码 from .models import Product class ProductAdmin(admin.ModelAdmin):list_display [product_name, product_desc,producter,created_…

基于Springboot的闲置图书分享(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的闲置图书分享&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

Linux服务器导出CPU和内存使用情况

Linux服务器默认存储一个月的CPU和内存记录&#xff0c;所在目录&#xff1a;/var/log/sa/&#xff0c;如下图所示 在此用sar命令来执行 sar是一个比较全面的性能监控工具&#xff0c;包括cpu、内存、磁盘和网络等信息&#xff0c;并且该命令会每10分钟自动保存一次硬件资源使用…

odoo扩展导出pdf功能

1. 说明: odoo原生导出功能扩展导出pdf文件功能, 如有额外需求请联系博主 2. 版本说明: odoo版本: odoo15 其他odoo版本未进行测试,如有需要自行测试 3. 地址: 该补丁代码放在github仓库, 地址: https://github.com/YSL-Alpaca/odoo_export_pdf 4. 改补丁依赖于第三方软件wkh…

ubuntu20.04搭建nginx rtmp视频服务到指定位置解决权限不足

1.安装依赖 apt-get install build-essential libpcre3 libpcre3-dev libssl-dev2.建一个目录 mldir rtmp_nginx 3.源码下载 wget http://nginx.org/download/nginx-1.21.6.tar.gz wget https://github.com/arut/nginx-rtmp-module/archive/master.zip4.解压缩 tar -xf ng…

JPA使用CriteriaQuery实现动态分组查询

JPA中实现动态分组查询&#xff0c;即输入几个筛选参数就按照几个参数进行分组查询&#xff0c;但是不知道输入的是几个参数&#xff0c;要实现动态的分组查询&#xff0c;用CriteriaQuery实现。 Repository&#xff1a; Repository public interface TestCostRepository ext…

IBM SPSS Statistics for Mac v27.0.1中文激活版

IBM SPSS Statistics for Mac是一款功能强大的统计分析软件&#xff0c;专为Mac用户设计&#xff0c;用于数据分析和决策支持。该软件拥有直观易用的界面和丰富多样的统计工具&#xff0c;使得用户可以轻松进行数据处理、分析和解释。 软件下载&#xff1a;IBM SPSS Statistics…

《适配器模式(极简c++)》

本文章属于专栏《设计模式&#xff08;极简c版&#xff09;》 继续上一篇《原型模式&#xff08;极简c&#xff09;》。本章简要说明适配器模式。本文分为模式说明、本质思想、实践建议、代码示例四个部分。 模式说明 方案&#xff1a; 适配器模式&#xff0c;允许接口不兼容…

sentinel热点参数流控

1、概念 热点参数限流会统计传入参数中的热点参数&#xff0c;并根据配置的限流阈值与模式&#xff0c;对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制&#xff0c;仅对包含热点参数的资源调用生效。 2、示例 2.1、目的 对于如下的/get接口的参…

WebSocket 使用示例,后台为nodejs

效果图 页面代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>WebSocket Client</title&g…

stm32定时器

定时器介绍 软件定时 缺点&#xff1a;不精确、占用 CPU 资源 还记得以前在开发C51的时候&#xff0c;经常使用stc助手生成的定时代码&#xff0c;形如&#xff1a; void Delay500ms() //11.0592MHz {unsigned char i, j, k;_nop_();i 4;j 129;k 119;do{do{while (--k);} …

Macos docker安装达梦数据库

官网下载达梦docker镜像安装包 导入安装包 docker load -i /Users/yeungsinsin/Downloads/dm8_20230808_rev197096_x86_rh6_64_single.tar查看导入的镜像 docker images4. docker run 启动容器 docker run -d -p 30236:5236 --restartalways --name dm8 --privilegedtrue -e…

基于深度学习的心律异常分类系统设计——算法设计

基于深度学习的心律异常分类系统——算法设计 第一章 研究背景算法流程本文研究内容 第二章 心电信号分类理论基础心电信号产生机理MIT-BIH 心律失常数据库 第三章 心电信号预处理心电信号噪声来源与特点基线漂移工频干扰肌电干扰 心电信号读取与加噪基于小波阈值去噪技术的应用…