千家信息网

Java选择排序和垃圾回收机制详解

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容介绍了"Java选择排序和垃圾回收机制详解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、
千家信息网最后更新 2025年01月19日Java选择排序和垃圾回收机制详解

本篇内容介绍了"Java选择排序和垃圾回收机制详解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、垃圾回收机制

1.创建对象就会占据内存,如果程序在执行过程中不能再使用某个对象,这个对象是徒耗内存的垃圾。作为程序员不用关心回收垃圾对象问题,因为java虚拟机会自动回收垃圾对象所占用的内存空间。

2.当一个对象成为垃圾后会暂时保留在内存,如果垃圾堆满了,Java虚拟机有垃圾回收机制,收集到的垃圾对象所占的内存空间,会给垃圾收集器释放。然而程序会有很多的存储空间。也可以通过调用System.gc()方法让java虚拟机进行垃圾回收,当一个对象在内存中被释放,可以通过finalize()方法会被自动调用。

3.对象在内存状态有三种:

可达状态:当一个对象被创建后,有一个以上的引用变量指向它,这个对象就是处于可达状态。

可恢复状态:没有任何引用变量指向这个对象。虚拟机进行垃圾回收之前,系统就会调用所有可恢复状态对象finalize()进行清理。如果系统在调用finalize()方法时重新让一个引用变量指向这个对象会再次变为可达状态,否则,这个对象就进入不可达状态。

不可达状态:当对象与所有引用变量的关联都被断掉,系统已经调用所有对象的finalize()方法还是没有使这个对象变成可达状态时,那么这个对象将永久性地失去引用,最后形成不可达状态。

4.java虚拟机垃圾回收的过程

例如以下代码:

class Person{ //定义finalize方法在垃圾回收之前被调用 public void finalize(){         System.out.println("这个对象会被作为垃圾回收..."); } } public class p9 { /**  * @param args  */ public static void main(String[] args) { // TODO Auto-generated method stub         //创建两个Person的对象 Person p1=new Person(); Person p2=new Person(); //把对象设为null p1=null; p2=null; //调用垃圾回收方法 System.gc(); }

输出的结果是:

这个对象会被作为垃圾回收...

这个对象会被作为垃圾回收...

二、Arrays类

1.Java提供了Arrays类方便用于对数组进行操作。

2.Arrays有以下功能:

数组赋值:通过Arrays.fill()方法用于数组填充;

数组排序:通过Arrays.sort()方法按数组所有元素进行排序,按从小到大的顺序;

数组比较:通过Arrays.equals()方法判断数组元素值是否相等;

查找数组元素:Arrays.binarySearch()方法通过二分法在已经排好序的数组中查找指定的元素,并返回该元素的下标;

数组转换字符串:Arrays.toString()方法将数组转换为字符串并输出;

3.Arrays类例子

代码如下所示:

public static void main(String[] args) { // TODO Auto-generated method stub int[] a1 = new int[]{5, 2 , 3, 9};     int[] a2 = new int[]{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数组是否相等:true a1数组和b数组是否相等:false b数组的元素为:[5, 2, 3, 9, 0, 0] b数组的元素为:[5, 2, 1, 1, 0, 0] b数组的元素为:[0, 0, 1, 1, 2, 5]

三、选择排序法

1.首先找到最小元素所在位置的下标(索引),将这个元素与第一位上的元素进行交换。

2.选择排序法案例

public static void main(String[] args) { // TODO Auto-generated method stub int arr[]= {12,31,25,7,38};//定义一个数组     for(int i=0;i

输出结果是:

7 12 25 31 38

四、总结

本文主要介绍了java垃圾回收机制、Arrays类、选择排序法。java的垃圾回收机制简要的说明对象在内存中状态分别有三种:可达状态、可恢复状态、不可达状态。通过一个java虚拟机垃圾回收机制的案例帮助大家理解这个过程。Arrays类方便用于对数组的操作,介绍了Arrays的几个功能。常用的选择排序法,首先是找到最小元素的所在位置的索引,将这个元素与第一位上的元素进行交换。

"Java选择排序和垃圾回收机制详解"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数组 对象 垃圾 元素 方法 状态 排序 内存 机制 选择 索引 输出 最小 下标 变量 过程 位置 字符 字符串 所在 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 搭建一个服务器要多少钱啊 数据库系统毕业设计说明书 光遇怎么下载不同渠道的服务器 应用初始化出错数据库连接失败 咸宁市网络安全宣传 网络安全法里对安全事件的要求 服务器里面没有安全模式怎么办 能众筹软件开发吗 如何配置台式电脑服务器地址 手游方舟进化进不去服务器 网络安全作文通用 宝山区网络技术服务咨询热线 网络安全技术教育平台 中国网络安全调查报告 模拟农场19联机哪个服务器好 市和为顺网络技术 企业应用软件开发主要学什么 安卓服务器搭建教程 网络安全中铁路等级保护4级 geo数据库介绍及下载指南 青岛吴晓网络技术 ps5登原神显示无法登录服务器 信息与网络安全教材 批量修改数据库语句工具 模拟农场19联机哪个服务器好 数据库设计经历的过程 市和为顺网络技术 2670 服务器 -26154服务器繁忙 账套对应的数据库被删除
0