Java常用工具类(API)

Api

Api概述

应用程序接口是一些预先定义的函数,(工具类的一些方法)
目的是提供应用程序和开发人员基于某软件或硬件得以访问一组例称的能力

Object

所有类的父类
1.objec类中的方法都可以被子类使用
object类中的方法
1.getclass:返回对象的字节码文件对象
2.hashcode:返回对象的哈希码值
3.equals:比较俩个对象是否相同
4.toString:getClass().getclass()+@+interger.tohexString(hashcode());
类的全路径名+@+对象的哈希码值的十六进制
如果我们想输出自己的东西就必须要重新tostring方法

String

String 被final修饰的类,不能被继承
字符串存在于常量池中。字符串的值一旦被初始化就不会被改变
如果new String() 会在堆内存中开辟空间
如果直接赋值的话,会在常量池中开辟空间

常用方法

方法名作用返回值
isEmpty()判断是否为空boolean
length()取到该String的长度int
equals(Object obj)判断两个字符串是否相等boolean
equalsIgnoreCase(String as)不区分大小写比较Object
charAt(int index)返回该下标的charchar
substring(int start)截取字符串下标从start开始String
substring(int start,int end)截取区间字符串从start开始到end结束(包头不包尾)String
eplace(char old,char new)替换字符串String
trim()去掉字母首尾空格String
indexOf()寻找某个字符串在目标字符串的位置int
        byte[] bytes = {11,22,33,44};
        String s = new String(bytes);
        System.out.println(s);
        char[] chars = {'a','d'};
        String s1 = new String(chars);
        System.out.println(s1);
        String name = "十九";
        System.out.println(name.isEmpty());
        System.out.println(name.length());
        String l1 = "0123145617891";
        String l2 = "Abc";
        System.out.println(l1.equalsIgnoreCase(l2));
        char c = l1.charAt(1);
        System.out.println(c);
        String substring = l1.substring(3,7);  
        System.out.println(substring);

        String replace = l1.replace("1", "9"); 
        System.out.println(replace);
        String lq = "  bcbab  ";
        System.out.println(lq.trim());
        int i = s1.indexOf("ab");  
        System.out.println(i);
        byte[] bytes1 = "sh".getBytes();
        System.out.println(Arrays.toString(bytes1));
        byte[] bytes2 = {11, 22, 33};
        System.out.println(new String(bytes2));
    }

String数据类型转换

方法名作用返回值
getBytes()转换成bytes型数组byte[]
toCharArray()转换成char型数组char[]
String valueOf(char[] chs)将入参类型转换为String String
toLowerCase()将所有英文字母转换为小写字母String
toUpperCase()将所有英文字母转换为大写字String
concat(String str)将指定字符串连接到此字符串的结尾String

包装类

基本数据类型是没有方法的,但是可以通过包装类来实现方法的调用
写法上只有 int - Integer char - Character
其他的都为首字母大写
装箱和拆箱:
装箱:基本数据类型 —>包装类
拆箱:包装类 —>基本数据类型

StringBuffer

常用的方法:

方法名作用返回值
append(String str)追加字符串StringBuffer
insert(int offset,String str)指定位置追加字符串StringBuffer
deleteCharAt(int index)删除下标处的字符StringBuffer
delete(int start,int end)删除下标区间的字符StringBuffer
replace(int start,int end,String str)替换区间字符StringBuffer
reverse()反转字符串StringBuffer
substring(int start,int end)截取区间字符串从start开始到end结束(包头不包尾)String
substring(int start)截取字符串String
split()拆分字符串String[]

Math概述

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数
Math常用方法

方法名作用返回值
abs(int a)取绝对值int
ceil(double a)返回最小值 double
floor(double a)返回最大值double
max(int a,int b)取最大值int
pow(double a,double b)求幂double
random()随机数double
round(float a)四舍五入成整数int
sqrt(double a)求double值的正平方根double
        int a = 100;
        System.out.println(java.lang.Math.abs(a));
        double b = 1116;
        double ceil = java.lang.Math.ceil(b);
        System.out.println(ceil);
        double floor = java.lang.Math.floor(b);
        System.out.println(floor);
        int max = java.lang.Math.max(444, 666);
        System.out.println(max);
        double pow = java.lang.Math.pow(1, 2);
        System.out.println(pow);
        long round = java.lang.Math.round(b);
        System.out.println(round);
        double random = java.lang.Math.random();
        int aa = (int)(random * 1110);
        System.out.println(aa);
        System.out.println(java.lang.Math.sqrt(9));
    }

Random概述

常用的方法:

方法名作用返回值
nextInt()生产一个随机数int
nextInt(int n)生成一个0~n之间的随机数int
{

    public static void main(String[] args) {  
        Random random = new Random();
        int i = random.nextInt(100);
        System.out.println(i);
        int x = 20+ random.nextInt(70-20);
        System.out.println(x);
    }
}

String、StringBuffer和StringBuilder的区别

在Java中,String、StringBuffer和StringBuilder都是用来处理字符串的类,但它们之间有一些重要的区别。

  1. 不可变性:
  • String类是不可变的,一旦创建就不能被修改。
    这意味着每次对String进行修改时,都会创建一个新的String对象。
  • StringBuffer和StringBuilder类是可变的,
    可以通过方法来修改其内容。它们会在原有对象上进行修改,而不会创建新的对象。
  1. 线程安全性:
  • String类是线程安全的,因为它的方法都是被synchronized修饰的
    所以多个线程同时访问一个String对象是安全的。
  • StringBuffer类也是线程安全的,因为它的方法都是被synchronized修饰的
    所以多个线程同时访问一个StringBuffer对象是安全的。
  • StringBuilder类不是线程安全的,它的方法没有被synchronized修饰,
    所以多个线程同时访问一个StringBuilder对象可能会导致不可预期的结果。
  1. 性能:
  • String类由于其不可变性,每次对String进行修改都会创建一个新的String对象,这会产生大量的临时对象,影响性能。
  • StringBuffer类在进行字符串的拼接、插入、删除等操作时,会在原有对象上进行修改
    避免了创建大量的临时对象,因此在频繁修改字符串时,使用StringBuffer会比String更高效。
  • StringBuilder类与StringBuffer类类似,
    但不保证线程安全,所以在单线程环境下,
    使用StringBuilder会比StringBuffer更高效。

综上所述,如果需要频繁修改字符串且在多线程环境下,
应该使用StringBuffer类;如果在单线程环境下需要频繁修改字符串,可以使用StringBuilder类;
如果字符串不需要修改,或者在多线程环境下不需要频繁修改字符串,可以使用String类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值