常用API:Math、System、Object、Arrays、基本类型包装类、日期类、BigDecimal
Math
开方:
java.lang.Math.sqrt(x)
java.lang.Math.sqrt(4) 的结果是2
package com.zjm.API;
public class MathDemo {
public static void main(String[] args) {
//public static int abs(int a),返回参数的绝对值
System.out.println(Math.abs(88));
System.out.println(Math.abs(-88));
System.out.println("-------");
//public static double ceil(double a),返回大于或者等于参数的最小double值,等于一个整数
System.out.println(Math.ceil(12.34));
System.out.println(Math.ceil(12.56));
System.out.println("-------");
//public static double floor(double a),返回小于或者等于参数的最大double值,等于一个整数
System.out.println(Math.floor(12.34));
System.out.println(Math.floor(12.56));
System.out.println("-------");
//public static int round(float a/double a),四舍五入返回最接近参数的int
System.out.println(Math.round(12.34));
System.out.println(Math.round(12.56));
System.out.println("-------");
//public static int max/min(int a, int b),返回两个数的最大最小值
System.out.println(Math.max(66, 88));
System.out.println(Math.min(66, 88));
System.out.println("-------");
//public static double pow(double a, double b),返回a的b次幂
System.out.println(Math.pow(2, 3));
System.out.println("-------");
// public static double random(),返回值为double的正值,[0.0,1.0]
System.out.println(Math.random());
System.out.println(Math.random()*100);
}
}
System
package com.zjm.API;
public class SystemDemo {
public static void main(String[] args) {
// System.out.println("开始");
// //public static void exit(int status),终止当前运行的Java虚拟机,非零表示异常终止
// System.exit(0);
// System.out.println("结束");
//public static native long currentTimeMillis(),返回距离1970年至今的时间,毫秒为单位
System.out.println(System.currentTimeMillis());
System.out.println(System.currentTimeMillis()*1.0/1000/60/60/24/365 + "年");
//计算程序运行时长
long start = System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println("共耗时"+(end-start)+"毫秒");
}
}
Object
package com.zjm.API;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
if (age != student.age) return false;
return name != null ? name.equals(student.name) : student.name == null;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + age;
return result;
}
}
package com.zjm.API;
public class ObjectDemo {
public static void main(String[] args) {
Student s = new Student("许乐乐",19);
//直接输出对象变量默认调用toString方法,格式为s.toString()
System.out.println(s); //com.zjm.API.Student@776ec8df
System.out.println(s.toString()); //实际开发中数据的地址一般没有意义,toString方法应该可以直观的表示对象,所以建议所有类在创建时重写Object的toString类

//需求:比较两个类
Student s1 = new Student("许乐乐",19);
Student s2 = new Student("许乐乐",19);
System.out.println(s1==s2);//false
System.out.println(s1.equals(s2));//重写前为false,重写后为true
//“==”号对比的是双方的内存地址,Object的equal方法就是“==”,要比较对象内的值是否相同的话,需要在类中重写equal方法
/*
public boolean equals(Object obj) {
return (this == obj);
}
*/
}
}


Arrays
PPT错误:二分查找法:binarySearch(),若查找不存在会返回负数,具体的负数为-(应该插入的位置的索引+1)
注意:二分查找法的前提一定是已经排列好的数组
Arrays类对于Comparator比较器对象的支持:
如果比较的为引用类型,定义比较方法如下:
基本类型包装类
基本数据类型和String的相互转化:
int转String:
可以用String.valueOf(int i),或者.toString()方法,或者利用字符串拼接的特点在后面+“”
String转int:
可以用Integer.valueOf(String s),或者parseInt(String s)方法
所以记住一个valueOf方法就可以解决大部分
日期类
BigDecimal

BigDecimal转换回Double对象:.doubleValue()方法