java?System類(lèi)和Arrays類(lèi)詳解
前言
這一篇我們聊一下System類(lèi)和Arrays類(lèi),本來(lái)不想聊這個(gè)的,我感覺(jué)大家對(duì)這個(gè)一看就會(huì),但是又想到我這個(gè)文章分類(lèi),我想表達(dá)的東西,不能缺席,所以這篇還是發(fā)來(lái)。
一.介紹
天天說(shuō)用System.out.println()來(lái)輸出,那么我有個(gè)小問(wèn)題想請(qǐng)教,out是一個(gè)變量還是一個(gè)內(nèi)部類(lèi)呢?大型而系統(tǒng)的知識(shí)都有各種專(zhuān)題來(lái)詳解,這些散碎的知識(shí)點(diǎn)我們也不能忽視,否則面試的時(shí)候被問(wèn)到這么簡(jiǎn)單的問(wèn)題,答不上來(lái),就很尷尬了。
System作為系統(tǒng)類(lèi),在JDK的java.lang包中,可見(jiàn)它也是一種java的核心語(yǔ)言特性。System類(lèi)的構(gòu)造器由private修飾,不允許被實(shí)例化。因此,類(lèi)中的方法也都是static修飾的靜態(tài)方法。
JAVA中的Arrays類(lèi)是一個(gè)實(shí)現(xiàn)對(duì)數(shù)組操作的工具類(lèi),包括了各種各樣的靜態(tài)方法,可以實(shí)現(xiàn)數(shù)組的排序和查找、數(shù)組的比較和對(duì)數(shù)組增加元素,數(shù)組的復(fù)制和將數(shù)組轉(zhuǎn)換成字符串等功能。這些方法都有對(duì)所有基本類(lèi)型的重載方法。
二.知識(shí)點(diǎn)介紹
- 1、概念
- 2、常用方法
- 3、注意事項(xiàng)
- 4、Arrays類(lèi)
三.知識(shí)點(diǎn)詳解
1、概念
在API中System類(lèi)介紹的比較簡(jiǎn)單,我們給出定義,System中代表程序所在系統(tǒng),提供了對(duì)應(yīng)的一些系統(tǒng)屬性信息,和系統(tǒng)操作。
2、常用方法
- (1)public static void gc():用來(lái)運(yùn)行JVM中的垃圾回收器,完成內(nèi)存中垃圾的清除
- (2)public static void exit(int status):用來(lái)結(jié)束正在運(yùn)行的Java程序。參數(shù)傳入一個(gè)數(shù)字即可。通常傳入0記為正常狀態(tài),其他為異常狀態(tài)
- (3)public static long currentTimeMillis():獲取當(dāng)前系統(tǒng)時(shí)間與1970年01月01日00:00點(diǎn)之間的毫秒差值
- (4)public static Properties getProperties():用來(lái)獲取指定鍵(字符串名稱(chēng))中所記錄的系統(tǒng)屬性信息
代碼演示:
package com.Test; import Test2.MyDate; import java.awt.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Properties; public class Main { private final static String name = "磊哥的java歷險(xiǎn)記-@51博客"; /* *public static void gc() //回收垃圾 *public static void exit(int status) //退出程序,0為正常狀態(tài),其他為異常狀態(tài) *public static long currentTimeMillis() //獲取當(dāng)前時(shí)間毫秒值 *public static Properties getProperties() //獲取某個(gè)屬性信息 */ public static void main(String[] args) { //構(gòu)造方法被私有 不能創(chuàng)建對(duì)象 //System sy = new System(); //public static void exit(int status) //退出程序,0為正常狀態(tài),其他為異常狀態(tài) // System.out.println("我要退出了!"); // System.exit(0); // System.out.println("我已經(jīng)退出了!"); //public static long currentTimeMillis() //獲取當(dāng)前時(shí)間毫秒值 long timeMillis = System.currentTimeMillis(); long time = new Date().getTime(); long timeInMillis = Calendar.getInstance().getTimeInMillis(); System.out.println(timeMillis); for(int i = 0; i < 5; i++) { System.out.println("i love java"); } long timeMillis2 = System.currentTimeMillis(); System.out.println(timeMillis2-timeMillis); //publicstatic Properties getProperties() //獲取某個(gè)屬性信息 Properties properties = System.getProperties(); System.out.println(properties); System.out.println("============="+name+"============="); } }
3、注意事項(xiàng)
System類(lèi)不能手動(dòng)創(chuàng)建對(duì)象,因?yàn)闃?gòu)造方法被private修飾,阻止外界創(chuàng)建對(duì)象。System類(lèi)中的都是static方法,類(lèi)名訪問(wèn)即可。在JDK中,有許多這樣的類(lèi)。
4、Arrays類(lèi)
Arrays類(lèi)是jdk提供的專(zhuān)門(mén)用于操作數(shù)組的工具類(lèi),位于java.util包中。
4.1、Arrays類(lèi)的常用方法
- (1)Arrays toString () //返回指定數(shù)組內(nèi)容的字符串表示形式。
- (2)Arrays copyOf () //復(fù)制指定的數(shù)組,截取或用 null 填充(如有必要),以使副本具有指定的長(zhǎng)度。
- (3)Arrays sort() //對(duì)指定的類(lèi)型數(shù)組按數(shù)字升序進(jìn)行排序。
- (4)Arrays binarySearch () //使用二分搜索法來(lái)搜索制定類(lèi)型數(shù)組,以獲得指定的值 //必須有序
- (5)Arrays fill() //將指定的類(lèi)型值分配給指定 類(lèi) 型數(shù)組指定范圍中的每個(gè)元素
- (6)Arrays equals() //如果兩個(gè)指定的類(lèi)型數(shù)組彼此相等,則返回 true。
代碼演示:
package com.Test; import java.util.Arrays; /* Arrays toString () //返回指定數(shù)組內(nèi)容的字符串表示形式。 Arrays copyOf () //復(fù)制指定的數(shù)組,截取或用 null 填充(如有必要),以使副本具有指定的長(zhǎng)度。 Arrays sort() //對(duì)指定的類(lèi)型數(shù)組按數(shù)字升序進(jìn)行排序。 Arrays binarySearch () //使用二分搜索法來(lái)搜索制定類(lèi)型數(shù)組,以獲得指定的值 //必須有序 Arrays fill() //將指定的類(lèi)型值分配給指定 類(lèi) 型數(shù)組指定范圍中的每個(gè)元素 Arrays equals() //如果兩個(gè)指定的類(lèi)型數(shù)組彼此相等,則返回 true。*/ public class Test{ private final static String name = "磊哥的java歷險(xiǎn)記-@51博客"; public static void main(String args[]){ //定義數(shù)組 int[] score={1,2,3}; int[] scores={1,2,3}; //數(shù)組之間比較,長(zhǎng)度,值相等,則認(rèn)為兩個(gè)數(shù)組相等,返回布爾值 System.out.println("比較值和長(zhǎng)度:"+Arrays.equals(score,scores)); //判斷地址 if(score==scores){ System.out.println("score和scores比較,相等"); }else{ System.out.println("score和scores比較,不相等"); } //定義二維數(shù)組 int[][] sc={{222,333,1,2,0},{1,2,3,2,0}}; //排序 Arrays.sort(sc[1]); System.out.println("排序:"+Arrays.toString(sc[1])); System.out.println("按照下標(biāo)取值:"+sc[0][1]+" "); //定義數(shù)據(jù)se int[] se={1,2,3,4,5}; //填充數(shù)組 Arrays.fill(se,0); System.out.println("填充:"+Arrays.toString(se)); //復(fù)制值到sx,增加指定長(zhǎng)度 int[] sx=Arrays.copyOf(se,2); //輸出sx的填充后的值 System.out.println("復(fù)制2:"+Arrays.toString(sx)); int[] xb={14,20,67,34,33,23,10}; //排序xb Arrays.sort(xb); System.out.println(Arrays.toString(xb)); //在排序后,通過(guò)二分查找,找到34的元素,并返回下標(biāo) int index1=Arrays.binarySearch(xb,34); System.out.println("二分法取值:"+index1); System.out.println("============="+name+"============="); } }
4.2. 精煉練習(xí)
在使用Arrays類(lèi)中,我們會(huì)用到一些基本的算法如排序等。
題目:
- (1)創(chuàng)建int類(lèi)型數(shù)組A,A的值為{1,2,3,4,5}
- (2)將A的值拷貝進(jìn)長(zhǎng)度為6的B中
- (3)比較A和B是否相同
實(shí)驗(yàn)步驟:
- (1)聲明一個(gè)類(lèi)Test,并且創(chuàng)建兩個(gè)數(shù)組
- (2)使用Arrays相關(guān)方法完成操作
代碼演示:
package com.Test; import java.util.Arrays; /*聲明一個(gè)類(lèi)Test,并且創(chuàng)建兩個(gè)數(shù)組*/ /* Arrays toString () //返回指定數(shù)組內(nèi)容的字符串表示形式。 Arrays copyOf () //復(fù)制指定的數(shù)組,截取或用 null 填充(如有必要),以使副本具有指定的長(zhǎng)度。 Arrays sort() //對(duì)指定的類(lèi)型數(shù)組按數(shù)字升序進(jìn)行排序。 Arrays binarySearch () //使用二分搜索法來(lái)搜索制定類(lèi)型數(shù)組,以獲得指定的值 //必須有序 Arrays fill() //將指定的類(lèi)型值分配給指定 類(lèi) 型數(shù)組指定范圍中的每個(gè)元素 Arrays equals() //如果兩個(gè)指定的類(lèi)型數(shù)組彼此相等,則返回 true。*/ public class Main { private final static String name = "磊哥的java歷險(xiǎn)記-@51博客"; public static void main(String[] args){ //創(chuàng)建int類(lèi)型數(shù)組A,A的值為{1,2,3,4,5} int[]A = new int[]{1,2,3,4,5}; //將A的值拷貝進(jìn)長(zhǎng)度為6的B中 int[]B = Arrays.copyOf(A, 6); //比較A和B是否相同 System.out.println("兩個(gè)數(shù)組是否相等:"+Arrays.equals(A, B)); System.out.println("============="+name+"============="); } }
結(jié)語(yǔ):
既然選擇了追求,就不要哭泣。堅(jiān)持一下,扛過(guò)今天,幸福就更近一步。真正能把人累垮的,是心里的絕望。
到此這篇關(guān)于java System類(lèi)和Arrays類(lèi)詳解的文章就介紹到這了,更多相關(guān)java System類(lèi)與Arrays類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
hibernate-validator如何使用校驗(yàn)框架
高效、合理的使用hibernate-validator校驗(yàn)框架可以提高程序的可讀性,以及減少不必要的代碼邏輯,本文主要介紹了hibernate-validator如何使用校驗(yàn)框架,感興趣的可以了解一下2022-04-04簡(jiǎn)單的java socket客戶端和服務(wù)端示例
這篇文章主要介紹了java的socket客戶端和服務(wù)端示例,大家參考使用吧2014-01-01Spring Security結(jié)合JWT的方法教程
這篇文章主要給大家介紹了關(guān)于Spring Security結(jié)合JWT的方法教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12簡(jiǎn)單了解Java創(chuàng)建線程兩種方法
這篇文章主要介紹了簡(jiǎn)單了解Java創(chuàng)建線程兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02Java中的CountDownLatch、CyclicBarrier和semaphore實(shí)現(xiàn)原理解讀
這篇文章主要介紹了Java中的CountDownLatch、CyclicBarrier和semaphore實(shí)現(xiàn)原理詳解,CountDownLatch中調(diào)用await方法線程需要等待所有調(diào)用countDown方法的線程執(zhí)行,這就很適合一個(gè)業(yè)務(wù)需要一些準(zhǔn)備條件,等準(zhǔn)備條件準(zhǔn)備好之后再繼續(xù)執(zhí)行,需要的朋友可以參考下2023-12-12POI讀取excel簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了POI讀取excel簡(jiǎn)介,詳細(xì)的介紹了什么是Apache POI和組件,有興趣的可以了解了解一下2017-08-08Java最常用的6個(gè)簡(jiǎn)單的計(jì)算題
本篇文章給大家整理的在JAVA中最常用到的簡(jiǎn)單的計(jì)算題,對(duì)此有興趣的朋友可以測(cè)試參考下。2018-02-02通過(guò)springboot+mybatis+druid配置動(dòng)態(tài)數(shù)據(jù)源
這篇文章主要介紹了通過(guò)springboot+mybatis+druid配置動(dòng)態(tài)數(shù)據(jù)源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06