常用API-2

Math

包含执行基本数字运算的方法
没有构造方法,类的成员都是静态,通过类名直接调用
成员方法:
  public static int abs​(int a) 返回参数的绝对值
  public static double ceil​(double a) 向上取整
  public static double floor​(double a) 向下取整
  public static int round​(float a) 四舍五入
  public static int max​(int a,int b) 返回两个int值中的较大值
  public static int min​(int a,int b) 返回两个int值中的较小值
  public static double pow​(double a,double b) 返回a的b次幂的值
  public static double random​() 返回值为double的正值,[0.0,1.0)

System

System 不能被实例化
成员方法:
  public static void exit​(int status)   终止当前运行的 Java 虚拟机,非零表示异常终止
    例:System.exit(0); //0表示正常终止(一般用0);非零表示异常终止
  public static long currentTimeMillis​()   返回当前时间(以毫秒为单位)

1 long start = System.currentTimeMillis();//获取当前时间
2 for (int i = 0; i < 10000; i++) {
3     System.out.println(i);
4 }
5 long end = System.currentTimeMillis();//获取当前时间
6 System.out.println(end - start);//472 --- 得到的就是这个for循环运行的时间.

  public static void arraycopy(数据源数组, 源数组起始索引, 目的地数组, 目的地起始索引, 拷贝个数)   数组copy

 1 int [] arr1 = {1,2,3,4,5};
 2 int [] arr2 = new int[10];
 3 //需求:把arr1中的数据拷贝到arr2中.
 4 //System.arraycopy(arr1,0,arr2,0,arr1.length);
 5 
 6 //把arr1最后两个元素,拷贝到arr2的最后两个索引上
 7 System.arraycopy(arr1,3,arr2,8,2);
 8 for (int i = 0; i < arr2.length; i++) {
 9     System.out.println(arr2[i]);
10 }

Object

Object类是所有类的直接或者间接父类。
构造方法:public Object()
问:面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法?
答:它们的顶级父类只有无参构造方法

常用方法

public String toString()  返回对象的字符串表示形式

直接打印一个对象就是打印这个对象的toString方法的返回值:底层使用Object类的toString方法得到对象的地址值。

1 public static void main(String[] args) {
2     Student s = new Student("张三",23);
3     System.out.println(s);   //com.ceshi.demo1.Student@3f3afe78
4 }

因为无意义,所以我们一般会对toString方法进行重写,可自动生成

1 public class Student /*extends Object*/{
2     private String name;
3     private int age;
4 
5     @Override
6     public String toString() {
7         return "Student{" + "name='" + name + '\'' + ", age=" + age +   '}';
8     }
9 }
1 public static void main(String[] args) {
2        System.out.println(s.toString()); //Student{name='张三',age=18}
3     }

public boolean equals(另一个对象) 比较对象是否相等。默认比较地址,重写可以比较内容,自动生成

1 public static void main(String[] args) {
2         Student s1 = new Student("zhangsan",23);
3         Student s2 = new Student("zhangsan",23);
4 
5         System.out.println(s1 == s2);//false
6         //Object类中的equals方法,底层也是用==号比较地址值.
7         System.out.println(s1.equals(s2));//false
8 }

需重写该方法进行比较内容,自动生成。

面试题

1 String s = “abc”;
2 StringBuilder sb = new StringBuilder(“abc”);
3 s.equals(sb); ?
4 sb.equals(s); ?
1 public static void main(String[] args) {
2         String s = "abc";
3         StringBuilder sb = new StringBuilder("abc");
4         //1.此时调用的是String类中的equals方法:源码如下图,equals()的()里传入的参数应该也是字符串,否则不会比较直接返回false。当前传入的参数sb是StringBuilder所以返回false。
5         System.out.println(s.equals(sb));  //false
6 
7         //2.StringBuilder类中是没有重写equals方法,用的就是Object类中的==比较地址值,s与sb地址值不同,所以返回false
8         System.out.println(sb.equals(s));  //false
9 }

String中的equals()方法:

Objects(1.7后出现)

成员方法:

public static String toString(对象)  返回参数中对象的字符串表示形式。(同Object的toString()方法)
public static String toString(对象, 默认字符串)   返回对象的字符串表示形式。如果对象为空,那么返回第二个参数。
public static Boolean isNull(对象)   判断对象是否为空
public static Boolean nonNull(对象)   判断对象是否不为空

BigDecimal

作用:可以用来精确计算

构造方法:
BigDecimal(double val)   参数为double。
BigDecimal(String val)   参数为String。(如果想进行精确运算,使用字符串参数的构造方法)

成员方法:
public BigDecimal add(另一个BigDecimal对象)    加法
public BigDecimal subtract (另一个BigDecimal对象)    减法
public BigDecimal multiply (另一个BigDecimal对象)    乘法
public BigDecimal divide (另一个BigDecimal对象)    除法
public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式)    除法
  常用舍入模式:    BigDecimal.ROUND_UP 进一法
          BigDecimal.ROUND_FLOOR 去尾法
          BigDecimal.ROUND_HALF_UP 四舍五入
    例:BigDecimal divide = bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP);

Arrays

包含用于操作数组的各种方法

成员方法:
public static String toString​(int[] a) 返回指定数组的内容的字符串表示形式
public static void sort​(int[] a) 按照数字顺序排列指定的数组

public static int binarySearch​(int[] a, int key) 利用二分查找返回指定元素的索引
  条件:1.数组必须有序
     2.如果要查找的元素存在,那么返回的是这个元素实际的索引
     3.如果要查找的元素不存在,那么返回的是 (-插入点-1):(为什么-插入点-1,如果查找0所在索引,-0=0,所以为避免此类问题,整体进行-1,使得0所在索引为-0-1=-1)
        插入点:如果这个元素在数组中,他应该在哪个索引上

1 public static void main(String[] args) {
2     int [] arr = {1,2,3,4,5,6,7,8,9,10};
3     int index = Arrays.binarySearch(arr, 10);  //9
4     int index = Arrays.binarySearch(arr, 11);  //-11
5     int index = Arrays.binarySearch(arr, 0);   //-1
6     System.out.println(index);
7 }

 

posted @ 2023-06-12 16:46  溯鸣  阅读(15)  评论(0编辑  收藏  举报