原创 Java 泛型
泛型是使用一種稱爲類型消除的方法實現的。編譯器使用泛型類型信息來編譯代碼,但是隨後會消除它。因此,泛型信息在運行時是不可用的。這種方法可以使泛型向後兼容使用原始類型的遺留代碼。 泛型存在於編譯時。一旦編譯確認泛型類型是安全的,
原创 C語言結構體聲明
這兩個聲明有什麼不同? struct x1{}; typedef struct {}x2; 第一種形式聲明瞭一個“結構標籤”;第二種聲明瞭一個“類型定義”。主要的區別在於第二種聲明更顯抽象一些---用戶不必知道他是一個結構,且聲明他
原创 java十種排序
本文件講了十種JAVA排序方法(冒泡(Bubble)排序——相鄰交換、選擇排序——每次最小/大排在相應的位置、插入排序——將下一個插入已排好的序列中、殼(Shell)排序——縮小增量 、歸併排序、快速排序 、堆排序 、拓撲排序、錦標賽排序
原创 C語言結構填充
爲什麼sizeof返回的值大於結構大小的期望值,是不是尾部有填充? 爲了確保分配連續的結構數組時正確對齊,結構可能有這種尾部填充(也可能是內部填充)。即使結構不是數組的成員,尾部填充也會保持,以便sizeof能夠總是返回一致的大小
原创 C語言類型定義
對於用戶定義類型,typedef和#define有什麼區別? 一般來說,最好使用typedef,部分原因是他能正確處理指針類型。例如這些聲明: typedef char *string_t; #define string_d
原创 JAVA 外部排序
import java.io.*; public class SortLargeFile{ public static final int MAX_ARRAY_SIZE=100000; public static final
原创 JAVA 算術運算
class GenericStack { private java.util.ArrayList list=new java.util.ArrayList(); public int getSize(){ return
原创 C語言數組和指針
我在一個文件定義了一個extern 數組,然後在另一個文件中使用 : file1.c: int array[]={1,2,3}; file2.c extern int array[]; 爲什麼在file2.c中,sizeof取不
原创 堆排序 JAVA
class Heap{ private java.util.ArrayListlist=new java.util.ArrayList(); public Heap(){} public Heap(E[] object
原创 C語言聲明
怎樣定義和聲明全局變量和函數最好。 首先,儘管一個全局變量或函數可以有多處聲明但是定義卻最多隻允許出現一次,對於全局變量,定義是真正分配空間並賦初值的聲明,對於函數,定義是提供函數體的聲明。 例如:這些是聲明: exter
原创 隨機數 C語言
怎樣獲得某一範圍的隨機整數? 直接使用這種方法: rand()%N; (試圖返回從0到N-1的整數)不好,因爲許多隨機數生成器的低位並不隨機。 一個較好的方法是: (int)((double)rand()/((double)R
原创 指針和數組等價
在C語言中“指針和數組等價”到底是什麼意思? 在c語言中對數組和指針的困惑多數都來自這一句話。說數組和指針“等價”並不表示他們相同,甚至也不能互換。他的意思是說數組和指針的算法定義使得可以用指針方便地訪問數組或者模擬數組。換言之,正如Wa