常用Api - Math
Math类概述
Math 包含执行基本数字运算的方法
Math中方法的调用方式
Math类中无构造方法,但内部的方法都是静态的,则可以通过 类名.进行调用
方法名 | 说明 |
---|---|
public static int abs(int a) | 返回参数的绝对值 |
public static double ceil(double a) | 返回大于或等于参数的最小double值,等于一个整数 |
public static double floor(double a) | 返回小于或等于参数的最大double值,等于一个整数 |
public static int round(float a) | 按照四舍五入返回最接近参数的int |
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) |
package com.itxuexi.it12.apiMath01;
public class MathDemo {
public static void main(String[] args) {
//返回[参数]绝对值 abs(int a)
System.out.println(Math.abs(88));
System.out.println(Math.abs(-88)); //88
System.out.println(Math.abs(-88.1)); //88.1
System.out.println("------------------------------");
// 返回大于或等于参数的最小double值,等于一个整数
System.out.println(Math.ceil(-12.1)); //-12.0
System.out.println(Math.ceil(11.34)); //12.0
System.out.println(Math.ceil(11.9)); //12.0
System.out.println("------------------------------");
// 返回大于或等于参数的最大floor值,等于一个整数
System.out.println(Math.floor(-12.1)); //-13.0
System.out.println(Math.floor(11.34)); //11.0
System.out.println(Math.floor(11.9)); //11.0
System.out.println("------------------------------");
//按照四舍五入返回最接近参数的int
System.out.println(Math.round(-12.1)); //-12.0
System.out.println(Math.round(11.34)); //11.0
System.out.println(Math.round(11.9)); //12.0
System.out.println("------------------------------");
// 返回两个int值中的较大值
System.out.println(Math.max(11.4,11.5)); //11.5
System.out.println("------------------------------");
//返回两个int值中的较小值
System.out.println(Math.min(11.4,11.5)); //11.4
System.out.println("------------------------------");
//返回a的b次幂的值
System.out.println(Math.pow(2,5)); //32
System.out.println("------------------------------");
// 返回值为double的正值,[0.0,1.0)之间的随机数
System.out.println(Math.random()); //随机数
System.out.println(Math.random()*100); //
System.out.println((int)(Math.random()*100)); //强转 0-99
System.out.println((int)(Math.random()*100)+1); //强转 1-100
}
}
常用Api - System
System 包含几个有用的类字段和方法,它不能被实例化
方法名 | 说明 |
---|---|
public static void exit(int status) | 终止当前运行的 Java 虚拟机,非零表示异常终止 |
public static long currentTimeMillis() | 返回当前时间(以毫秒为单位) |
package com.itxuexi.it12.apiMath01;
public class SystemDemo {
public static void main(String[] args) {
System.out.println("开始");
// 终止当前运行的 Java 虚拟机
// System.exit(0);
System.out.println("结束");
//计算1970年到现在相隔多少年
System.out.println(System.currentTimeMillis() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");
//开始时间
long start = System.currentTimeMillis();
//运行1-10000
for (int i = 0; i < 10000; i++) {
System.out.println();
}
//结束时间
long end = System.currentTimeMillis();
System.out.println("共耗时:" + (end - start) + "毫秒");
}
}
常用Api - Object
Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类, 换句话说,该类所具备的方法,所有类都会有一份
方法名 | 说明 |
---|---|
public String toString() | 返回对象的字符串表示形式。建议所有子类重写该方法,自动生成 |
public boolean equals(Object obj) | 比较对象是否相等。默认比较地址,重写可以比较内容,自动生成 |
toString方法的作用:
以良好的格式,更方便的展示对象中的属性值
- Alt + Insert 选择toString
- 在类的空白区域,右键 -> Generate -> 选择toString
package com.itxuexi.it12.apiObject;
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;
}
//以后建议都重写此方法 alt + insert ; to String
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
//---------------------------------
package com.itxuexi.it12.apiObject;
//看方法源码 : 选中方法,Ctrl + b
public class ObjectDemo {
public static void main(String[] args) {
Student s = new Student();
s.setName("张悦");
s.setAge(20);
System.out.println(s); //com.itxuexi.it12.apiObject.Student@4554617c
System.out.println(s.toString()); //Student 默认继承 Object ; 建议重写 to String
/*
public void println(Object x) { // x = s
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
public static String valueOf(Object obj) { //obj =x
return (obj == null) ? "null" : obj.toString();
}
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
*/
}
}
equals方法的作用
用于对象之间的比较,返回true和false的结果
举例:s1.equals(s2); s1和s2是两个对象
package com.itxuexi.it12.apiObject02;
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 boolean equals(Object o) {
/*
this --- s1
obj --- s2
*/
//比较地址是否相同,如果相同,直接返回true
if (this == o) return true;
//判断参数是否有null
//判断两个对象是否来自同一个类
if (o == null || getClass() != o.getClass()) return false;
//向下转型
Student student = (Student) o; //student = s2
//比较年龄是否相同
if (age != student.age) return false;
//比较姓名是否相同
return name != null ? name.equals(student.name) : student.name == null;
}
}
//-------------------------------------------------------
package com.itxuexi.it12.apiObject02;
public class ObjectDemo {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("张悦");
s1.setAge(20);
Student s2 = new Student();
s2.setName("张悦");
s2.setAge(20);
//需求:比较两个对象的内容是否相同
// System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
/*
public boolean equals(Object obj) {
return (this == obj);
this --- s1
obj --- s2
return (s1 == s2);
}
*/
}
}
冒泡排序
package com.itxuexi.it12.Arrays;
public class ArraysDemo {
public static void main(String[] args) {
int [] arr = {24,43,33,65,12,45};
System.out.println("排序前:" + arrayToString(arr));
for( int x = 0 ;x < arr.length-1 ;x++){
//第一次比较
for (int i = 0; i < arr.length - 1-x; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
System.out.println("比较后:" + arrayToString(arr) );
}
//把数组中的元素按照指定的规则组成一个字符串:
public static String arrayToString(int [] arr){
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++){
if (i == arr.length-1){
sb.append(arr[i]);
}else{
sb.append(arr[i]).append(",");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
}
常用Api - Arrays
方法名 | 说明 |
---|---|
public static String toString(int[] a) | 返回指定数组的内容的字符串表示形式 |
public static void sort(int[] a) | 按照数字顺序排列指定的数组 |
package com.itxuexi.it12.Arrays;
import java.lang.reflect.Array;
import java.util.Arrays;
public class ArraysDemo2 {
public static void main(String[] args) {
//定义一个数组
int [] arr = {24,44,32,58,12};
//回指定数组的内容的字符串表示形式
System.out.println("排序前" + Arrays.toString(arr));
// 按照数字顺序排列指定的数组
Arrays.sort(arr);
System.out.println("排序后" + Arrays.toString(arr));
}
}
工具类设计思想
1、构造方法用 private 修饰
2、成员用 public static 修饰