iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Java选择排序和垃圾回收机制详解
  • 252
分享到

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

2023-06-15 22:06:33 252人浏览 独家记忆
摘要

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

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

一、垃圾回收机制

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

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

对象在内存状态有三种:

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

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

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

java虚拟机垃圾回收的过程

例如以下代码:

class Person{ //定义finalize方法在垃圾回收之前被调用 public void finalize(){         System.out.println("这个对象会被作为垃圾回收..."); } } public class p9 {  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类

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

Arrays有以下功能:

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

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

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

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

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

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]

三、选择排序法

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

选择排序法案例

public static void main(String[] args) { // TODO Auto-generated method stub int arr[]= {12,31,25,7,38};//定义一个数组     for(int i=0;i<arr.length;i++) {         int temp=i;           //数组中从i开始的最小的元素所在位置的下标(索引)赋值给temp         for(int j=i;j<arr.length;j++) {             if(arr[j]<arr[temp]) {                 temp=j;             }         }         //上面获取了数组中从i开始的最小值的下标(索引)temp,索引把第i位上的元素与其进行交换         int temp1=arr[i];         arr[i]=arr[temp];         arr[temp]=temp1;         System.out.println(arr[i]);   } }

输出结果是:

7 12 25 31 38

四、总结

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

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

--结束END--

本文标题: Java选择排序和垃圾回收机制详解

本文链接: https://www.lsjlt.com/news/281743.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java选择排序和垃圾回收机制详解
    本篇内容介绍了“Java选择排序和垃圾回收机制详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、垃圾回收机制创建对象就会占据内存,如果程...
    99+
    2023-06-15
  • Java选择排序和垃圾回收机制详情
    目录一、垃圾回收机制二、Arrays类三、选择排序法四、总结一、垃圾回收机制 创建对象就会占据内存,如果程序在执行过程中不能再使用某个对象,这个对象是徒耗内存的垃圾。作为程序员不用关...
    99+
    2024-04-02
  • java 垃圾回收机制以及经典垃圾回收器详解
    判断对象存活方法 引用计数法:在对象中添加一个引用计数子,每当一个地方引用他时,计数器就加一,当引用失效时,计数器就减一。 会有对象循环引用问题: objA.instance =...
    99+
    2024-04-02
  • Java的垃圾回收机制详解
    目录 1、C语言与Java语言垃圾回收区别 2、System.gc() 3、面试题引入Java垃圾回收 3.1 jvm怎么确定哪些对象应该进行回收 3.1.1 引用计数法 3.1.2 可达性分析算法  3.2 jvm会在什么时候进行垃圾回收...
    99+
    2023-09-13
    java jvm 开发语言
  • Java 中的垃圾回收机制详解
    目录介绍重要条款:使对象符合 GC 条件的方法请求JVM运行垃圾收集器的方式定稿总结介绍 在 C/C++ 中,程序员负责对象的创建和销毁。通常程序员会忽略无用对象的销毁。由...
    99+
    2024-04-02
  • Python垃圾回收机制详解
    目录1. 引用计数2. 标记-清除3. 分代回收4. 其他4.1 JNI(Java Native Interface)总结 Python 的GC模块主要运用了引用计数来跟踪和回收垃圾...
    99+
    2024-04-02
  • Java垃圾回收机制的示例详解
    目录一、概述二、对象已死?1.引用计数算法2.可达性分析算法3.四种引用4.生存还是死亡?5.回收方法区三、垃圾收集算法1.分代收集理论2.名词解释3.标记-清除算法4.标记-复制算...
    99+
    2024-04-02
  • Java基础之垃圾回收机制详解
    目录一、GC的作用二、GC主要回收哪些内存三、分代回收四、垃圾回收器五、总结一、GC的作用 进行内存管理 C语言中的内存,申请内存之后需要手动释放;一旦忘记释放,就会发生内存泄漏! ...
    99+
    2024-04-02
  • 详解JavaScript的垃圾回收机制
    目录为什么需要垃圾回收(GC)什么是垃圾回收垃圾产生垃圾回收策略引用计数标记循环引用引发的问题解决方法引用计数算法的优缺点标记清除算法核心思想标记清除算法优缺点标记整理算法V8引擎的...
    99+
    2024-04-02
  • 浅谈Java垃圾回收机制
    目录一.什么是垃圾二.怎么回收垃圾2.1 静态对象什么时候变成垃圾被回收2.2 新生代和年老代三、垃圾回收算法3.1 标记清除算法3.2 复制清除算法(专门用于处理年轻代垃圾的)3....
    99+
    2024-04-02
  • 详解 Java性能优化和JVM GC(垃圾回收机制)
    Java的性能优化,JVM GC(垃圾回收机制)在学习Java GC 之前,我们需要记住一个单词:stop-the-world 。它会在任何一种GC算法中发生。stop-the-world 意味着JVM因为需要执行GC而停止了应用程序的执行...
    99+
    2023-06-02
  • Go语言垃圾回收机制详解
    Go语言(也称为Golang)是谷歌开发的一种高效的编程语言,具有并发性和垃圾回收机制等特点。本文将详细解释Go语言中的垃圾回收机制,包括其原理、实现方式以及代码示例。 1. 垃圾回收...
    99+
    2024-04-02
  • Java jvm垃圾回收详解
    目录常见面试题1.JVM内存回收和分配1.1主要的区域?gc测试1.2大对象进入老年代1.3长期存活的对象进入老年代1.4主要进行gc的区域gc的类型Young GcFull Gc1...
    99+
    2024-04-02
  • Java超详细分析垃圾回收机制
    目录前言垃圾回收概述内存溢出和内存泄漏垃圾回收算法标记阶段STW(Stop-the-World)回收阶段标记-清除算法复制算法标记-压缩算法三种算法的比较总结前言 在前面我们对类加载...
    99+
    2024-04-02
  • PHP垃圾回收机制讲解
    PHP的垃圾回收机制 垃圾回收机制是一种动态存储分配的方案。它会自动释放程序不再需要的已分配的内存块。垃圾回收机制可以让程序员不必过分关心程序内存分配,从而将更多的精力投入到业务逻辑...
    99+
    2024-04-02
  • 怎么理解Java 垃圾回收机制
    怎么理解Java 垃圾回收机制,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是自动垃圾回收自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将...
    99+
    2023-06-05
  • Java垃圾回收机制怎么理解
    这篇文章主要讲解了“Java垃圾回收机制怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java垃圾回收机制怎么理解”吧!Java垃圾回收是一个自动运行的管理程序运行时使用的内存的进程...
    99+
    2023-06-17
  • PHP的垃圾回收机制(全网详解)
    概念: PHP的垃圾回收机制是自动的,它通过内置的垃圾回收器(Garbage Collector)来实现。当一个PHP对象不再被引用时,它就成为垃圾。垃圾回收器会定期扫描内存中的所有对象,将没有引用的对象标记为垃圾,并释放它们占用的内存空间...
    99+
    2023-09-01
    php jvm java
  • Java垃圾回收机制是什么
    这篇文章主要介绍“Java垃圾回收机制是什么”,在日常操作中,相信很多人在Java垃圾回收机制是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java垃圾回收机制是什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • java中的垃圾回收机制以及经典垃圾回收器的详细介绍
    本篇内容介绍了“java中的垃圾回收机制以及经典垃圾回收器的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!判断对象存活方法引用计数法...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作