首先肯定不能使用內存排序算法,內存根本裝不下,所以需要使用外存來排序。這時候使用多路歸併排序,把數據分爲n段,每段小於100Mb,再使用用內存來排序,將排序結果用外存記錄,然後每次從外存中來取記錄,在內存中進行比較,從而獲取最後的排序結果。
抽象類中的抽象方法(其前有 abstract1修飾)不能用 private、 static、 synchronized、na tive訪回修飾符修飾。原因如下: private 抽象方法沒有方法體,是用來被繼承的,所以不能用
時間複雜度 既然要在任意地方插入值 這個複雜度一定是N 也就是嘗試次數 權值=211+28+26+23+3*5=71 我當時傻了。。 這是一個大堆,堆排序就是先最後一個和第一個進行交換,然後忽略掉最後一個,然後重
重載必須是在一個類中。 重寫: 方法名相同,參數類型相同 子類返回類型小於等於父類方法返回類型, 子類拋出異常小於等於父類方法拋出異常, 子類訪問權限大於等於父類方法訪問權限。 local variable, 局部變量:在方
超類即父類。 HashSet的底層還是用HashMap來實現的。將Entry<K,V>的V都變成了同一個Object對象,public static final PRESENT = new Object()。 而HashMa
數組是對象哦。數組的父類也是Object,每個數組都實現了接口Cloneable and java.io.Serializable import java.util.ArrayList; import java.util
棧是限定在一端進行插入與刪除的線性表,允許插入與刪除的一端稱爲棧頂,不允許插入與刪除的另一端稱爲棧底。棧按照“先進後出”(FILO)或“後進先出”(LIFO)組織數據,棧具有記憶作用 尾遞歸是指,在函數返回的時候,調用自身本
A不影響,B會終止,C會阻塞,D沒關係 null可以被強制類型轉換成任意類型的對象,通過這樣的方式可以執行對象的靜態方法,但如果方法不是靜態方法的話,由於null對象並沒有被實例化(分配空間),因而運行時會報空指針錯誤。 i
但是volatile不能保證原子性,也就不能保證線程安全。 1,可見性 可見性指的是在一個線程中對該變量的修改會馬上由工作內存(Work Memory)寫回主內存(Main Memory),所以會馬上反應在其它線程的讀取操作中
Java 運行時數據區可以分成 方法區、 堆、 棧、 程序計數器、 本地方法棧 堆:Java 對象, 線程之間共享的 棧:方法運行,每一個方法對應一個棧幀,每一個線程對應一個棧, 每個棧幀包括 操作數、局部變量表、指向運行時常
import java.util.Scanner; import java.util.HashSet; public class Main { public static void main(String[] ar
1.只能以字母開頭 2、java的變量名有三種元素構成:數字+字符+$+下劃線。 3、java對這三種元素的順序也是有要求的:不能以數字開頭+不能是關鍵字. 4、A中錯在以數字開頭、B中錯在有空格、C中錯在有*. 爲什麼我們
a屬於類所以在堆中。bc屬於方法,b c爲局部變量,局部變量不屬於任何類或者實例,因此它總是保存在其所在方法的棧內存中! A:變量不能被defalut修飾 B:native修飾方法,native修飾的方法簡單來說就是:一個J
一個Unicode佔兩個字節16個比特位 ①無論如何,Integer與new Integer不會相等。不會經歷拆箱過程, ②兩個都是非new出來的Integer,如果數在-128到127之間,則是true,否則爲false
import java.util.*; public class UnusualAdd { public int addAB(int A, int B) { if(B==0) {
藉助別人的圖…… 如果序列有序或者基本有序,則直接插入或者冒泡最簡單 無向圖的頂點個數爲n,則該圖最多有 n(n-1)/2 條邊; 有相圖的頂點個數爲n,則該圖最多有n(n-1)條邊。