system 的所有的成员都是static修饰的,直接用类名调用即可,不需要对象
把构造方法private修饰
常用方法: System.exit(0);//正常结束JVM
参数: int status: 0表示正常终止JVM,非0表示异常终止JVM
System类的静态方法
currentTimeMillis(): 获取当前时间的毫秒值 等价于: new Date().getTime()
//1.获取开始时间对应的毫秒值
long start = System.currentTimeMillis();
### 数组拷贝
//调用方法,根据题目需求实现数组元素的复制
System.arraycopy(srcArr,2,destArr,2索引,4个数);
复制到目标数组从指定的位置开始,到最后一个个数 ;
/*
java.lang.System类: 用来完成相关系统操作的工具类
常用方法:
public static void gc(): 运行垃圾回收器。
运行垃圾回收器,JVM将从堆内存中清理对象,
清理对象的同时会调用对象的finalize()方法,建议自定义类覆盖重写finalize()方法
JVM的垃圾回收器是通过另一个线程开启的
*/
public class Demo05System {
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
new Student();
}
System.gc();//建议运行垃圾回收器
System.out.println("main...end...");
}
}
public class Student {
@Override
protected void finalize() throws Throwable {
System.out.println("对象被回收了...");
}
}
冒泡排序
1.原理: 每次都是从第一个元素开始向后两两进行比较,
只要后面的元素小于前面的元素,就交换这两个元素(从小到大)
2.总结:
1.有5个数需要排4趟,有n个数需要n-1趟
2.每趟排序的次数都比前面一趟少1次
2.总结:
1.有5个数需要排4趟,有n个数需要n-1趟
2.每趟排序的次数都比前面一趟少1次
public class Demo05BubbleSort {
public static void main(String[] args) {
//定义数组
int[] arr = {7, 6, 5, 4, 3};
System.out.println("未排序前: " + Arrays.toString(arr));
/*
以下for循环中数字4写死了,可以使用数组长度减1代替
*/
//arr.length-1: 能否不写 减 1 呢? 可以的,只是多排了一趟而已
for (int i = 0; i < arr.length - 1; i++) {//外层for循环: 控制排序的趟数
for (int j = 0; j < arr.length -1 - i; j++) {//内层循环: 控制每趟排序的次数
//arr.length - 1 - i: 能否不写减i呢? 可以,只是每趟排序的次数多了一次而已
//arr.length - 1 - i: 能否不写减1呢? 必然不可以,因为会发生索引越界
//j<arr.length && j + 1<arr.length ==> j<arr.length-1
if (arr[j] > arr[j + 1]) {
//实现数组元素的交换
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println("升序排序后: " + Arrays.toString(arr));
}
}
/*
java.util.Arrays的特点:
1.所有的成员都是static修饰的,直接用类名调用即可,不需要对象
2.把构造方法private修饰
常用方法:
public static void sort(int[] a) 对指定的int数组进行升序排列
public static int binarySearch(int[] a,int key):
对数组进行二分查找法,找不到元素返回(-插入点)-1
二分查找前提: 1.数组必须要保证是有序的 2.数组元素不能重复
public static String toString(int[] a) 将数组转成字符串
//调用方法按照从小到大的顺序排序
MyArrays.sort(array);
System.out.println("排序后: "+Arrays.toString(array));
System.out.println("二分超找1: "+Arrays.binarySearch(array,1));//0
System.out.println("二分超找6: "+Arrays.binarySearch(array,6));//4
System.out.println("二分超找10: "+Arrays.binarySearch(array,10));//6
}
}