例如整數好了,在Java李就要分成Primitive type跟Wrapped Object。
為什麼要這樣分呢?
其實是為了Generic Programming而衍伸出來的做法。
因為在Java裡一切都是物件,所以連Generic中的東西都要用物件去包,才能保證語言的形態安全。
於是在Java裡面不能使用
Stack而要使用s;
Stacks ;
塞個東西進去要
s.push(Integer(1));而不能使用
s.push(1);
這不僅是語法上的不便,更是造成實際執行的效能影響。
因為每個物件存取都需要在經過一層reference,比起1直接使用,
操作一多效率可就影響大了。
在這方面,C#中對built-in type的generic programming,例如Stack