常用API

发布于:2025-07-18 ⋅ 阅读:(18) ⋅ 点赞:(0)

Math类

Math类:针对数字运算提供的一系列方法

常用的方法:

方法名 说明
public static int abs(int a) 获取参数a的绝对值:
public static double ceil(double a) 向上取整
public static double floor(double a) 向下取整
public static double pow(double a, double b) 获取a的b次幂
public static long round(double a) 四舍五入取整

工具类的编写规则:

1.不能被继承,使用final关键字修饰类

2.不能创建对象,使用private关键字修饰构造方法

3.对外提供静态方法(通过类名访问)

public class MathTest {
    //演示:Math的应用
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        //求最大值
        int max = Math.max(a, b);
        //求最小值
        int min = Math.min(a, b);
        //计算次幂
        double num = Math.pow(2, 3);
        //随机数
        int random = (int) (Math.random()*100);//Random r = new Random();  
        //int n = r.next(100)//范围0~99
        //四舍五入
        long round = Math.round(4.7);
        System.out.println(max);//20
        System.out.println(min);//10
        System.out.println(num);//8.0
        System.out.println(random);//94
        System.out.println(round);//5

    }
}

System工具类

常用方法:
方法名 说明
public static void exit(int status) 终止当前运行的 Java 虚拟机,非零表示异常终止
public static long currentTimeMillis() 返回当前时间(以毫秒为单位)
public class SystemTest {
    //演示:System类的使用
    public static void main(String[] args) {
        //要知道方法执行多长时间(毫秒)
        //在方法执行前:获取毫秒值
        long beginTime = System.currentTimeMillis();//获取当前系统时间的毫秒值
        method();
        //在方法执行后:获取毫秒值
        long endTime = System.currentTimeMillis();
        System.out.println("方法执行时间:" + (endTime - beginTime) + "毫秒");//方法执行时间:10毫秒
//        System.exit(0);
    }
    public static void method() {
        int count = 0;
        for (int i = 0; i < 10000000; i++) {
            if (i % 2 == 0) {
                count++;
            }
        }
    }
}

BigInteger类

BigInteger介绍:java.math.BigInteger类是一个引用数据类型,可以用来对一些大整数做运算。当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。
构造方法 描述
BigInteger(String value) 可以将整数的字符串,转换为BigInteger对象

BigInteger解决什么问题?

解决程序中出现long无法储存的整数使用BigInteger

BigInteger的加,减,乘,除的方法名是什么?

add,subtract,divide,multiply
import java.math.BigInteger;
public class BigIntegerDemo {
    public static void main(String[] args) {
        //创建大整数对象
        BigInteger num1 = new BigInteger("1000");
        BigInteger num2 = new BigInteger("100");
        //运算
        BigInteger result1 = num1.add(num2);
        System.out.println(result1);//1100

        BigInteger result2 = num1.subtract(num2);
        System.out.println(result2);//900

        BigInteger result3 = num1.divide(num2);
        System.out.println(result3);//10

        BigInteger result4 = num1.multiply(num2);
        System.out.println(result4);//100000
    }
}

BigDecimal类

BigDecimal介绍:java.math.BigDecimal可以对大浮点数进行运算,保证运算的准确性。BigDecimal的精确性高于float和double
构造方法名 描述
BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal
//使用构造方法,创建对象
BigDecimal num1 = new BigDecimal("12312312312312311.123123123123");
BigDecimal num2 = new BigDecimal("1000000000000000.9999999999");

//四则运算
BigDecimal result1 = num1.add( num2 );//加运算

BigDecimal result2 = num1.subtract( num2 );//减运算

BigDecimal解决什么问题?

用来存储超出double范围的小数

BigDecimal的加,减,乘,除的方法名是什么?

add,subtract,divide,multiply
import java.math.BigDecimal;
public class BigDecimalDemo {
    public static void main(String[] args) {
       //创建对象
        BigDecimal num1 = new BigDecimal("100.2");
        BigDecimal num2 = new BigDecimal("2.2");

        //运算
        System.out.println("加运算:"+(num2.add(num1)));//加运算:102.4

        System.out.println("减运算:"+(num1.subtract(num2)));//减运算:98.0

        System.out.println("乘运算:"+(num1.multiply(num2)));//乘运算:220.44

       // System.out.println("除运算:"+(num1.divide(num2)));//当除不尽时,会引发异常(解决方案:设置保留有效小数位数)

        //                                 保留小数位数     小数的取舍方式
        BigDecimal result = num1.divide(num2,3,BigDecimal.ROUND_HALF_UP );//45.545
        System.out.println(result);
    }
}

Arrays类

Arrays类介绍:java.util.Arrays是数组的工具类,里面有很多静态的方法用来对数组进行操作(如排序和搜索)

Arrays类:针对数组提供了一系列方法

Arrays的方法:

1.数组元素排序(默认升序)

2.数组转换为字符串

import java.util.Arrays;
import java.util.Random;

public class ArraysDemo {
    //需求:随机生成10个[0,100]之间的整数,放到整数数组中,按照从小到大的顺序排序并打印元素内容
    public static void main(String[] args) {
        //解决需求1: 定义数组,存储10个随机整数
        int[] array = new int[10];

        //创建随机数字对象
        Random r = new Random();
        for (int i = 0; i < array.length; i++) {
            int num = r.nextInt(101);
            array[i] = num;
        }
        //测试看看数组中的元素值
        System.out.println(Arrays.toString(array));//把数组转换为字符串

        //解决需求2: 对数组中的元素进行排序
      Arrays.sort(array);
        System.out.println(Arrays.toString(array));//把数组转换为字符串


        //打印数组中元素的格式: 元素1  元素2
        String str = Arrays.toString(array);//str="[2, 3, 5, 7, 27, 31, 52, 54, 76, 76]";
        str = str.substring(1, str.length()-1 );//去除前后:中括号
        str = str.replaceAll(",", " ");//使用" "代替","

        System.out.println("排序后:" + str);
        /**运行结果:[35, 38, 97, 6, 46, 96, 31, 74, 97, 30]
         [6, 30, 31, 35, 38, 46, 74, 96, 97, 97]
         排序后:6  30  31  35  38  46  74  96  97  97
         */
   }
}

包装类

什么是包装类?

Java把8种基本类型,进行了封装,变为包装类
基本数据类型 包装类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

包装类解决程序中的什么问题?

1、实现String类型和7种基本类型(没有char)之间的转换

String str = “1234”; < => int类型

2、在后面学习mysql时会大量使用到包装类(包装类中可以存储null数据)

包装类怎么使用?

使用包装类:解决String类型和基本类型之间数据转换

基本类型数据 => String类型

1.直接拼接空字符串

2.使用String的valueOf静态方法
举例:
int num =100;String str = num+“”;
String str = String.valueOf( num );

String类型 => 基本类型数据

除了Character之外,都有静态方法parseXxx方法可以完成字符串转换基本数据类型。

举例:
String str =“1234”;
int num = Integer.parseInt( str );

String s = “true”;
boolean flag = Boolean.parseBoolean( s )

public class Demo1 {
    public static void main(String[] args) {
        //把字符串转换为int类型数据
        String str="123";
        int num = Integer.parseInt(str);
        System.out.println(num);
        //把字符串转换为double类型数据
        String str2="3.14";
        double num2 = Double.parseDouble(str2);
        System.out.println(num2);
    }
}

包装类在使用中的细节

1. 在把String类型数据,转换为基本类型数据时,容易发生:NumberFormatException异常 (原因:String类型数据,不符合要转换的基本类型数据格式)
public class Demo2 {
    public static void main(String[] args) {
        //把字符串转换为int类型数据
        String str="123AAA";//字符串不是纯数字

        //在把字符串转换为对应的基本类型数据时,务必保证字符串符合基本类型数据的格式
        int num = Integer.parseInt(str);//出现异常:NumberFormatException
        System.out.println(num);
    }
}
运行结果:报错NumberFormatException
  1. 包装类在使用时存在:自动装箱、自动拆箱

基本数据类型自动转换为对应的包装类型叫做装箱

包装类型转自动换为对应的基本数据类型叫做拆箱。

  • 自动装箱 : Integer.valueOf( 数值 )

  • 自动拆箱: Integer对象.intValue()

  1. 包装类中有常量池(数据值没有超出常量池范围,就直接从常量池中获取对象)

注意事项 :

3.1. 包装类对象的初始值为null(是一个对象)。

3.2. Java中除了float和double的其他基本数据类型,都有常量池。

整数类型:[-128,127]值在常量池

字符类型:[0,127]对应的字符在常量池

布尔类型:true,false在常量池

3.3. 在常量池中的数据 , 会进行共享使用,减少频繁创建,从而提高性能,不在常量池会创建新的对象

String类的常用方法举例

public class StringDemo1 {
    /*
    已知字符串,完成需求
    String str = "I Love Java, I Love Heima";
    判断是否存在  “Java”
    判断是否以Heima字符串结尾
    判断是否以Java开头
    判断 Java在字符串中的第一次出现位置
    判断  itcast 所在的位置
    */
    public static void main(String[] args) {
        String str = "I Love Java, I Love Heima";

        boolean result = str.contains("Java");
        System.out.println(result);

        boolean result2 = str.endsWith("Heima");
        System.out.println(result2);

        boolean result3 = str.startsWith("Java");
        System.out.println(result3);

        int index = str.indexOf("Java");
        System.out.println(index);

        int itcast = str.indexOf("itcast");
        System.out.println(itcast);

    }
}
运行结果:
true
true
false
7
-1
public class StringDemo2 {
    /*
    已知字符串,完成右侧需求
    String str = "I Love Java, I Love Heima";
    需求:
    1.将所有 Love 替换为 Like ,打印替换后的新字符串
    2.截取字符串 "I Love Heima"
    3.截取字符串 "Java"
    */
    public static void main(String[] args) {
        String str = "I Love Java, I Love Heima";

        String replace = str.replace("Love", "like");
        System.out.println(replace);

        String substring = str.substring(13);
        System.out.println(substring);

        System.out.println(str.substring(7,11));
    }
}

运行结果:
I like Java, I like Heima
I Love Heima
Java
public class StringDemo3 {
    /*
    已知字符串,完成右侧需求
    String str = "I Love Java, I Love Heima";
    需求:
    1 计算字符 a 出现的次数(要求使用toCharArray)
    2 计算字符 a 出现的次数(要求使用charAt)
    3 将字符串中所有英文字母变成小写
    4 将字符串中所有英文字母变成大写
    */
    public static void main(String[] args) {
        String str = "I Love Java, I Love Heima";

        int count=0;
        char[] chs = str.toCharArray();
        for (int i = 0; i < chs.length; i++) {
            if(chs[i] == 'a'){
                count++;
            }
        }
        System.out.println(count);

        System.out.println(str.toUpperCase());
        System.out.println(str.toLowerCase());
    }
}
运行结果:
3
I LOVE JAVA, I LOVE HEIMA
i love java, i love heima


网站公告

今日签到

点亮在社区的每一天
去签到