<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 81  文章 - 1033  trackbacks - 0
    <2007年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    在浮躁的年代里,我們進取心太切,患得患失;虛榮心太強,戰戰兢兢。一心爭強好勝,惟恐榜上無名。
    I think I can fly , and flying like a bird !
    程序員一名,已售出,缺貨中!

    我的郵件聯系方式

    用且僅用于MSN

    博客點擊率
    free web counter
    free web counter

    常用鏈接

    留言簿(36)

    隨筆檔案

    搜索

    •  

    積分與排名

    • 積分 - 186916
    • 排名 - 308

    最新評論

    閱讀排行榜

    評論排行榜

          學Java也有些年頭了,但無時無刻不深感Java基礎知識、Java的OO以及Java的API也就是所謂的Core Java之重要性,從來不敢放松對它們的反復學習和提煉。并且事實證明在對它們的慢慢積累和深透的學習中悟出更多的編程之道,編程能力也在一步步見長。即使在轉而學其它語言的時候應用相應套路也會事半功倍(不過抓住不同語言之區別也至關重要,要不會走很多彎路)。

          最近決定重讀Core Java,并希望能找到以前遺漏的部分,并梳理出個更清晰的頭緒。做到先把書由薄讀厚,然后把書由厚讀薄!(再說計算機的書本來就沒有薄的,汗)不打算大篇幅的把內容都貼上來,只是想借助blog記錄些需要時刻注意的重點供自己與大家分享。

          言歸正傳,拋個磚引個玉,先來一篇Java基礎類型,可能你覺得這是Java里最簡單的概念,其實里面的東西未必每個人都清楚,并能運用的很好。


          Java整型

    int  4字節 -2147483648 ~ 2147483647   (正好超過20億)
    short 2字節 -32768 ~ 32767
    long 8字節 -9223372036854775808 ~ 9223372036854774807
    byte 1字節 -128 ~ 127



          浮點類型

    float 4字節 大約±3.40282347E+38F (有效位數為6-7位)
    double 8字節 大約±1.79769313486231570E+308 (有效位數為15位)

    一些需要注意:

    1if(x == Double.NaN)  // is never true

    1if(Double.isNaN(x))  // check whether is "not a number"

          浮點數值不適合用于禁止出現舍入誤差的金融計算中。例如System.out.println( 2.0 - 1.1);將打印0.899999999999999,而不是0.9。因為浮點數值采用二進制系統表示,而二進制無法精確表示分數1/10,就像十進制無法精確表示1/3一樣。如果需要在數值計算中不含有舍入誤差,就應該使用BigDecimal類。


          char類型

          在Java中,char類型用UTF-16編碼描述一個代碼單元。強烈建議不要在程序中使用char。


          boolean類型

          在C或C++中數值或指針可以代替boolean的值,0相當于flase,非0相當于true,而在Java中則不行,并且在編譯時就會報錯。
    posted on 2007-04-03 01:48 cresposhi 閱讀(8744) 評論(35)  編輯  收藏

    FeedBack:
    # re: Core Java之Java基本類型 2007-04-03 01:52 cresposhi
    剛去了趟BlogJava首頁,文章寥寥,又一次感到BlogJava之凄涼,哎,眼淚嘩嘩的,睡覺去了。。。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-03 02:37 sinoly
    呵呵,小伙子還是精神很好嘛。。。。
      回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-03 08:51 liigo
    “強烈建議不要在程序中使用char”
    很想知道理由,謝謝。  回復  更多評論
      
    # re: Core Java之Java基本類型[未登錄] 2007-04-03 08:54 阿蜜果
    做到先把書由薄讀厚,然后把書有厚讀薄!
    中意這句。。。。。。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-03 09:27 穎穎
    這丑個頭,難怪人家都不寫了呢,呵呵  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-03 09:38 cresposhi
    @liigo
    這種驚世駭俗的話我肯定是不敢說的,只是從大師的描述中領悟到一點道道。還是把大師的話貼在這里,一切就真相大白了。

    To understand the char type, you have to know about the Unicode encoding scheme. Unicode was invented to overcome the limitations of traditional character encoding schemes. Before Unicode, there were many different standards: ASCII in the United States, ISO 8859-1 for Western European languages, KOI-8 for Russian, GB18030 and BIG-5 for Chinese, and so on. This causes two problems. A particular code value corresponds to different letters in the various encoding schemes. Moreover, the encodings for languages with large character sets have variable length: some common characters are encoded as single bytes, others require two or more bytes.

    Unicode was designed to solve these problems. When the unification effort started in the 1980s, a fixed 2-byte width code was more than sufficient to encode all characters used in all languages in the world, with room to spare for future expansion—or so everyone thought at the time. In 1991, Unicode 1.0 was released, using slightly less than half of the available 65,536 code values. Java was designed from the ground up to use 16-bit Unicode characters, which was a major advance over other programming languages that used 8-bit characters.

    Unfortunately, over time, the inevitable happened. Unicode grew beyond 65,536 characters, primarily due to the addition of a very large set of ideographs used for Chinese, Japanese, and Korean. Now, the 16-bit char type is insufficient to describe all Unicode characters.

    We need a bit of terminology to explain how this problem is resolved in Java, beginning with JDK 5.0. A code point is a code value that is associated with a character in an encoding scheme. In the Unicode standard, code points are written in hexadecimal and prefixed with U+, such as U+0041 for the code point of the letter A. Unicode has code points that are grouped into 17 code planes. The first code plane, called the basic multilingual plane, consists of the "classic" Unicode characters with code points U+0000 to U+FFFF. Sixteen additional planes, with code points U+10000 to U+10FFFF, hold the supplementary characters.

    The UTF-16 encoding is a method of representing all Unicode code points in a variable length code. The characters in the basic multilingual plane are represented as 16-bit values, called code units. The supplementary characters are encoded as consecutive pairs of code units. Each of the values in such an encoding pair falls into an unused 2048-byte range of the basic multilingual plane, called the surrogates area (U+D800 to U+DBFF for the first code unit, U+DC00 to U+DFFF for the second code unit).This is rather clever, because you can immediately tell whether a code unit encodes a single character or whether it is the first or second part of a supplementary character. For example, the mathematical symbol for the set of integers has code point U+1D56B and is encoded by the two code units U+D835 and U+DD6B. (See http://en.wikipedia.org/wiki/UTF-16 for a description of the encoding algorithm.)

    In Java, the char type describes a code unit in the UTF-16 encoding.

    Our strong recommendation is not to use the char type in your programs unless you are actually manipulating UTF-16 code units. You are almost always better off treating strings (which we will discuss starting on page 51) as abstract data types.

      回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-04 11:42 kirari_wxy
    大師也經常出錯的 呵呵 不過有些還是通用的 帶小數計算的問題還是留給BigDecimal吧 這應該是很多公司的編碼規范了  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-04 11:47 kirari_wxy
    不鼓勵使用char可能是因為java全部是Unicode編碼 容易造成字符和字符串的問題  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-04 12:32 cresposhi
    @kirari_wxy
    如果需要結果一致BigInteger和BigDecimal確實更好。
    至于char的問題其實是Java里char是用UTF-16的,這樣就有code units 和 code points 這兩個概念,上面大師已經描述過了,char表示一個code units而對于常規字符來講一個code units就是一個code points而對于一些特殊的字符需要兩個code units來表示,這個時候char就會引起很多混淆,所以最好使用Character或者一些其他的包裝過的類型。
    我覺得國外的大師一般不隨便亂說話的,而國內的“大師”比較喜歡忽悠大家。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-04 14:02 kirari_wxy
    BigInteger倒是很少用,但是BigDecimal應該是編碼規范了,至少我看到的公司都是這樣,也可能我看到的都是金融業的公司,對數值要求高,而char只要明白原理了應該不會錯,至少我們系統沒有出現這樣的問題,不過確實很少用到char。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-04 14:09 cresposhi
    @kirari_wxy
    對,金融的肯定要BigDecimal,要不每次結果都隨機那還不汗死~~~
    至于char可能那些特別字符用的比較少吧,等到哪天碰到了找bug要找暈,呵呵。
    JDK5.0里面就提供了很多對code points的方法支持,比如String里面Character里面都有。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-04 14:29 kirari_wxy
    可惜大型系統都是jdk1.4的,至今沒有用到1.5,j2ee更新慢,中間件server也更新慢,開發系統的也不敢冒險。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-04 14:49 cresposhi
    @kirari_wxy
    其實JEE現在不也有了J5EE,各大Application Server廠商也都在新的產品線全面擁抱了JDK5,大部分活躍的開源產品也擁抱了JDK5,并有很多應用面極廣泛的開源產品的新特性都是依賴JDK5的新特性,必須要JDK5的支持,如spring、hibernate等。
    不過確實非常多比較慎重的團隊依然守護這JDK1.4.2,不愿意冒險。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-04 17:40 穎穎
    一哈不來你們都聊起來了啊  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-04 18:59 cresposhi
    @穎穎
    做技術最開心的莫過于遇到一個能討論的人,呵呵  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-05 17:32 kirari_wxy
    呵呵,上班沒事隨便聊聊,做大型系統都是很謹慎的,在沒有不能解決的問題發生的情況下不會使用新技術,也不會升級中間件系統的,甚至是jdk。不升級版本是因為出了問題誰也負不了這個責任,不使用新技術是因為使用最簡單的技術才會降低開發門檻,人力資源才會充足。而且這些大型系統即使用hibernate,也是假的,最多就是一個單表查詢。聽說工商銀行的核心系統用了spring,我沒見過,其他的金融公司的核心系統,怕是沒人敢用的。我們公司4000萬美元的項目都不敢用。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-05 17:36 cresposhi
    4KW dollar。。。我還沒有機會。。。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-05 17:59 kirari_wxy
    我也就04年做過一段時間,后來就換到其他項目了。這個項目到現在還沒有完工,無數人做了3年多了,哎,大項目有時也蠻痛苦,還好是賺錢的,人力成本也是客戶出錢,每人每月RMB12500,出差每天補助將近RMB200。我沒有趕到好時候啊,呵呵。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-05 19:21 cresposhi
    呵呵,那什么時候給我介紹個工作干干
    在小公司呆煩了。。。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-09 14:01 kirari_wxy
    有機會可以來我們公司試試  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-09 14:28 cresposhi
    oh yeah,能不能把網站告訴我觀摩一下  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-10 11:07 穎穎
    是啊,順便把我也招過去列  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-10 11:13 kirari_wxy
    http://www.ebaotech.com/

    這是我目前工作的公司 可以先看看 不過感覺最近沒有前幾年好了  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-10 14:01 穎穎
    呵呵,那就去別的地方,哎,哪個知道哪個公司現在好啊  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-10 14:29 kirari_wxy
    有機會就跳,沒機會就混著,呵呵,我的目標是爭取明年去法國轉轉。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-10 16:56 穎穎
    你轉的還滿遠列  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-10 18:05 kirari_wxy
    我在武漢搞了3到4年,來上海也差不多3到4年了,應該再換一個地方看看了,呵呵,男的就應該到處轉轉。。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-10 19:36 cresposhi
    呵呵,老人了。多給點意見啊,thanks
    是應該到處轉轉,我就是覺得我現在眼界太有限了  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-11 09:25 穎穎
    那我還在武漢待了24年了列,還老些,都冒轉,  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-11 09:26 cresposhi
    美女怎么能隨便透漏年齡列,呵呵  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-11 09:50 kirari_wxy
    要是這樣說的話,我離開武漢的時候都已經不止24歲了咧,呵呵。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-11 10:56 穎穎
    又不老,怕什么,呵呵那你現在。。。。那不是更老了。。  回復  更多評論
      
    # re: Core Java之Java基本類型 2007-04-11 15:35 cresposhi
    人家那叫成熟嘛,呵呵  回復  更多評論
      
    # re: Core Java之Java基本類型 2008-11-08 13:36 drz2008mx@163.com
    BigDecimal t1 = new BigDecimal(2.0),t2 = new BigDecimal(-1.1);
    System.out.println(t1.add(t2).toString());

    效果: 0.899999999999999911182158029987476766109466552734375

    解決不了 舍入誤差問題。在些情況下還是會出錯!  回復  更多評論
      
    # re: Core Java之Java基本類型 2008-11-20 13:39 luguo
    @drz2008mx@163.com
    你的構造函數用錯了,用了BigDecimal(double),double本來就不是準確地。得到的BigDecimal也就不對了,做出來的結果就不對了。

    BigDecimal t1 = new BigDecimal("2.0"),t2 = new BigDecimal("-1.1");
    System.out.println(t1.add(t2).toString());  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费人成视频x8x8入口| 亚洲欧洲综合在线| 日本免费久久久久久久网站| 亚洲精彩视频在线观看| 欧洲美熟女乱又伦免费视频| 精精国产www视频在线观看免费| 午夜亚洲AV日韩AV无码大全| 妞干网在线免费视频| 一区在线免费观看| 亚洲白嫩在线观看| 亚洲AV无码乱码在线观看牲色| 大地资源中文在线观看免费版| youjizz亚洲| 亚洲综合精品香蕉久久网| 18未年禁止免费观看| 青草青草视频2免费观看| 亚洲av无码一区二区三区乱子伦 | 黄瓜视频影院在线观看免费| 精品成人一区二区三区免费视频 | 亚洲成AV人网址| 精品免费久久久久久久| 无码日韩人妻AV一区免费l| 亚洲网站在线免费观看| 亚洲毛片网址在线观看中文字幕 | 亚洲免费福利在线视频| 亚洲无人区一区二区三区| 免费鲁丝片一级在线观看| 国产真人无码作爱视频免费| 男男黄GAY片免费网站WWW| 亚洲成人免费在线观看| 在线亚洲人成电影网站色www| 大陆一级毛片免费视频观看| 久久久久免费看黄a级试看| 免费国产a理论片| 亚洲熟妇AV一区二区三区宅男| 亚洲VA成无码人在线观看天堂| 免费一级e一片在线播放| 好男人www免费高清视频在线| 久久狠狠躁免费观看2020| 一级人做人a爰免费视频| 色偷偷噜噜噜亚洲男人|