計算機 運算能力(CPU) 硅 存儲能力(硬盤) 1. 人類 邏輯 2. 計算機 機器碼(001100101010) 低層語言(100) 中間語言(易語言 c/c++) 高級語言(c# java) 人 請輸出 你好 .net php java c c++ c# vb .,...... 3. Java語言的組成 Java se 桌面應用開發 Java ee 企業級應用開發 web 網站 Java me 手機 平板 等移動端項目開發 JDK:Java程序的開發環境, Java 語言的軟件開發工具包,主要用於移動設備、嵌入式設備上的java應用程序 JRE: 運行時,包括jar包,jvm。運行JAVA程序所必須的環境的集合,包含JVM標準實現及Java核心類庫 JVM:及時編譯器,虛擬機 6. 開發步驟 a) 編寫 i. 建立一個後綴名爲.java的源文件 b) 編譯 i. 下載jdk 版本 建議使用1.7.x 1.8.x 對應計算機的 32/64 ii. 安裝 (檢查jdk/bin/ 是否 包含 java.exe 和 javac.exe兩個執行命令) iii. 配置 鼠標右鍵點擊計算機-->屬性-->更改設置-->高級-->環境變量 1. 變量1 名字:JAVA_HOME 值:找到安裝的jdk的路徑 2. 變量2 名字:path 值:找到安裝的jdk中 bin的目錄路徑 Iv. 在cmd 操做跳轉到源文件所在文件夾 使用 javac 文件完整名 進行編譯 編譯後 獲得一個 後綴名爲.class的機器碼可執行文件 c) 運行 i. 在dos操做命令下 對應.class文件的路徑中 Warning 警告 不影響編譯和運行 能夠優化 Error 語法錯誤 編譯期 沒法得到.class文件 Exception 異常 運行期 Dos命令 windows-->爸爸(dos) 1. 運行 2. 盤符跳轉指令 盤符名稱: 回車 3. 文件夾跳轉指令 cd 文件夾名稱 cd ..返回上一級目錄 cd / 返回盤符目錄 4. 查看當前目錄中的文件 dir 5. 清屏 cls 注:程序中對於中文和英文 採用的是不一樣的編碼方式 中文編碼:gbk/gb2312 張 英文: iso-8859-1 國際編碼:utf-8 d) 除了字符串(文本信息) 特殊的內容 轉義符:(\)放在」」中,能夠對下一個字符內容進行打印效果的轉換 \n 換行符 \t 製表位 產生8個英文字符空格的縮進 E) 代碼註釋 (規範) 對真實代碼的解釋語句 不參與編譯和運行 單行註釋 // 多行註釋 /* * */ 文檔註釋:/** *@author做者 *@param參數 *@return 返回值 */ 2. 交互 a) 輸出 打印語句 b) 接收輸入 暫緩 c) 保存數據 壞道:邏輯壞道 物理壞道 3.內存 a) 內存 == 酒店 b) 存儲單元(類型)== 房間(類型) c) 數據== 租客 變量使用的三步驟 先聲明 再賦值 後使用 數據類型 數值 整型 byte 字節類型 只能存 0 或者 1 Short int 最大值 爲232 -1 long 小數 float:單精度浮點數,賦值時數值後加f double:雙精度浮點數 非數值 字符 char:爲變量賦值時將數據寫在’’中;而且char能夠僅僅能夠用於加減運算,將數據轉換爲ASCII後進行運算的 字符串 String:爲變量賦值時將數據寫在」」中 String str=」abc」; 其中字符串」abc」存放在字符串池中 變量名str開闢一個空間存放字符串地址 用於接受的字符串也是強制開闢的空間 new:引用數據類型的標誌,強制開闢內存空間 接收用戶從控制檯進行的輸入: 1. 向系統借工具:import java.util.Scanner; 2. 申請使用工具 併爲工具取個別名:Scanner input=new Scanner(System.in); 3. 具體使用:int num=input.nextInt(); 或char si=input.next().charAt(0);表示取出第一個字節 系統答應隨機數: 1. 向系統借工具:import java.util.Random; 2. 申請使用工具 :併爲工具取個別名:Random ran=new Random(); 3. 具體使用:int num=ran.nextInt(9)+1; 表示從1-9中隨機產生一個數 按照固定格式輸出系統當前時間: 1. 向系統借工具:import java.util.Date; import java.text.SimpleDateFormat 2.申請使用工具 :併爲工具取個別名: Date da=new Date(); 3.設置時間格式:SimpleDateFormat fo=new SimpleDateFormat(「yyyy-MM-dd hh:mm.ss.SSS」); 4.具體使用:System.out.println(fo.format(da)); 5.閏年計算:year%4==0&&year%100!=0||year%400==0; 拆分字符串並轉換 1. 向系統借工具:import java.util.Scanner; 2. 申請使用工具 併爲工具取個別名:Scanner input=new Scanner(System.in); 3. 具體使用:String date=input.next(); 4.拆分操做:String[] strs=date.split(「 -」); 5.將拆分的字符轉換爲整型:int year=Integer.parseInt(strs[0]); int mouth=Integer.parseInt(strs[1]); int day=Integer.parseInt(strs[2]); JDK1.8以後版本作字符串拆分時,第一個是空格,不能轉換爲int,要跳過 保留小數點後小數位數: 1.向系統借工具:import java.text.DecimalFormat; 2.申請使用工具,併爲工具取個別名: DecimalFormat df= new DecimalFormat(######0.00);(這種格式是保留後兩位) 3.具體使用:df.format(3.333333) 數組排序: 1.向系統借工具:import java.util.Arrays; 2. 具體使用:Arrays.sort(數組名);升序 只能對數值類型排序 .compareTo.():字符串比較,逐個比較,長度越長,值越大,比較的是ASCLL碼值 try { }catch(Exception ex){ }異常處理 變量聲明時 須要遵循java的既定規則和規範(變量名) 規則1 首字符字母 _ $ 其它字符 字母 _ $ 數字 規則2 關鍵字:public、static、void等 保留字:null、true、goto等 變量名不得與系統關鍵字衝突 規範1. Java中的變量命名時遵循駝峯命名法 (Camel) :首單詞的第一個字符小寫,之後每一個單詞首字符大寫,其它小寫 規範2.java中聲明的變量名要有必定的意義 : 學生年齡 stuAge ,教師名稱teaName 範圍:byte<short<int<long<float<double 數據類型轉換: 自動轉換:由低到高,數據類型要兼容; 強制轉換:會損失精度;語法:int temp=(short)30.33; 整數:除10去末位、模10取末位 數值與非數值的區別:可否作算術運算 整型與非整型的區別:是否有小數點 運算符: 算術運算符:+、-、*、/、% 「+」有兩種意義:符號兩邊都是數值類型的數據 ,則表明加法運算符 符號一邊甚至兩邊出現字符串 ,則表明鏈接符 「%」:只和整型搭配 關係運算符:>、<、>=、<=、==、!= 邏輯運算符:&&、||、!、&、| ||和|區別:||的前一個條件成立能決定結果,則不執行後一個條件 |的前一個條件成立能決定結果,依然執行後一個條件 &&和&的區別同上、 boolean值:是關係運算邏輯運算的結果 優先級: 最高優先級:小括號() 最低優先級:賦值運算符= 其餘優先級:!>算術運算符>關係運算符>&&>|| 自增和自減與其餘運算符的優先級視符號位置而定: ++i>1:先自增後比較 i++>:先比較後自增 自增1:num++或者++num 自增任意數:num+=5 比較: equals:比較字符串內容,比較區分大小寫 用法:s1.equals(「baiyun」) ==:比較的是內存地址 equalsIgnoreCase 比較字符內容,而且不區分大小寫 條件語句: if條件:if(條件){ };if(條件){ }else{ } 其中else依賴於if存在 if中的條件應先寫參數,後寫數字【if(i>3){}】,不然會出錯【if(3<i){}】 if中的條件若是遇到大於等於和小於等於應先寫>或<,後寫等號【if(i>=3){}】,不然會出錯【if(i=>3){}】 多重if:if(條件1){ }else if(條件2){ }else if(條件3){ }else{其餘條件執行的語句 } 嵌套if:if(條件1){ if(條件2){ }else{ } } else{ if(條件2){ }else{ } } switch選擇: switch(String、byte、short、int、char){ case 對應值: 操做語句; break; case 對應值: 操做語句; break; default: 操做語句; Break; } 循環結構:用來解決重複操做 循環條件:必定有變量存在;變量在循環外聲明 起點(循環變量賦初值) 改變量(循環變量改變) 終點(循環條件表達式) 循環操做:改變變量 循環: while(){ }:先判斷後執行,至少執行0次,用於次數不固定的循環 do{}while():先執行後判斷,至少執行1次,循環體外聲明,循環體內賦值,用於次數不固定的循環 for(){}:先判斷後執行,用於循環次數明確的循環,小括號中的兩個分號必須存在,表達式能夠缺省,最後一個表達式能夠用i+=2 for小括號中變量賦初值時能夠有兩個變量,但循環變量改變時,兩個變量也應該參與 for循環句中循環條件能夠省略,可是不能形成死循環。 打標記: 1. 定義一個boolean值:boolean boo=true; 2. 在須要的地方改變boolean值:boo=fals; 3. 判斷操做使用標記 數組: 1.聲明數組:int[] a; 2.分配空間:a=new int[5]; 默認分配缺省值 3.賦值:a[0]=8; 4.處理數據:a[0]=a[0]*10; int[]缺省值爲0 double[]缺省值爲0.0 char[]缺省值爲空字符 String[]缺省值爲null boolean[]缺省值爲false 聲明數組的方式: 1.int[] i=new int[5]; int[0]=5; 2.int[] i={1,2,3,4,5}; 3.int[] i=new int[]{1,2,3,4,5}; 變量保存數的弊端是數量有限 數組保存數據數量能夠控制,長度固定不變,不靈活類型明確且一致 改變原有數組大小: int[] num=new int[5]; num =new int[6]; num儲存第一個元素地址 以上方法原有數據會丟失 數據常見操做:增、刪、改、查 備份數組數據: int[] temp=scores;將原數組的地址賦給一個新聲明的變量 冒泡排序: N個數字來排序,兩兩相較小靠前 外層循環N-1,內層循環N-1-i Java數據類型: 基本數據類型(9):存值,short、int、long、char、flaot、double、byte、enum、boolean 引用數據類型(無數):存地址型,String enum:枚舉,將取值類型和取值範圍列舉出來,以供選擇 字符串空間 堆 棧 方法池 常量池 靜態池 字符串池:不可改變性,可回收,可新建 注意點: System.out.println()和System.out.print()的區別: 前者,輸出後換行;後者,輸出後不換行; 後者()內必需要有內容,否則就是一句沒有用途的廢話; 前者即便()內沒有內容,此語句也有一個換行的操做。 public修飾的類必須與文件名同名 主函數main沒有返回值,因此要加void 「.」前面通常是類,類的首字母要大寫 代碼塊每段語句結束必須使用; 對於要輸出打印的數據必須用」」包含內容 變量: 必須遵循三步驟:先聲明、再賦值、後使用。 變量命名可使用:字母 _ $,除首字母外還能夠用數字 變量名不能重複 int不能夠自動轉換成char型 switch語句: 每一個case語句結束時要加break;不然會出現貫穿效果,後面的輸出語句會被執行; 而且case後的常量不能重複;default通常放在case後,能夠省略; switch後面的小括號中表達的值必須是整型(int、byte、char、short)JDK1.8以後加入了字符型(String); default:出現的位置不限制,運用switch貫穿效果的時候要調整位置 計算機同時只能處理一個類型的完整表達式 命名: Java包的名字由小寫單詞組成;無特殊字符,「.」可用但不能出如今開始和結束 類的名字必須由大寫字母開頭而單詞中的其餘字母均爲小寫;若是類名稱由多個單詞組成,則每一個單詞的首字母均應爲大寫 方法的名字的第一個單詞應以小寫字母做爲開頭,後面的單詞則用大寫字母開頭 常量的名字應該都使用大寫字母,而且指出該常量完整含義。若是一個常量名稱由多個單詞組成,則應該用下劃線來分割這些單詞 變量的命名規範和方法的命名規範相同,並且爲了不閱讀程序時形成迷惑,請在儘可能保證變量名稱爲一個單詞的狀況下使變量的命名儘量有意義 while循環小括號中存在 int i; i++>0的狀況是先判斷,操做完成後再自增 continue只能用在循環中,跳過循環體中後面的語句,執行下一次循環 break跳出循環體執行以後的語句;switch和循環中使用 return 當即終止程序,不在執行任何代碼 package:包的聲明 import 導包 if(num%==0) System.out.println(「偶數」); else System.out.println(「奇數」); 當內部只有一個語句的時候可使用,省略{ } 三元運算:int num=2>1?10:20替代if-else 變量名:內存地址的別名,避免了地址的難記 變量名沒法和循環整合使用;數組名能夠和循環名整合使用 null表明空地址 Objiect[] obj=new Object[5];全部的數據均可以裝,類型越是泛化,功能越強大,使用越是麻煩 .length取得數據長度,數值的length是屬性,字符串的length()是方法,字符串數組用.length gc:垃圾回收機制,具備滯後性和時效性 Java中必須用public聲明類,而且Java類中不是必需要有main()方法的 Finalize():垃圾回收機制,強制釋放空間繼承自Object類,釋放對象資源