一、垃圾回收机制1、创建对象会占用内存。如果程序在执行过程中不能再使用某个对象,那么这个对象就白白消耗了内存Rubbish。作为程序员,你不需要关心垃圾对象的回收,因为java虚拟机会自动回收垃圾对象占用的内存空间。2.当一个对象变成垃圾时,它会暂时保存在内存中。如果垃圾堆满了,Java虚拟机有垃圾回收机制,回收到的垃圾对象占用的内存空间会被垃圾回收器释放。但是,程序会占用大量的存储空间。也可以通过调用System.gc()方法让java虚拟机进行垃圾回收。当一个对象在内存中被释放时,可以通过finalize()方法自动调用它。3、对象在内存中的三种状态:可达状态:当一个对象被创建时,有多个引用变量指向它,该对象就处于可达状态。可恢复状态:没有引用变量指向这个对象。在虚拟机进行垃圾回收之前,系统会调用finalize()对所有可恢复状态的对象进行清理。如果系统在调用finalize()方法时重新允许一个引用变量指向该对象,则该对象将再次变为可达,否则,该对象将进入不可达状态。不可达状态:当对象与所有引用变量的关联被打破,系统已经调用了所有对象的finalize()方法而对象还没有变得可达时,那么对象将永久失去引用,最后创建一个无法到达的状态。4.java虚拟机的垃圾回收过程比如下面的代码:classPerson{//定义垃圾回收前要调用的finalize方法publicvoidfinalize(){System.out.println("这个对象将作为垃圾回收...");}}publicclassp9{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//创建两个Person对象Personp1=newPerson();Personp2=newPerson();//设置对象为nullp1=null;p2=null;//调用垃圾回收方法System.gc();}输出结果为:Thisobjectwillbecollectedasgarbage...Thisobjectwillcollectedasgarbage...2.Arrays类1、Java提供了Arrays类方便对数组进行操作。2.Arrays有以下功能:数组赋值:用Arrays.fill()方法填充数组;数组排序:通过Arrays.sort()方法对数组的所有元素进行排序,按照从小到大的顺序;数组比较:通过Arrays.equals()方法判断数组元素的值是否相等;查找数组元素:Arrays.binarySearch()方法通过二分法在排序后的数组中查找指定元素,返回该元素的下标;数组转换字符串:Arrays.toString()方法将数组转换成字符串并输出;3、Arrays类的示例代码如下:publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubint[]a1=newint[]{5,2,3,9};int[]a2=newint[]{5,2,3,9};//Arrays.equals()方法判断数组元素是否相等System.out.println("a1数组和a2数组是否相等:"+Arrays.equals(a1,a2));int[]b=Arrays.copyOf(a1,6);System.out.println("A1数组和b数组相等:"+Arrays.equals(a1,b));//toString()方法将数组转换为字符串System.out.println("b数组的元素为:"+Arrays.toString(b));//Array.fill()方法数组赋值Arrays.fill(b,2,4,1);System.out.println("b数组的元素为:"+Arrays.toString(b));//Arrsays.sort()方法数组排序Arrays.sort(b);System.out.println("b数组的元素为:"+Arrays.toString(b));}输出结果为:a1数组和a2数组是否相等:truea1数组和b数组是否相等:falseb数组的元素数组是:[5,2,3,9,0,0]b数组的元素是:[5,2,1,1,0,0]b数组的元素是:[0,0,1,1,2,5]三、选择排序法1.先找到最小元素的位置标记(index),将本元素与第一个元素交换2.选择排序方法casepublicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintarr[]={12,31,25,7,38};//定义anarrayfor(inti=0;i
