Java中几个常用类方法汇总(附详细代码)

 更新时间:2025年08月12日 09:42:54   作者:凸头  
这篇文章主要介绍了Java中几个常用类方法的相关资料,文中通过示例讲解了静态与对象操作、工具类特征、多线程随机数生成及数值计算技巧,需要的朋友可以参考下

1.Integer类

1)常用静态方法

方法说明
Integer.parseInt(String s)把字符串转为 int
Integer.valueOf(String s)返回Integer对象
Interger.toBinaryString(int n)转二进制字符串
Integer.toHexString(int n)转八进制字符串
Integer.toOctalString(int n)转十六进制字符串
Integer.compare(int x, int y)比较两个int
Integer.max(int a, int b)最大值
Integer.min(int a, int b最小值
Integer.sum(int a,int b)
Integer.parseInt("A", 16)十六进制字符串 → 十进制数
Integer.toString(26, 16)十进制 → 十六进制字符串
//eg:
int result = Integer.parseInt("A", 16);
System.out.println(result); // 输出 10

2)常用对象方法

方法说明
intVaule()去除int值,eg:doubleObj.intVaule();
compareTo(Integer another)比较两个 Integer
equals(object obj)比较两个值是否相等

2.String类

1)创建

String s = "hello";
String s = new String("hello");

2) 常用方法

比较与判断

方法说明
equals(String s)比较内容
equalsIgnoreCase(String s)忽略大小写比较
compareTo(String s)字典序比较
contains(CharSequence s)是否包含子串
startsWith(String prefix)前缀
endsWith(String suffix)后缀
isEmpty()是否空字符串
//1.compareTo(T o)用法示例:按顺序比较
//当前对象<参数对象,返回负整数;
//当前对象=参数对象,返回0;
//当前对象>参数对象,返回正整数;

//2.CharSequence是一个Java的接口,表示一个可读的字符序列。它是String、StringBuilder、StringBuffer等类的父接口,定义了字符序列的基本操作。

//3.startsWith()
String str = "Hello World";
boolean result = str.startsWith("Hello");
//使用偏移量,从索引7开始的子字符串是否以"World"开头
boolean result = str.startWith("World",7);

字符操作

方法说明
charAt(int index)取下标字符
length()字符串长度
indexOf(String s)首次出现位置
lastIndexOf(String s)最后一次出现的位置

修改

方法说明
substring(int start, int end)提取子字符串
replace(char old, char new)替换字符/字符串(CharSequence)
replaceAll(String regex, String replacement)替换所有正则匹配的内容
toUpperCase()/toLowerCase()大小写转换
trim()去除首尾空格
split(String regex)按指定字符分割成数组

3.Character类

方法说明
Character.isDigit(char c)是否为数字
Character.isLetter(char c)是否为字母
Character.isUpperCase(char c)是否为大写
Character.isLowerCase(char c)是否为小写
Character.toUpperCase(char c)转大写
Character.toLowerCase(char c)转小写

4.Double类

方法说明
Double.parseDouble(String s)字符串转double
Double.valueOf(String s)返回 Double 对象
Double.compare(double a, double b)比较大小
isNaN(double v)是否是NaN
isInfinite(double v)是否为无穷大
doubleValue()取出 double 值
注意:doubleValue()是Number 类及其子类(如 Double、Integer、Float 等)的方法!

5.Float类

方法说明
Float.parseFloat(String s)字符串转float
Float.valueOf(String s)返回 Float 对象
Float.compare(float a, float b)比较大小
isNaN(float v)是否是NaN
isInfinite(float v)是否为无穷大
floatValue()取出 float 值

6.Math类

方法说明
abs(x)绝对值
max(a,b)/min(a,b)最大/小值
pow(a,b)幂运算,a^b
sqrt(x)平方根
cbrt(x)立方根
round(x)四舍五入
ceil(x)向上取整
floor(x)向下取整
random()返回[0, 1)的随机数
log(x)自然对数

7. StringBuilder / StringBuffer(字符串可变类)

方法说明
append(x)追加字符串 / 各种类型
insert(int offset, x)插入
delete(int start, int end)删除子串
deleteCharAt(int index)删除指定下标字符
reverse()翻转
toString()转为 String
setCharAt(int index, char ch)设置指定位置字符
length()长度
charAt(int index)获取字符

区别:

  • StringBuilder非线程安全,速度快
  • StringBuffer线程安全,速度慢

8. Objects(空值判断、比较)

方法说明
Objects.equals(a, b)安全比较(支持 null)
Objects.isNull(obj)判断是否为 null
Objects.nonNull(obj)判断非 null(常配合 Stream)
Objects.requireNonNull(obj)如果是 null 抛异常
Objects.hash(...)计算哈希值(常用于实现 hashCode

9. Arrays(操作数组的工具类)

方法说明
Arrays.sort(arr)默认升序排序
Arrays.sort(arr, Comparator)自定义排序
Arrays.binarySearch(arr, key)二分查找(已排序数组
Arrays.toString(arr)输出数组内容
Arrays.equals(arr1, arr2)比较两个数组是否相等
Arrays.fill(arr, value)填充数组
Arrays.copyOf(arr, newLength)拷贝数组
Arrays.copyOfRange(arr, from, to)区间拷贝

10. Collections(操作 List、Set、Map)

方法说明
Collections.sort(list)对 List 排序(升序)
Collections.sort(list, Comparator)自定义排序
Collections.reverse(list)反转
Collections.shuffle(list)随机打乱
Collections.swap(list, i, j)交换两个元素位置
Collections.max(list) / min(list)最大/最小元素
Collections.frequency(list, x)元素出现次数
Collections.unmodifiableList(list)返回只读 List
Collections.singletonList(x)单元素只读 List
Collections.synchronizedList(list)返回线程安全 List

📌Collections.unmodifiableList(list)、Collections.singletonList(x)、Collections.synchronizedList(list) 对比

方法是否可写是否线程安全元素数量适用场景
unmodifiableList(list)❌(原 list 可变)任意给调用者返回一个只读视图
singletonList(x)❌(完全只读)固定 1 个返回固定常量 List
synchronizedList(list)任意多线程下安全操作 List

11. BigDecimal(精确小数运算)

1) 构造:

BigDecimal a = new BigDecimal("0.1"); // 字符串构造更精确

2) 常用方法:

方法说明
add(BigDecimal)加法
subtract(BigDecimal)减法
multiply(BigDecimal)乘法
divide(BigDecimal, scale, RoundingMode)除法,必须指定精度和舍入方式
compareTo(BigDecimal)比较大小(返回 -1/0/1)
setScale(int scale, RoundingMode)设置小数位数和舍入方式
toPlainString()返回非科学计数法字符串
doubleValue()转为 double

3) 舍入模式:

RoundingMode.HALF_UP  // 四舍五入
RoundingMode.DOWN     // 向零舍去
1. setScale(int scale, RoundingMode mode)
设置小数点保留几位,并指定舍入方式。

2. divide(BigDecimal divisor, int scale, RoundingMode mode)
在除法不能整除时,设置保留位数和舍入方式。

12. Random(生成随机数)

Random rand = new Random();
// 生成 [min, max] 区间整数
int random = (int)(Math.random() * (max - min + 1)) + min;
方法说明
nextInt()随机 int(全范围)
nextInt(n)生成 [0, n) 的 int
nextDouble()生成 [0.0, 1.0)
nextBoolean()true / false
nextLong()long 类型随机数
nextFloat()float 随机数

13. ThreadLocalRandom(更快的多线程随机)

ThreadLocalRandom rand = ThreadLocalRandom.current();
方法说明
nextInt(int bound)[0, bound) 随机整数
nextInt(int origin, int bound)[origin, bound)
nextDouble()[0.0, 1.0)
nextDouble(double origin, double bound)[origin, bound)

优势:

  • 不同线程之间无竞争,适合多线程场景。
  • 不要用 new ThreadLocalRandom(),直接 ThreadLocalRandom.current()

14.如何判断一个类是不是工具类?

  • 构造方法是私有的
  • 所有方法是静态的

总结 

到此这篇关于Java中几个常用类方法的文章就介绍到这了,更多相关Java常用类方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • zuulGateway 通过filter统一修改返回值的操作

    zuulGateway 通过filter统一修改返回值的操作

    这篇文章主要介绍了zuulGateway 通过filter统一修改返回值的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 如何使用@Value和@PropertySource注入外部资源

    如何使用@Value和@PropertySource注入外部资源

    这篇文章主要介绍了如何使用@Value和@PropertySource注入外部资源的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java实现图片转ascii字符画的方法示例

    java实现图片转ascii字符画的方法示例

    这篇文章主要介绍了java实现图片转ascii字符画的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Java实现文件上传到服务器本地并通过url访问的方法步骤

    Java实现文件上传到服务器本地并通过url访问的方法步骤

    最近项目中使用到了文件上传到服务器的功能,下面这篇文章主要给大家介绍了关于Java实现文件上传到服务器本地并通过url访问的方法步骤,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • SpringBoot自动初始化数据库的方法分享

    SpringBoot自动初始化数据库的方法分享

    我们在项目中应该经常遇到过初始化数据的场景,特别是项目部署或者交付的时候,那么有什么方式可以在项目启动的时候自动初始化数据库呢,下面小编就来和大家分享几个方法吧
    2023-08-08
  • java使用反射给对象属性赋值的两种方法

    java使用反射给对象属性赋值的两种方法

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,下面这篇文章主要给大家介绍了关于java使用反射给对象属性赋值的两种方法,需要的朋友可以参考下
    2023-04-04
  • Java实现的猴子吃桃问题算法示例

    Java实现的猴子吃桃问题算法示例

    这篇文章主要介绍了Java实现的猴子吃桃问题算法,简单描述了猴子吃桃问题并结合实例形式给出了java解决猴子吃桃问题的具体实现技巧,需要的朋友可以参考下
    2017-10-10
  • Dubbo框架线程池使用介绍

    Dubbo框架线程池使用介绍

    当我们在使用dubbo的时候,是可以通过调整线程池来达到调优的效果,我们可以在dubbo:protocol 标签中使用用threadpool属性选择自己想要使用的线程池,通过threads属性配置服务线程数,queues属性配置使用的队列
    2022-09-09
  • Java获取服务器IP及端口的方法实例分析

    Java获取服务器IP及端口的方法实例分析

    这篇文章主要介绍了Java获取服务器IP及端口的方法,结合实例形式分析了java针对客户端及服务器端各种常见的信息操作技巧与注意事项,需要的朋友可以参考下
    2018-12-12
  • java9新特性Reactive Stream响应式编程 API

    java9新特性Reactive Stream响应式编程 API

    这篇文章主要为大家介绍了java9新特性响应式编程API的特点详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03

最新评论