一、Main方法的args參數
args[] 是程序運行前可傳入的參數,比如 java HelloWorld a,那么在HelloWorld的main方法里面 args就是{"a"},多個的話用空格隔開,比如java HelloWorld a b c,那么在HelloWorld的main方法里面 args就是{"a", "b", "c"}。
多數情況下,該參數不被使用,但是 java規定main方法里必須傳入這樣一個字符串數組,名稱隨意。
二、循環體內聲明變量
一般情況下,對于生命周期只限于循環體的變量,可直接在循環體內聲明,這并不很影響內存效率。首先,Java的垃圾回收功能(GC)已經非常完善,每次循環聲明創建的變量,在本次循環結束之后即會被標記為“可以被GC回收了”。其次,在循環體外聲明變量,人為地將變量的生命周期拉長了,并且循環結束后GC不能及時判斷其可回收性,從而進行回收。
三、偽隨機數
真實隨機數只存在于真實世界物理現象中,如拋硬幣、轉盤等。在計算機編程中,由程序生成的隨機數都是“偽隨機數”,是由一個隨機“種子值”,經過一定的算法計算出來的,所以,只要隨機種子一定,計算方法一定,產生的隨機數就是固定的。
只要用戶或第三方不設置隨機種子,那么在默認情況下隨機種子來自系統時鐘。因為時鐘是在不斷變化的,經過一定的算法計算,達到“隨機”的效果。
通常情況下,因為系統時鐘的值是隨時間線性增長的,連續時間內,取得的隨機數總是有一定周期性,取值范圍越大周期性越明顯(如取0~100內隨機數),因此取范圍越小的隨機數效果較好(如取0~10內隨機數)。
四、Static靜態關鍵字
我們知道,當我們通過new關鍵字去創建對象的時候,那么數據的存儲空間才會被分配,類中的成員方法才能被對象所使用。但是呢有兩種特殊的情況:1、我們通過new關鍵字創建的對象共享同一個資源,而不是說每個對象都擁有自己的數據,或者說根本就不需要去創建對象,這個資源和對象之間是沒有關系的。2、希望某個方法不與包含它的類的任何對象聯系在一起。總結下來就是說:即使沒有創建對象,也能使用屬性和調用方法,static目的就是在于解決這個問題。
靜態變量:
被static修飾的成員變量叫做靜態變量,也叫做類變量,說明這個變量是屬于這個類的,而不是屬于是對象,沒有被static修飾的成員變量叫做實例變量,說明這個變量是屬于某個具體的對象的。它們的區別如下:
實例變量:每次創建對象,都會為每個對象分配成員變量內存空間,實例變量是屬于實例對象的,在內存中,創建幾次對象,就有幾份成員變量。
靜態變量:靜態變量由于不屬于任何實例對象,是屬于類的,所以在內存中只會有一份,在類的加載過程中,JVM為靜態變量分配一次內存空間。
靜態方法:
被static修飾的方法也叫做靜態方法,因為對于靜態方法來說是不屬于任何實例對象的,那么就是說在靜態方法內部是不能使用this的,因為既然不屬于任何對象,那么就更談不上this了。
浙公網安備 33010602011771號