java 1995年 sun 2009年 ORACLEjava
java SEwindows
java ME數組
java EEdom
JVM:Java Virtual Machine java虛擬機工具
流程:以.java爲後綴的源文件,默認不能執行 —— 編譯器,使用javac命令 —— 以.class爲後綴的二進制字節碼文件,該文件不受平臺限制 —— 解釋器,使用java命令, JVM中包含解釋器 —— 最終的java程序開發工具
JDK:Java Development Kit java開發工具包spa
JRE:Java Runtime Environment java運行環境命令行
JDK包含JRE,JRE包含JVM調試
訪問指示符(public protected private)放在類內定義的數據成員或方法的最前面對象
訪問指示符只控制着對這個特殊定義的訪問
與C++不一樣,在C++中訪問指示符控制着其後面的全部定義,直到又一個訪問指示符出現
不指定訪問指示符就是默認的訪問,默認的訪問沒有關鍵字,一般稱爲「友好的(friendly)」訪問,當前包內的其餘全部類(不論它使用什麼訪問指示符)都能訪問「友好的」成員,包外的全部類不能訪問
因爲一個編譯單元(一個文件)只能屬於一個包,因此一個編譯單元內的全部類相互間都是自動「友好」的;友好元素擁有「包訪問」權限
由於友好訪問,咱們將相關的類都寫在一個包裏,這些類之間就可以方便地相互訪問
類控制着哪些代碼可以訪問本身的成員
萬物皆對象,只要是客觀存在的事物均可以稱爲對象
面向對象是指更關注具體事物的信息
類是模子,用來肯定對象將會有的特徵(屬性)和行爲(方法)
類是對象的類型,是具備相同屬性和方法的一組對象的集合
屬性——對象擁有的各類特徵
每一個對象的每一個屬性都有特定值
方法——對象執行的操做
windows環境下java開發環境的搭建
第一步 安裝JDK 不一樣平臺、不一樣環境JDK安裝文件不一樣,windows64位和windows32位也是不同的,默認安裝到C盤,C盤裏面有java文件夾,java文件夾裏面有jdk1.7.0_13文件夾,jdk1.7.0_13文件夾裏面有bin文件夾,bin文件夾裏面都是.exe爲後綴的可執行文件,這些可執行文件中就有javac.exe和java.exe,jdk1.7.0_13文件夾裏面還有lib文件夾,lib文件夾裏面有java開發中須要用的類庫文件,都是以.jar爲後綴的
第二步 配置環境變量 JAVA_HOME 配置JDK安裝路徑 Path 配置JDK命令文件的位置(bin文件夾的路徑) CLASSPATH 配置類庫文件的位置(lib文件夾的路徑)
1.右鍵「計算機」——選擇「屬性」——打開之後,選擇「高級系統設置」——選擇「系統屬性」彈窗的「高級」,再選擇「環境變量」——在「系統變量」的下面選擇「新建」——在彈窗的「變量名」中填「JAVA_HOME」,在「變量值」中填jdk1.7.0_13文件夾的路徑
2.「系統變量」中默認就有Path變量,選中Path變量,再選擇「系統變量」下面的「編輯」,在已有的「變量值」最前面添加bin文件夾的路徑而且用分號隔開
3. 新建CLASSPATH變量,「變量值」中先寫.號再寫分號最後才填入ib文件夾的路徑,.號表明當前路徑,分號把路徑名隔開
驗證 在命令行中輸入java按回車和輸入javac按回車後都有命令提示就說明成功了
讓windows顯示文件拓展名,雙擊「計算機」,在菜單欄中選擇「工具」,再選擇「文件夾選項」,在「文件夾選項」彈窗中選擇「查看」選項卡,在「高級設置」中去掉「隱藏已知文件類型的拓展名」選項前面的對勾再選擇最下面的「肯定」
在命令行中輸入E:可切換到E盤的根目錄,不區分大小寫,再輸入dir可查看目錄中的內容,使用javac XXX.java能夠編譯java源文件,這是在XXX.java的同目錄下就會出現XXX.class文件,點開XXX.class是亂碼,不能執行,使用java XXX可執行這個XXX.class文件,注意「java XXX」不要輸入文件後綴
使用Eclipse開發java程序
1. 建立java項目:在Package Explorer裏右鍵,選擇New,選擇Java Project
2. 建立程序包:右鍵src,選擇New,選擇Package,包名通常是域名的反向
3. 編寫java源程序:右鍵包,選擇New,選擇class,在彈窗中填類的名稱(不要寫.java或.class後綴),這裏的類名必定要和文件中定義的類名同樣
4. 運行java程序:在文件的空白地方右鍵,選擇Run As,選擇Java Application
全部的java程序都以類爲組織單元
public class 類名 {
…… ……
}
class是關鍵字
類名首字母必須大寫
建立對象:
類名 對象名 = new 類名();
把java源文件中的信息放在內存中,此時這些信息的集合就是對象,這個過程就是實例化
對象名.屬性 可使用該對象的屬性或者給該屬性賦值
對象名.方法名() 能夠調用該對象的方法
由於咱們會把類實例化變成對象進行操做,因此屬性也被稱爲實例變量
類是對象的類型
由於默認浮點數是double型,因此給float型變量賦值時需在後面加f
把一個類實例化變成對象
具備特殊用途的詞被稱爲關鍵字,java關鍵字區分大小寫
java標識符是給java程序中包、類、方法、變量等命名的符號
標識符能夠由字母、數字、下劃線、美圓符號組成,但不能包含@、%、空格等其餘特殊字符,不能以數字開頭
標識符不能是Java關鍵字和保留字(Java預留的關鍵字,之後的升級版本中可能做爲關鍵字),但能夠包含關鍵字和預留字
標識符區分大小寫
變量至關於容器,Java中經過三個元素來描述變量:變量類型、變量名和變量值
在Java程序中,能夠根據所要保存的數據的格式將其保存在指定類型的變量空間中,並能經過變量名迅速定位
使用"+"進行字符串拼接
給變量從新賦值時,不用在變量名前寫變量類型
變量名由多個單詞組成時,用駝峯
Java語言是一種強類型語言
在Java中存儲的數據都是有類型的,必須在編譯時就肯定其類型
在Java中,基本數據類型變量存的是數據自己,而引用數據類型變量存的是保存數據的空間地址
爲float變量賦值時在數值後添加字母f
爲char變量賦值時使用單引號將值括起來
String是引用數據類型
Java中的變量須要先聲明後使用
一次只能給變量賦一個值,但能夠屢次賦值
main方法中定義的變量必須先賦值才能輸出
不建議在程序中使用中文變量名
自動類型轉換:
Java程序中,不一樣的基本數據類型之間常常須要相互轉換,例如:
int a = 82;
double b = a;
SyStem.out.println(b);代碼中int型變量能夠直接爲double型變量賦值,結果爲82.0
要求:
目標類型能兼容源類型,double類型能兼容int類型,char類型不能兼容int類型
目標類型大於源類型,double類型長度爲8字節,int類型長度爲4字節,所以double類型的變量裏能夠存放int類型的數據
強制類型轉換:
語法:(數據類型)數據 或 (數據類型)變量名
強制類型轉換可能會形成數據丟失,double類型強轉成int類型時會直接裁掉小數位,而不是四捨五入
Java常量:
值被設定後,在程序運行中不容許被改變
語法:final 類型 常量名 = 值; 常量名通常是全大寫
int a=5;int b=++a;這時a、b都是6,先讓a自增而後再賦值
int a=5;int b=a++;這時a爲6,b爲5,先賦值再讓a自增
自增、自減運算符只能和變量名搭配,不能直接搭配數值或常量
> < >= <=只支持兩側都是數值類型
^是異或的意思,當a和b有且僅有一個爲true時a^b才返回true
equals()判斷字符串的內容是否相同
String weather = "good";
weather.equals("bad") 返回false
當須要對選項進行等值判斷時,使用switch語句
switch後面小括號中表達式的值必須是整型或字符型
case後面的值能夠是常量或常量表達式,不能是變量或變量表達式
case匹配後,執行匹配塊裏的代碼,若是沒有碰見break,會繼續執行下一個case塊裏的代碼(default塊裏的代碼也執行),直到碰見break或switch語句塊結束
while(){
}先判斷再執行
do{
}while()先執行再判斷
for(循環變量初始化;循環條件;循環變量變化){
}
循環變量初始化在整個循環中只執行一次
for關鍵字後面括號裏的三個表達式必須用分號隔開,三個表達式能夠省略,但分號不能省略
若循環變量初始化和循環變量變化中有多個循環變量可使用逗號分隔
循環條件中可使用邏輯運算符組合的表達式來表示複雜的判斷條件,但要注意邏輯運算符的優先級
break:退出循環
continue:跳過本次循環剩下的代碼,直接執行下一次循環
for循環還能夠寫成:
for(數據類型 元素變量 : 遍歷對象){
}
使用Scanner工具類來獲取用戶輸入的信息,它在java.util包中
導入包的操做:import java.util.Scanner放在package com.imooc下面
導入包以後要建立Scanner對象,才能使用Scanner工具類暴露出來的方法
類是對象的類型,Scanner input = new Scanner(System.in);
保存輸入的信息:int a = input.nextInt();
調試時按F6是按步執行
數組按順序存放多個類型相同的數據,如int[] arr = {1,2,3};等價於int[] arr = new int[]{1,2,3};其中new int後面的[]內必須爲空,不能指定數組長度
聲明數組:數據類型[] 數組名;或者 數據類型 數組名[];
給數組分配空間:指定數組中最多存放多少個數據,數組名 = new 數據類型[數組長度];
也能夠在聲明數組的同時爲它分配空間:int[] arr = new int[5];
賦值:arr[0] = 99;
java.util包中的Arrays工具類提供一些直接操做數組的方法,如:
Arrays.sort(數組名);可將數組按升序排序,還能把數組中的單詞按照首字母升序排序
Arrays.toString(數組名);可將數組轉化爲字符串,轉化後元素之間用逗號和空格隔開
聲明二維數組並分配空間:數據類型[][] 數組名 = new 數據類型[行數][列數];
或者 數據類型[][] 數組名;數組名 = new 數據類型[行數][列數];
賦值:數組名[行索引][列索引] = 值;
也能夠在聲明數組的同時爲其賦值:數據類型[][] 數組名 = {{值00,值01……},{值10,值11……}}
其中,數組名.length指的是二維數組中含有一維數組的個數,數組名[行索引].length指的是二維數組第(行索引+1)行含有的數據的個數
二維數組中包含的子數組也能夠長度不一樣,聲明二維數組時能夠先指定行數,而後再爲每行指定列數,如:
int[][] arr = new int[3][];
爲第一行分配兩列:arr[0] = new int[2];
定義方法的語法:
訪問指示符 返回值類型 方法名(參數列表){
方法體
}
參數列表中每一個參數由參數類型和參數名組成,以空格隔開
調用方法:先建立類的對象,經過 對象名.方法名() 來調用方法
若是方法的返回值類型是void,則方法中不能使用return來返回值
方法的返回值最多隻能有一個,也能夠包含表達式,如return arr.length;
調用帶參數的方法時,必須保證明參的數量、類型、順序與形參一一對應,並且實參不用指定數據類型
String是引用數據類型
若是同一類中包含兩個或兩個以上方法名相同、方法參數的個數、順序或類型不一樣的方法,則稱爲方法的重載,與方法的訪問指示符和返回值類型無關
當調用被重載的方法時,java會根據參數的個數和類型來判斷應該調用哪一個重載方法,參數徹底匹配的方法將被調用
int num = (int)(Math.random()*100);生成1-100的隨機整數,其中Math.random()生成0-1之間的浮點數
for(int i=arr.length-1;i>=0;i--){
System.out.printlln(arr[i]);
}