2 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
設(shè)想下你是java(確切地說,是jvm的設(shè)計(jì)者),你會(huì)遇到很多這樣的選擇:將程序做得很活,比如說方法體可以無限長度,或者方法參數(shù)可以無限多。
這種“很活”的東西如果要設(shè)計(jì)出來,那么也不是不可以,比如說,需要一個(gè)可以動(dòng)態(tài)分配的存儲(chǔ)機(jī)制,比如說類似鏈表那樣可以無限長度的列表,比如說需要在每個(gè)方法的元數(shù)據(jù)上安排額外的標(biāo)簽來表示它有多少參數(shù),或者多少長度。
然而這種設(shè)計(jì),是以增加復(fù)雜度(jvm的復(fù)雜度,所有以java字節(jié)碼為目標(biāo)的語言的編譯器的復(fù)雜度,等等)和時(shí)間開銷為代價(jià)的。可是實(shí)際上,從工程的角度看,這種需求存在,但是微乎其微地存在。結(jié)果就是,1000個(gè)人被1個(gè)人拖累。那么顯然java的設(shè)計(jì)者是為了這一個(gè)人呢,還是為了其他人呢,這就是一個(gè)值得思考的問題。
當(dāng)然了,我們也有自作聰明的時(shí)候,比如說,在1970年代或者更早,我們用2個(gè)數(shù)字表示年份,比如1998年叫做98年。結(jié)果呢,結(jié)果我們遇到了所謂“千年蟲”問題,,我們不得不重新設(shè)計(jì)各種軟件。
所以說,合理性和不合理性是相對的,僅此而已。

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
這個(gè)分為幾點(diǎn)回答:
Unicode本身只是一個(gè)標(biāo)準(zhǔn),不是具體實(shí)現(xiàn),并沒有限定字節(jié)數(shù)。
目前用于實(shí)用的 Unicode 版本對應(yīng)于 UCS-2,使用16位的編碼空間,因此最大能表示65535個(gè)字符。
Unicode是發(fā)展的,6萬個(gè)確實(shí)不夠,事實(shí)上現(xiàn)在的Unicode已經(jīng)支持超過10萬個(gè)字符(第10萬個(gè)于2005年被采納,為馬來亞拉姆語。當(dāng)前的Unicode版本為6.3,2013年9月30日制定。
Java中使用的仍是UCS-2。
- 2 回答
- 0 關(guān)注
- 797 瀏覽