Java常用类
基本数据类型包装类
Java是一种纯面向对象语言,但是java中有8种基本数据类型,破坏了java为纯面向对象的特征。为了承诺在java中一切皆对象,java又给每种基本数据类型分别匹配了一个类,这个类我们称之为包装类/封装类。每个基本数据类型都有一个与之匹配的包装类。
八大基本数据包装类

int的包装类的写法为Integer,char的包装类的写法是Character。其余基本数据类型的包装类均是基本类型的首字母大写。
包装类的层次结构

包装类中常用的方法
装箱:把基本数据类型包装为对应的包装类对象 10
Integer i1 = new Integer(10); // 利用构造方法
Integer i2 = Integer.valueOf(10); //利用包装类中的静态方法
拆箱:把包装类对象转换为对应的基本数据类型。
int i3= i1.intValue(); //返回包装类对象i1对应的基本数据
自动装箱和自动拆箱,简化了对包装类的操作。
字符串相关的类
String类
String是不可变类, 即一旦一个String对象被创建, 包含在这个对象中的字符序列是不可改变的, 直至该对象被销毁。String类是final类,不能有子类。
获得新字符串的常用方法
- String concat(String str) 在原有字符串的尾部添加参数字符串,返回一个新的字符串(总是堆内存中的对象),如果str的长度为0,则返回原字符串。str不能为空。
- String subString(int beginIndex) 获得从beginIndex开始到结束的子字符串。( 包括beginIndex位置的字符)
- public String toLowerCase() 把字符串中的英文字符全部转换为小写字符,返回值为装换后的新的字符串。
- public String toUpperCase() 把字符串中的英文字符全部转换为大写字符,返回值为装换后的新的字符串。
- public String trim() 把字符串中的首尾空白字符去掉
- public String replace(CharSequence target, CharSequence replacement) 使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串
- public String replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
- public String replaceAll(String regex, String replacement) 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
public replaceFirst(String regex, String replacement) 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
字符串比较
1、”==”表示判断该两个字符串是否为同一对象,即在内存中的地址是否一样。如果一样则返回true 否则返回false; 和我们通常的是否为同一对象的是一样的。
2、boolean equals(Object anObject) 将此字符串与指定的对象比较。注意此时比较的是内容是否相等(字符串类对此方法进行了覆写)。
3、boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。
例如:”abc”. equalsIgnoreCase(“AbC”); // true
4、int compareTo(String value) 按字典顺序比较两个字符串。如果两个字符串相等,则返回0;如果字符串在参数值之前,则返回值小于 0;如果字符串在参数值之后,则返回值大于 0
5、int compareToIgnoreCase(String val) 按字典顺序比较两个字符串,不考虑大小写
6、boolean startsWith(String value) 检查一个字符串是否以参数字符串开始。
7、boolean endsWith(String value) 检查一个字符串是否以参数个字符串结束。
字符串查找

其他数据类型转换字符串
String类中定义了一些静态的重载方法
- public static String valueOf(…)可以将基本类型数据、Object类型转换为字符串。
- public static String valueOf(double d) 把double类型数据转成字符串
- public static String valueOf(Object obj) 调用obj的toString()方法得到它的字符串表示形式。
StringBuffer类
StringBuffer代表可变的字符序列。StringBuffer称为字符串缓冲区,它的工作原理是:预先申请一块内存,存放字符序列,如果字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序列。StringBuffer是可变对象,这个是String最大的不同。
创建StringBuffer对象
StringBuffer可以理解为一个字符串容器,可以动态的改变容器中的内容。
StringBuffer类的常用构造方法:
- StringBuffer():构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符
- StringBuffer(String str):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容
StringBuffer常用方法

StringBuilder类
StringBuilder与StringBuffer的用法完全一致,唯一的区别是StringBuffer是线程安全的,而StringBuilder不是线程安全的。所以StringBuilder的性能要比StringBuffer要好。单线程推荐使用StringBuilder,多线程使用StringBuffer。
Pattern类 及 Matcher
- Pattern:代表正则表达式的匹配模式
- Matcher:提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持
验证QQ邮箱
String str = "1234567891@qq.com";String regex = "\\d{5,11}@qq\\.com";//boolean matches = str.matches(regex);boolean matches = Pattern.matches(regex , str);System.out.println(matches);
分隔路径
String str = "C:\\data\\log\\log.txt";String regex = ":?\\\\";//String[] split = str.split(regex);Pattern pattern = Pattern.compile(regex);//创建匹配模式对象String[] split = pattern.split(str);for (String s : split) {System.out.println(s);}
Pattern+Matcher 找到前端代码中的图片路径
String str = "<img src='hhy/aaa.jpg'/><div><div/> <input type='image' src='submit.gif' /><img src='bbb.jpg'/>";String regex = "<img\\b[^>]*\\bsrc\\b\\s*=\\s*('|\")?([^'\"\n\r\f>]+(\\.jpg|\\.bmp|\\.eps|\\.gif|\\.mif|\\.miff|\\.png|\\.tif|\\.tiff|\\.svg|\\.wmf|\\.jpe|\\.jpeg|\\.dib|\\.ico|\\.tga|\\.cut|\\.pic)\\b)[^>]*>";Pattern pattern = Pattern.compile(regex);//创建匹配模式对象Matcher matcher = pattern.matcher(str);//获取匹配结果System.out.println("在字符串中是否整个匹配:" + matcher.matches());System.out.println("在字符串中是否开头就匹配:" + matcher.lookingAt());System.out.println("在字符串中是否有包含匹配:" + matcher.find());while(matcher.find()){System.out.println(matcher.group()); //matcher.group(2)-->获取正则表达式里第二个括号(组)里的内容System.out.print("start:"+matcher.start()); System.out.println(" end:"+matcher.end()); }
总结:Pattern与Matcher一起合作,Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持,单独用Pattern只能使用Pattern.matches(String regex,CharSequence input)一种最基础最简单的匹配。
日期时间类
Date类
java.util.Date类表示特定的瞬间,精确到毫秒。
SimpleDateFormat类
将显示的日期信息格式化
Calendar类
Calendar类(日历)是一个抽象基类,主要用于完成日期字段之间相互操作的功能。即可以设置和获取日期数据的特定部分。
Math类
- Math 类提供了一序列基本数学运算和几何函数的方法。
- Math类是final类,并且它的所有成员变量和成员方法都是静态的。
Math类的常量和常用方法
常量:
static double
E
比任何其他值都更接近 e(即自然对数的底数)的 double 值。static double
PI
比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。常用方法:Math内的所有方法均为静态的。
BigInteger类和BigDecemal类
- BigInteger: 能表示比Integer更大的数字
- BigDecimal:浮点数的计算
System类
Java程序的运行平台
- System类提供了一些静态属性和方法,允许通过类名直接调用。
- System类提供了代表标准输入、标准输出、错误输出的类属性。
- System类提供了一些静态方法用于访问环境变量、系统属性的方法。
System类属性
| static PrintStream | err |
| static InputStream | in |
| static PrintStream | out |
System类方法
- public static void exit(int status) 退出当前虚拟机
- public static long currentTimeMillis() 获得当前系统的毫秒值(与1970 年 1 月 1 日午夜之间的时间差)--测试程序的消耗时间
- public static Properties getProperties() 获得当前的所有系统属性
- public static String getProperty(String key) 获得指定键的系统属性
- public static void setIn(InputStream in) 输入重定向
- public static void setOut(PrintStream out) 输出重定向
- public static void setErr(PrintStream err) 错误重定向
- public static void arraycopy(Object src,int srcPos, Object dest, int destPos, int length)
拷贝数组
Runtime类
- Runtime代表Java程序的运行时环境,可以通过 getRuntime 方法获取当前运行时。
- 应用程序不能自己创建Runtime对象,可以通过Runtime的静态方法getRuntime()获得Runtime对象。
- Runtime类可以访问jvm的相关信息,如处理器数量,内存信息等
相关文章:
Java常用类
基本数据类型包装类 Java是一种纯面向对象语言,但是java中有8种基本数据类型,破坏了java为纯面向对象的特征。为了承诺在java中一切皆对象,java又给每种基本数据类型分别匹配了一个类,这个类我们称之为包装类/封装类。每个基本数据…...
4.30下周美联储携非农来袭黄金多空该如何布局?
近期有哪些消息面影响黄金走势?下周黄金多空该如何研判? 黄金消息面解析:周五(4月28日)当周金价维持震荡交投,金价基本持稳于2000美元下方。支撑和打压金价的因素参半。经济衰退的担忧,以及避险情绪支持金价&#x…...
利用python查找指定目录下大于300M的文件
直接上代码,欢迎小伙伴们交流 import os def getBigFile(path, filesize): # 遍历指定目录及其子目录 for dirpath, dirnames, filenames in os.walk(path): for filename in filenames: target_file os.path.join(dirpath, filename…...
浅尝ChatGPT使用之Python字典嵌套排序
一、背景 所负责的项目从v1.0升级到v2.0之后,发送到kafka的Json数据字段顺序和内容有所改变, v1.0版本推送数据样例: {"name": "小王子","author": "安托万德圣-埃克苏佩里(1900-1944&#…...
最大网络流算法之dinic算法详解
1、题目描述 On the Internet, machines (nodes) are richly interconnected, and many paths may exist between a given pair of nodes. The total message-carrying capacity (bandwidth) between two given nodes is the maximal amount of data per unit time that can b…...
051、面试必刷TOP101--链表(230503)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言链表1、BM1 反转链表2、BM2 链表内指定区间反转3、BM3 链表中的节点每k个一组翻转4、BM4 合并两个排序的链表5、BM5 合并k个已排序的链表6、BM6 判断链表中是否…...
开源中国面试准备
dockerFile常见命令 1、FROM 设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载 2、MAINTAINER 镜像作者的信息,比如名字或邮箱地址 语法:MAINTAINER n…...
基于J2EE的B2C电子商务系统开发与实现
摘要 当今社会,科学技术突飞猛进,知识经济初见端倪。电子商务作为一种新型的贸易方式,极大地促进了全球经济贸易的发展,同时也正在改变人们的生活方式和思想观念。电子商务是指整个贸易活动实现电子化,交易各方以电子交易方式而进行的商业交易。世界贸易组织电子商务专题报告定…...
三分钟教你看懂 spring 官方文档
新手如何学会查看官方文档API 首先进入官网:这里以 spring boot 为例 ,进入spring 官方地址 我们进入 spring boot 这里我们要看文档当然是要 learn 了,所以点进去。 我需要的东西在 IO 模块里面,点 IO 进入 发送邮件是不是有了…...
基于simulink使用射频模块集天线块对天线阵列的射频系统进行建模
一、前言 本 例 说明 如何 对 包括 天线 阵列 的 MIMO 接收 和 发射 RF 系统 进行 建模。该设计从单个RF链的预算分析开始,然后扩展到多个天线。RF Blockset 天线模块对天线阵列进行全波分析,支持对效应和缺陷进行高保真建模,并结合射频系统的…...
从小学习编程的路线与编程进阶
对于从小学习编程的学生,通常会从基础的编程概念和语法开始学习。以下是一个可能的路线: 1. 学习计算机基础知识,包括计算机硬件、操作系统和网络等基本概念。 2. 掌握基本的编程概念和语法,例如变量、数据类型、条件语句和循环语…...
[实训] 实验1-SPI数据传输基础实验(上)
目 录 一、实验目的 二、实验仪器及器件 三、实验内容及原理 四、实验步骤 五、实验测试数据表格记录 六、实验数据分析及处理 七、实验结论与感悟 一、实验目的 使用FPGA/ARM实现SPI数据传输实验;实现数据传输程序的编写、下载…...
微软骚操作恶心Win10用户,上网得先看广告
IE 浏览器在几个月前被彻底禁用,预装了快30年的老古董也确实到了退役的时候。 而微软也早有准备,2015年随着 Win10 发布推出了 Microsoft Edge 浏览器。 2020年迁移到 Chromium 内核让其成为了主流浏览器之一。 和 Chromium 系其他浏览器一样支持扩展插…...
为了做低代码平台,这些年我们对.NET的DataGridView做的那些扩展
我们的低代码开发平台从一开始决定做的时候,就追求未来能够支持多种类型的客户端,目前支持Winform,Web,H5,FlutterAPP,当然了,未来也有可能会随着实际的需要淘汰掉一些客户端的。 为了系统更易…...
洛谷 子集积 题解
题目 P1 背包 子集积 > m >m >m 个数并不好求,考虑子集积 ≤ m \le m ≤m 的个数 x x x,答案即为 ( 2 n − x ) (2^n - x) (2n−x)。 对于子集积 ≤ m \le m ≤m 的个数,可以化为 0-1 背包问题做, f i , j f_{i,…...
Boost笔记 1:下载、编译、安装、测试
1. 下载 当前版本是1.82,下载链接: https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/ 2. 安装编译依赖库 本地环境是Ubuntu 22.04,需要安装以下依赖库,部分影响boost相关功能的开启,部分影响编译…...
tiechui_lesson01_入口函数和卸载函数
主要讲解入口函数和卸载函数。 #include <ntifs.h>VOID nothing(HANDLE ppid, HANDLE mypid, BOOLEAN bcreate) {UNREFERENCED_PARAMETER(ppid);UNREFERENCED_PARAMETER(mypid);UNREFERENCED_PARAMETER(bcreate);DbgPrint("processNotify\n"); }VOID DriverU…...
密码学【java】初探究加密方式之非对称加密
文章目录 非对称加密1 常见算法2 生成公钥和私钥3 私钥加密4 私钥加密 公钥解密5 公钥和私钥的保存和读取5.1 **保存公钥和私钥**5.2 读取公钥和私钥 非对称加密 非对称加密算法又称现代加密算法。非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。与对…...
网络安全和黑客技能:15本必读书籍推荐
前言 网络安全和黑客技能紧密相连。想要有效地防范黑客攻击,了解黑客的技能和思维方式非常重要。而要想成为一名合格的白帽黑客,也需要深入理解网络安全的基本原理和最佳实践。本文将介绍15本网络安全和黑客书籍,既包括了防范黑客攻击的指南…...
电话号码的字母组合
题目:17. 电话号码的字母组合 - 力扣(Leetcode) 思路: 给定一个电话号码字符串 digits,须输出它所能表示的所有字母组合。我们可以先定义一个数字字符到字母表的映射表 numToStr,然后再用 Combine 函数递归…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
MySQL体系架构解析(三):MySQL目录与启动配置全解析
MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...
Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...
21-Oracle 23 ai-Automatic SQL Plan Management(SPM)
小伙伴们,有没有迁移数据库完毕后或是突然某一天在同一个实例上同样的SQL, 性能不一样了、业务反馈卡顿、业务超时等各种匪夷所思的现状。 于是SPM定位开始,OCM考试中SPM必考。 其他的AWR、ASH、SQLHC、SQLT、SQL profile等换作下一个话题…...
JUC并发编程(二)Monitor/自旋/轻量级/锁膨胀/wait/notify/锁消除
目录 一 基础 1 概念 2 卖票问题 3 转账问题 二 锁机制与优化策略 0 Monitor 1 轻量级锁 2 锁膨胀 3 自旋 4 偏向锁 5 锁消除 6 wait /notify 7 sleep与wait的对比 8 join原理 一 基础 1 概念 临界区 一段代码块内如果存在对共享资源的多线程读写操作…...
