Vince's Tech Blog

          hit counter

          Core Java Day01

          先把以前的筆記整理后發上來,剩下的盡快補齊。

          1 java優勢:跨平臺性

            虛擬機:java運行時系統,就是一個字節碼解釋器,虛擬機將字節碼解釋成機器碼給cpu執行.
                   在java中我們用虛擬機來屏蔽底層操作系統的差異.

            編譯:生成可執行文件像a.out,a.exe 效率高,但不跨平臺
            解釋:解釋器把源文件逐行解釋,跨平臺但效率不高

            在java中:先編譯后解釋
            把.java文件編譯成.class字節碼文件.(平臺中立的) 比重新解釋快一點.
            由虛擬機解釋執行.class字節碼文件

            jre=虛擬機+編譯器
            jdk=虛擬機+編譯器+類庫  //jdk又稱java開發工具包

           

          2 第一個程序:
            public class Test{
              public static void main(String [] args){
                  System.out.println(“hello world”);
              }
            }

            任何代碼都要封裝在類里.
            一個文件里只能有一個公開類,文件名要和公開類類名一致.如上例文件只能叫Test.java
            一個源文件里可以有多個類,一個類生成一個.class文件,.class文件和類對應.
            編譯:javac + 文件名
            運行:java + 類名
            print 打印一行
            println:打印一行換行

           

          3 環境變量:

            JAVA_HOME:/opt/1.5.06  指向jdk安裝目錄. 給別的軟件用的.
            PATH:$JAVA_HOME/bin  一些jdk命令放在bin目錄下比如java  javac命令
            CLASS_PATH:.      類路徑,告訴虛擬機去哪找類, 點表示當前路徑

           

          4 包:把不同的源文件放在不同目錄下.
            關鍵字:package   //一個源文件只能有一個package語句.
            加了包結構的類編譯時javac –d . Test.java會自動生成目錄結構,點表當前目錄,前后都有空格.
            運行時要寫全限定名: 包名.類名  java  p1.HelloWorld
            運行時要在包的上一級目錄 

           

          5 import:是一個聲明 后面遇到類名可以不寫包名.
            import p6.p7.*;表示以后用p6包下的p7子包下的所有類不用在寫包結構了.
            import只能表示類,不能表示子包

            java.lang.* 這個包下的類是默認引入的.
            一個類里可以有0個或多個import,跟c++里的include不一樣

           

          6 注釋

            //單行注釋 到本行結束的所有字符會被編譯器忽略.
            /* */  多行注釋  在/* */之間的所有字符會被編譯器忽略.
            /** */  文檔注釋 java特有的, 在/** */之間的所有字符會被編譯器忽略.
            javadoc 工具,把java源程序中這種注釋抽取出來形成html頁面.
            javadoc –d doc Tarena.java

           

          7 標識符命名規則:包括包名,類名,屬性名,方法名等等
            (1) 由字母,數字,下劃線,$組成,不能以數字開頭.
            (2) 大小寫敏感.
            (3) 不得使用java中的關鍵字和保留字.

            關鍵字:都是小寫的 jdk1.4多了 assert關鍵字  jdk1.5多了enum 關鍵字
            保留字:goto 和const
            字面值:true 和false 是boolean類型字面值

            習慣:

            (1) 標識符要符合語義信息.
            (2) 包名所有字母小寫
            (3) 類名每個單詞首字母大寫,其它小寫 //TarenaStudent
            (4) 變量和方法: 第一個單詞小寫,從第二個單詞開始首字母大寫 //tarenaStudent
            (5) 常量: 所有字母大寫

           

          8 局部變量:定義在方法里的變量.
            (1)必須要先賦值,后使用.用之前要初始化,否則通不過編譯.
            (2)作用范圍:定義開始到定義它的代碼塊結束.
            (3)重合范圍內,不允許2個局部變量命名沖突.

           

          9 java中的數據類型:基本數據類型和對象類型
            基本類型:8種 與整型有關的前4種
            (1) byte     1B    -128-127
            (2) short    2B    -32768-32767
            (3) int      4B    -2147483648-2147483647
            (4) long     8B    加后綴L 賦給long類型變量
            (5) float    4B    加后綴f
            (6) double   8B    加后綴d 或不跟
            (7) boolean  1B    字面值 true 和false  //整數和boolean值不能相互轉換了.
            (8) char     2B    采用unicode編碼方式.全球統一的字符集. // char c='達'; 可以保存漢字

            任何國家編碼方式都兼容ASCII編碼, 編碼方式和解碼方式不同才會出現亂碼.
            char類型的三種字面值.
            char c='a';
            char c= 97;
            char c='\u0061';     //unicode 碼值是用16進制表示的,一個字節可以用2個16進制表示

            byte a=1;
            byte b=2;
            byte c=a+b;          //編譯出錯自動類型提升成int

            自動類型提升,把高字節轉成低字節,需要作強制類型轉換. byte c=(byte)a+b;

            類型自動提升規則:
            a和b作某種運算
            a和b中有double,結果就是double
            a和b中有float,結果就是float
            a和b中有long,結果就是long
            除此之外,結果都是int

            對象類型: String
            java中一個字符串是一個對象.這個對象有字面值,java中內置重載了+號,表示字符串的連接
            String s=”abcd”        //雙引號引起來
            "1"+2+3   結果 "123"
            1+2+"3"   結果 "33"

            int x=1;
            int y=2;
            System.out.println(x+"+"+y+"="+(x+y));

           

          10 運算符:
            byte a=20;
            a+=10;       //自加沒有自動類型提升問題
            a=a+10; 

            >>   有符號右移,補符號位
            >>>  右移后高位都補0;

            a1=1000;
            System.out.println(a1>>1);       a1=500
            System.out.println(a1>>1);       a1=500
            a2= -1000;
            System.out.println(a2>>1);       a2= -500;
            System.out.println(a2>>1);       a2=214553;

            5/2=2           //整數除整數是整數
            5.0/2=2.5

           

          11 程序流程控制:
            if else: 和c++的區別就在條件語句if(true)
            switch(byte short int char)      //必須是整形兼容的

            循環:
            for(int i=0;i<=10;i++){語句塊}   //知道循環次數時使用
            while (條件){語句塊}             //不知道循環次數時使用 
            do{語句塊} while(條件)           //至少執行一次

          posted on 2007-08-20 20:10 Vince Fu 閱讀(228) 評論(1)  編輯  收藏 所屬分類: Core Java筆記

          評論

          # re: Core Java Day01 2007-09-03 15:08 VAN

          看不懂  回復  更多評論   


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


          網站導航:
           

          導航

          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          統計

          常用鏈接

          留言簿(2)

          隨筆分類(1)

          隨筆檔案(1)

          搜索

          最新評論

          主站蜘蛛池模板: 祁阳县| 福清市| 南涧| 安达市| 威宁| 益阳市| 西乡县| 周至县| 连州市| 河西区| 茂名市| 察雅县| 盖州市| 平湖市| 安徽省| 惠东县| 永城市| 浦城县| 九江县| 岳西县| 弥勒县| 雅江县| 华容县| 齐齐哈尔市| 林芝县| 安仁县| 西城区| 通渭县| 桐柏县| 洞头县| 临武县| 化隆| 新郑市| 子洲县| 苏尼特右旗| 富川| 临安市| 西华县| 汝城县| 揭东县| 江口县|