Study java

          一個新手學習JavaEE的心得,希望對學習JavaEE的朋友有些幫助。

          2007年5月20日

          進來偶看一下swing.寫了一個學生管理系統
          http://www.aygfsteel.com/Files/ronghai/homework.zip
          大家可以下載了看看.


          posted @ 2007-05-29 23:14 ronghai 閱讀(1399) | 評論 (1)編輯 收藏
               摘要: 關于 Type1IoC,Spring Type2IoC和Type3IoC 的程序實例.希望能對大家有用  閱讀全文
          posted @ 2007-05-29 18:45 ronghai 閱讀(1111) | 評論 (0)編輯 收藏
               摘要: 在gmail中每個內置文件夾(視圖)都是一個標簽.所以如果你想查看所有收件箱中的未讀郵件,你可以這樣使用 label:inbox label:unread
          當然你可以聯合使用這些內置標簽和你自己的標簽形成一個有趣的查詢.但是很快你就發現了這些查詢是那么得長,還那么難寫.不過實際上你不需要這樣做.你可以使用l來代替label.這樣前面那個查詢可以這樣寫 l:inbox l:unread  閱讀全文
          posted @ 2007-05-24 11:50 ronghai 閱讀(338) | 評論 (0)編輯 收藏
               摘要: 通過spring的mailsender實現郵件的發送,同時實用gmail作為郵件發送服務器.  閱讀全文
          posted @ 2007-05-23 19:30 ronghai 閱讀(2136) | 評論 (0)編輯 收藏
          前兩天沒有什么事做,仔細看了一下JAva的拆包,發現了下面的問題,不是很明白,到網上轉了一圈,找到了答案.給需要的朋友看看
          首先看一段代碼(使用JDK 5),如下:
           1 public class Test {
           2 public static void main(String[] args) {
           3 Integer i1 = 127;
           4 Integer i2 = 127;
           5 if (i1 == i2)
           6 System.out.println("Equal!");
           7 else
           8 System.out.println("Not equal!");
           9 }
          10 }

          輸出結果想必大家也知道,是“Equal!”。現在把i1和i2的值由127改為128看看會發生什么?結果輸出“Not equal!”。

          注意i1和i2都是Integer類型,事實上只要這個值的范圍在“-128—127”之間,輸出結果都是“Equal!”。JDK 5引進了很多新的特性,其中有一個就是自動裝箱(Autoboxing)和自動拆箱(Auto-Unboxing)。當i1和i2值為128時,在進行 “==”時,它們被裝進兩個不同的Integer Objects,由于這是兩個不同的instances,它們引用不同的內存地址,所以結果是“Not equal!”。 但當這個值是127時,JVM自動將這個值轉換成基本類型int,這樣進行“==”時,JVM仍然使用的是相同的object instance, 所以輸出結果為“Equal!”了。


          其實這與'=='運算符的比較有關,'=='可用來比較兩個基本型態的變量值是否相等,事實上'=='也用于判斷兩個對象變量名稱是否參考至同一個對象。

          所 以'=='可以比較兩個基本型態的變量值是否相等,也可以判斷兩個對象變量的參考對象是否相同,當您如前兩個程序的方式撰寫時,編譯器不知道您實際上要比 較的是哪一種?所以對于值從-128到127之間的值,它們被裝箱為Integer對象后,會存在內存之中被重用,所以當值在100,使用'=='進行比 較時,i1 與 i2實際上參考至同一個對象。

          如果超過了從-128到127之間的值,被裝箱后的Integer對象并不會被重用,即相當于每次都新建一個Integer對象,所以當值在 200,使用'=='進行比較時,i1與i2參考的是不同的對象。


          “Integer i1 = 127;”在JDK1.5下可以編譯通過的,這就是自動裝箱(Autoboxing)和自動拆箱(Auto-Unboxing)。自動裝箱 (Autoboxing)特性讓Java自動包裝一個簡單數據類型(例如int)到對應的包裝類型中(例如Integer)中。
          在《JSR 201: Extending the Java Programming Language with Enumerations, Autoboxing, Enhanced for loops and Static Import》中,對這個問題,是作了這樣的規定:
          If the value p being boxed is true, false, a byte, an ASCII character, or an integer or short number between -127 and 128, then let r1 and r2 be the results of any two boxing conversions of p. It is always the case that r1 == r2.
          在Java中,The following is the list of primitives stored as immutable objects(不可變對象):
          * boolean values true and false
          * All byte values
          * short values between -128 and 127
          * int values between -128 and 127
          * char in the range \u0000 to \u007F
          posted @ 2007-05-20 11:53 ronghai 閱讀(398) | 評論 (0)編輯 收藏

          導航

          <2007年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          城市流浪者

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 营口市| 尖扎县| 兖州市| 济源市| 临清市| 双流县| 和田县| 波密县| 安岳县| 赤壁市| 南城县| 买车| 柞水县| 镇远县| 峡江县| 满城县| 蒲江县| 玉田县| 内江市| 康保县| 庆安县| 澄城县| 专栏| 抚远县| 汕头市| 家居| 河间市| 福清市| 温州市| 濮阳县| 化州市| 宜良县| 新兴县| 彭山县| 遂平县| 临猗县| 西安市| 罗田县| 白城市| 海淀区| 云浮市|