成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇文章帶你了解Java選擇排序和垃圾回收機制

開發 后端
創建對象就會占據內存,如果程序在執行過程中不能再使用某個對象,這個對象是徒耗內存的垃圾。作為程序員不用關心回收垃圾對象問題,因為java虛擬機會自動回收垃圾對象所占用的內存空間。

[[430263]]

一、垃圾回收機制

1.創建對象就會占據內存,如果程序在執行過程中不能再使用某個對象,這個對象是徒耗內存的垃圾。作為程序員不用關心回收垃圾對象問題,因為java虛擬機會自動回收垃圾對象所占用的內存空間。

2.當一個對象成為垃圾后會暫時保留在內存,如果垃圾堆滿了,Java虛擬機有垃圾回收機制,收集到的垃圾對象所占的內存空間,會給垃圾收集器釋放。然而程序會有很多的存儲空間。也可以通過調用System.gc()方法讓java虛擬機進行垃圾回收,當一個對象在內存中被釋放,可以通過finalize()方法會被自動調用。

3.對象在內存狀態有三種:

可達狀態:當一個對象被創建后,有一個以上的引用變量指向它,這個對象就是處于可達狀態。

可恢復狀態:沒有任何引用變量指向這個對象。虛擬機進行垃圾回收之前,系統就會調用所有可恢復狀態對象finalize()進行清理。如果系統在調用finalize()方法時重新讓一個引用變量指向這個對象會再次變為可達狀態,否則,這個對象就進入不可達狀態。

不可達狀態:當對象與所有引用變量的關聯都被斷掉,系統已經調用所有對象的finalize()方法還是沒有使這個對象變成可達狀態時,那么這個對象將永久性地失去引用,最后形成不可達狀態。

4.java虛擬機垃圾回收的過程

例如以下代碼:

  1. class Person{ 
  2. //定義finalize方法在垃圾回收之前被調用 
  3. public void finalize(){ 
  4.         System.out.println("這個對象會被作為垃圾回收..."); 
  5. public class p9 { 
  6. /** 
  7.  * @param args 
  8.  */ 
  9. public static void main(String[] args) { 
  10. // TODO Auto-generated method stub 
  11.         //創建兩個Person的對象 
  12. Person p1=new Person(); 
  13. Person p2=new Person(); 
  14. //把對象設為null 
  15. p1=null
  16. p2=null
  17. //調用垃圾回收方法 
  18. System.gc(); 

輸出的結果是:

  1. 這個對象會被作為垃圾回收... 
  2.  
  3. 這個對象會被作為垃圾回收... 

二、Arrays類

1.Java提供了Arrays類方便用于對數組進行操作。

2.Arrays有以下功能:

數組賦值:通過Arrays.fill()方法用于數組填充;

數組排序:通過Arrays.sort()方法按數組所有元素進行排序,按從小到大的順序;

數組比較:通過Arrays.equals()方法判斷數組元素值是否相等;

查找數組元素:Arrays.binarySearch()方法通過二分法在已經排好序的數組中查找指定的元素,并返回該元素的下標;

數組轉換字符串:Arrays.toString()方法將數組轉換為字符串并輸出;

3.Arrays類例子

代碼如下所示:

  1. public static void main(String[] args) { 
  2. // TODO Auto-generated method stub 
  3. int[] a1 = new int[]{5, 2 , 3, 9}; 
  4.     int[] a2 = new int[]{5, 2 , 3, 9}; 
  5.     //Arrays.equals()方法判斷數組元素是否相等 
  6.     System.out.println("a1數組和a2數組是否相等:" + Arrays.equals(a1 , a2)); 
  7.     int[] b = Arrays.copyOf(a1, 6);  
  8.     System.out.println("a1數組和b數組是否相等:" + Arrays.equals(a1 , b)); 
  9.     //toString()方法將數組轉換字符串 
  10.     System.out.println("b數組的元素為:" + Arrays.toString(b)); 
  11.     //Array.fill()方法數組賦值 
  12.     Arrays.fill(b , 2, 4 , 1); 
  13.     System.out.println("b數組的元素為:" + Arrays.toString(b)); 
  14.     //Arrsays.sort()方法數組排序 
  15.     Arrays.sort(b); 
  16.     System.out.println("b數組的元素為:" + Arrays.toString(b)); 

輸出的結果是:

  1. a1數組和a2數組是否相等:true 
  2. a1數組和b數組是否相等:false 
  3. b數組的元素為:[5, 2, 3, 9, 0, 0] 
  4. b數組的元素為:[5, 2, 1, 1, 0, 0] 
  5. b數組的元素為:[0, 0, 1, 1, 2, 5] 

三、選擇排序法

1.首先找到最小元素所在位置的下標(索引),將這個元素與第一位上的元素進行交換。

2.選擇排序法案例

  1. public static void main(String[] args) { 
  2. // TODO Auto-generated method stub 
  3. int arr[]= {12,31,25,7,38};//定義一個數組 
  4.     for(int i=0;i<arr.length;i++) { 
  5.         int temp=i; 
  6.           //數組中從i開始的最小的元素所在位置的下標(索引)賦值給temp 
  7.         for(int j=i;j<arr.length;j++) { 
  8.             if(arr[j]<arr[temp]) { 
  9.                 temp=j; 
  10.             } 
  11.         } 
  12.         //上面獲取了數組中從i開始的最小值的下標(索引)temp,索引把第i位上的元素與其進行交換 
  13.         int temp1=arr[i]; 
  14.         arr[i]=arr[temp]; 
  15.         arr[temp]=temp1; 
  16.         System.out.println(arr[i]); 
  17.   } 

輸出結果是:

  1. 12 
  2. 25 
  3. 31 
  4. 38 

四、總結

 

本文主要介紹了java垃圾回收機制、Arrays類、選擇排序法。java的垃圾回收機制簡要的說明對象在內存中狀態分別有三種:可達狀態、可恢復狀態、不可達狀態。通過一個java虛擬機垃圾回收機制的案例幫助大家理解這個過程。Arrays類方便用于對數組的操作,介紹了Arrays的幾個功能。常用的選擇排序法,首先是找到最小元素的所在位置的索引,將這個元素與第一位上的元素進行交換。通過本文的學習,希望對大家有所幫助!

本文轉載自微信公眾號「Java進階學習交流」,可以通過以下二維碼關注。轉載本文請聯系Java進階學習交流公眾號。

 

責任編輯:武曉燕 來源: Java進階學習交流
相關推薦

2024-02-22 17:15:22

JS垃圾回收機制

2023-05-08 08:21:15

JavaNIO編程

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺

2020-11-17 11:10:21

CSS選擇器HTML

2023-09-06 14:57:46

JavaScript編程語言

2020-12-08 08:09:49

SVG圖標Web

2021-05-18 08:30:42

JavaScript 前端JavaScript時

2021-06-24 09:05:08

JavaScript日期前端

2021-09-27 09:18:30

ListIterato接口方法

2021-01-26 23:46:32

JavaScript數據結構前端

2021-03-05 18:04:15

JavaScript循環代碼

2021-03-09 14:04:01

JavaScriptCookie數據

2024-04-19 14:23:52

SwitchJavaScript開發

2023-07-30 15:18:54

JavaScript屬性

2021-02-26 20:01:57

SVG濾鏡元素

2024-01-30 13:47:45

2025-03-07 10:04:12

2020-05-14 13:39:19

Java 垃圾回收機制

2020-11-10 10:48:10

JavaScript屬性對象
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区二区在线视频 | 作爱视频免费观看 | 色就是色欧美 | 欧美日本在线观看 | 91资源在线| 国产欧美在线视频 | 美国十次成人欧美色导视频 | 成人精品在线观看 | 一级欧美一级日韩片免费观看 | 欧美999 | 天天插天天操 | 91精产国品一二三区 | 国产传媒在线观看 | 亚洲一二视频 | 国产91成人 | 一区二区在线 | 国产精品亚洲一区 | 久久久久国产精品 | 国产精品99 | 国产成人精品一区二区三区在线 | 欧美午夜激情在线 | 欧美日韩久久 | 久久精品高清视频 | 国产精品久久久久久久久久 | 亚洲精品片 | 午夜爱爱网 | 在线激情视频 | 午夜久久久久久久久久一区二区 | 免费久久精品视频 | 一区二区三区国产好的精 | 999久久久久久久久6666 | 国产在线精品一区二区三区 | 中文字幕一区二区三 | 青青伊人久久 | 欧美小视频在线观看 | 拍真实国产伦偷精品 | 欧美.com| 亚欧洲精品在线视频免费观看 | 91看国产 | 国产精品一区二区久久久久 | 精品国产乱码久久久久久丨区2区 |