筆記整理

Java簡介

Java是世界上應用最廣泛的計算機語言,是1995年由James Gosling研發的基於C++誕生的一門面嚮對象語言,其主要目標是“編寫一次,到處運行”。Java主要有三個版本:JEE、JSE、JME。現已成爲各軟件開發編寫程序的首選語言。

面向對象

  1. 方法、屬性、類、複用、封裝、繼承 
    執行任務中,需要一個方法,方法給出了執行任務的實際語句。對象有其屬性,屬性是由類的實際變量指定的。在java中,需要創造稱爲“類”的程序單元來容納執行類的任務的方法集。類將屬性和方法封裝,使對象的方法和屬性緊密相關。封裝的一大用途是隱藏,對象之間不知其他是如何實現的,實現的細節被隱藏在對象內部,信息隱藏對良好的軟件工程很重要。繼承可以快速又方便的建立新類——-新類會吸收已有類的特性並可以添加新的特性。

    分析與設計

    面對大型程序,爲了創建最佳解決方案,必須有一個詳細過程。 
    第一步:分析項目需求——即確定系統需要完成的功能 
    第二步:開發出能夠滿足這些需求的設計 
    第三步:編寫程序 
    第四步:對程序進行精簡,對算法進行改進 
    如果分析過程是從面向對象的角度對系統進行分析和設計,則稱之爲面向對象的分析與設計(OOAD)

Java開發環境

Java類庫也稱JavaAPI (Java Application Programming Interface Java程序編程接口) 
Java類庫中有豐富的現有類和方法集合,其中的程序都是盡心編寫的,以高效率的執行。

JDK (Java Development Kit Java開發工具包) 
指的是Java開發工具集。JDK是整個Java的核心,包括了Java基礎類庫、Java運行環境(JRE)和Java開發工具。是做Java開發必須要安裝的。 
JRE(Java Runtime Environment Java運行環境) 
指的是Java運行時環境。Java程序運行時必需要JRE的支持。如果系統只安裝JRE的話,則意味着系統可以跑任何Java程序,但不能做Java開發。 

執行Java程序的五個階段

階段一:創建程序 
用編輯器程序編輯Java文件,裏面包含Java源代碼 
Linux系統編輯器爲vi和emacs,Windows系統爲記事本 
集成開發環境(IDE),提供軟件開發過程的工具,常見的有:eclipse和netbeans

階段二:將Java程序編譯爲字節碼 
字節碼由Java虛擬機執行,Java虛擬機是JDK的一部分也是Java平臺的基礎 
使用javac,如Windows中:javac 文件名.java——Windows中爲命令提示符,Linux中爲shell提示符,Mac OS X中爲終端程序 
運行後會生成.class文件——執行方法爲java 文件名

階段三:將程序加載到內存 
JVM的類加載器讀取.class文件,然後將其傳入主存中。可以通過磁盤、網絡加載.class文件

階段四:字節驗證碼 
字節碼驗證器對字節進行檢查,確定是有效的安全的

階段五:執行 
JVM執行字節碼,然後執行,早期JVM一次只能解釋和執行一個一個字節碼,如今採用解釋與及時編譯相結合來執行字節碼。 
所以執行相當於兩個階段:一是將源代碼翻譯成字節碼,二是將字節碼翻譯成機器語言使之可以在電腦上執行。

堆、棧、方法區

堆:實例化對象,數據儲存 
棧:運行方法 
方法區:加載類,分配類成員變量以及靜態方法的入口。含有常量池

註釋

註釋是每個程序不可缺少的部分,約定中每個程序都以註釋開始,註釋寫有每行程序的作用以及其他一些需要注意的地方。註釋是給程序員看的,編譯器會將註釋去掉。每個右大括號後最好都有一個註釋,說明此括號結束的是哪個方法或類。 
註釋主要有三種形式: 
1.行尾加// 
2./…..註釋多行….
3./*…..文檔註釋……/

類、標識符、方法

1.類 
基本類型:byte、int、short、long、char、float、 
double、blooean。用時注意所佔字節,數字注意精度。漢字佔用與char類型相同。 
char、byte、int、long、float、double、short初始值爲0,blooean初始值爲false,引用類爲null。 
每個java程序都至少要聲明一個類,關鍵字是class。格式爲:class加空格加類名稱,關鍵字new創建類的新對象。例: 
Scanner input = new Scanner(System.in) 本行中創建了一個新變量input其類型爲Scanner,即調用Scanner類。

注:類名稱首字母一般大寫且與內容相關,public類與java文件同名 
2.標識符 
標識符組成:大小寫字母、數字、’_’、’$’。不能以數字開頭,不能含有空格,有大小寫區分。 
3.方法 
方法(method):一個類有一個或多個方法,但只能有一個main方法。 
訪問修飾符:private、public 
區別: 
private只能由聲明他們的類訪問 
public可由任意類訪問

輸出

輸出指令爲System.out.print (printf \ println) 
print爲正常輸出 
printf可用來顯示格式化數據:格式化指令符 
println爲自動換行。 
\n:換行符 
\t:水平製表符 
\r:回車符

運算符

  1. 算術運算符、取模運算符(%):+、-、*、/、%
  2. 自增自減運算符:++、–
  3. 關係(比較)運算符:< 、> 、 == 、  != 、<= 、>=
  4. 位運算符:&、|、~、^(異或)
  5. 邏輯運算符:&&、||、!
  6. 移位運算符:>>、<<、>>>
  7. 三目條件運算符: 
    三目條件運算符是一個邏輯判斷與賦值運算符的組合。語法如下: 
    <邏輯表達式> ? <表達式1> : <表達式2> 
    當邏輯表達式爲真時,表達式1有效;當邏輯表達式爲假時,表達式2有效。

邏輯運算符(&&、||)與位運算符(&、|)的區別: 
1. 邏輯運算符只能針對boolean類型進行邏輯運算,而位運算還可以對數值進行邏輯運算。 
2.邏輯運算符有短路情況,即前面的表達式可以得到最終結果時,後面的表達式將不被執行

運算符優先級和結合律 
|運算符 |結合律 |類型 | 
++、- -|從右到左 |一元 | 
*、/、%|左到右|乘性 
+、-|左到右 |加性 | 
<、>、<=、>=、==、!=|左到右|比較關係關係| 
&、|、^、&&、||、 |左到右 |邏輯關係

控制語句

Java中的程序語句

基本三種語句 
1. 順序語句:按前後順序執行的語句 
2. 分支語句:選擇部分執行的語句 
3. 循環語句:循環執行的一塊語句 
結合方式 
1. 簡單的將上一個語句的出口和下一個語句的入口連接起來 
2. 控制語句嵌套,一條控制語句可以在另一條語句中 
將多個語句按照恰當算法結合起來,就構成了程序 。

if…..else

if(布爾條件語句){ 
執行語句}else if(布爾條件語句){ 
執行語句}else
 
控制語句如果爲真則執行,否則進行下一條判定,直到最後一個else。 
*if和if…else後不加“;”

while、 do…..while

while(布爾條件語句){
執行條件語句}
  • 1
  • 2

當布爾條件語句爲真則執行,否則退出語句

do{
執行語句}while(布爾條件語句)
  • 1
  • 2

如果布爾條件語句爲真,則繼續執行,否則退出


do…..while和while的區別:do….while是先執行一次後判斷,while是先判斷後執行。 
如果while不能判斷爲假,則會無限循環。

for

for(初始化循環因子;布爾條件語句;循環因子改變){
執行語句}
  • 1
  • 2

當布爾條件語句爲真則執行,然後執行循環語句改變,然後在進行循環語句。 
for的初始化循環因子不能在for外使用,for中三個語句都可省略,但” ; “不可省略。

switch ……case(default)

switch(<整形表達式>或<字符串表達式>){
    case(跟switch後相同類型的常量) 
        執行語句 breakcase(跟switch後相同類型的常量) 
        執行語句 breakcase(跟switch後相同類型的常量) 
        執行語句 breakdefault:
        執行語句;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

比較switch和case後,如果相同則執行,如果都不符合則執行默認分支default後。 
一般將默認分支放最後,默認分支後break可以省略。

break、continue

break:用於從當前循環退出,執行控制語句後的第一條語句。 
continue:用於結束本循環中其餘語句,繼續下一次循環

java三大要素:繼承、封裝、多態


繼承

每個類只能繼承一個類,object默認爲所有類的父類 
關鍵字: 
1.extends:表示繼承,用法爲<子類>extends<父類> 
2.super:表示當前類的父類,用super()表示調用父類的構造方法 
3.this:表示當前類的對象,還可以使用this()表示調用當前類的構造方法 
4.fanil:被fanil修飾的變量爲常量,被fanil修飾的方法不能被重寫的,被fanil修飾的類不能被繼承 
加載過程: 
1.加載main方法 
2.將父類的static方法分配執行入口 
3.main進棧 
4.加載子類——->加載父類 
上轉型對象:將子類實例化爲父類,失去了子類新增的方法,和新增的變量,可以操縱父類的對象和方法, 
如果方法被重寫,調用的是子類重寫的方法,上轉型對象可以再次強制轉換爲子類 
方法的重寫以及隱藏: 
隱藏即父類方法被子類覆蓋。 
方法的重寫規則: 
1.參數個數及對應類型必須相同 
2.不得修改返回值 
3.不得降低訪問級別

多態

當一個父類存在多個派生類的時候,並且每個派生類都重寫了父類中的某個方法,那麼父類的該方法在不同的子類中就出現了不同的行爲,這就是多態。

關鍵字abstract:由abstract修飾的方法叫抽象方法,非抽象類子類必須實現抽象父類的所有抽象方法,有abstract方法必須則類必須爲abstract類,abstract類中可以有非抽象方法,抽象類不能被實例化,abstract只關心此方法是否存在,而不關心此方法是否被實現。 
接口(interface):接口中所有方法都爲抽象方法,關鍵字implements。<子類> 
接口和父類:接口指一個方法,父類指一個類別。一個子類只可以有一個父類但可以有多個接口。

封裝 ##

把對象和過程包圍起來,實際上是將對象隱藏起來,使用者只能通過已定義的接口進行訪問,適當的封裝可以讓程序更便於理解,也使程序更加安全。 
封裝的訪問級別: 
public:可被當前類、同一個包中其他類、不同包中的子類、不同包中的非子類訪問 
protected:可被當前類、同一個包中其他類、不同包中的子類訪問 
友好的(即什麼都沒有):可被當前類、同一個包中其他類訪問 
private:只可被當前類的內部訪問

Math類

Math類位於java.lang包中,可以直接使用,無需引入。 
常量: 
Math.PI:原周長與直徑之比π 
Math.E:自然對數的基值e 
常用方法: 
abs(x)————-x的絕對值 
ceil(x)————-x四捨五入 
floor(x)————x向下取整 
top(X)————-x向上取整 
exp(x)————-e^x 
max(x,y)、min(x,y)—取較大較小值 
sqrt(x)————-x的平方根 
pow(x,y)———–x的y次冪 
cos、tan、sin——-三角函數 
log(x)————–x取對數

String類

**創建方式: 
1.String str = “”; 
2.String str = new String(); 
3.String str = new String(“”); 
4.char cs[] = {};String str = new String(cs) 
5.String str = new String(char[],int start,int end) 
cs中從start到end 
常用方法: 
length();String的長度 
equals(str);比較和str是否相同 
endWith(str)、startWith(str):判斷是否以str開頭、結尾 
compareTo(String str):和str按字典順序比較;相同返回0,大則返回正數,小則返回負數。 
indexOf(str):檢索str第一次出現的位置,如果沒有則返回-1. 
lastIndexOf(str):檢索str最後一次出現的位置,沒有則返回-1. 
indexOf(str,start):檢索str從start開始第一次出現的位置,沒有則返回-1. 
lastIndexOf(str,end):檢索str到end位置最後一次出現的位置,沒有則返回-1 
substring(start,end):截取從start到end位置的字符並返回。 
replaceAll(old,new):以new替換old。 
trim(str):去掉起始和結束位置的所有空格並返回餘下字符串 
split(str):以str分割當前字符並返回字符串組

封裝類 ##**

基本數據類型的封裝類: 
int————–>Integer 
byte————>Byte 
short———–>Short 
long———–>Long 
boolean——->Boolean 
char———–>Character 
double——–>Double 
float———–>Float

基本數據類型封裝類的常用方法: 
1.字符串轉化爲封裝類:封裝類.parse封裝類(<目標字符串>) 
2.封裝類轉換爲字符串:String.valueOf(<目標>)=====>注:目標必須符合

Character常用方法: 
isDgit(ch):是否是數字。 
isLetter(ch):是否是字母。 
isLetterOrDgit(ch):是否是字母或者數字。 
isLowerCase(ch):是否是小寫字母。 
isUpperCase(ch):是否是大寫字母。 
toLower(ch)—toUpper(ch):轉換爲小寫大寫 
isSpaceChar(ch):判斷是否是空格




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章