期末不挂科のJAVA
文章目錄
- JAVA主要特征
- JAVA名詞解釋
- JAVA輸出
- JAVA輸入
- JAVA標識符(命名字符)
- 數(shù)據(jù)類型
- 基本類型
- 引用類型
- 類型轉(zhuǎn)換
- 增強型for
- **數(shù)組**
- Arrays類
- 類與對象
- 類的定義
- 對象的實例化
- 值傳遞和引用傳遞(參數(shù)是基本類型不能改變原值)
- 方法重載
- 構(gòu)造方法
- this關(guān)鍵字
- 繼承的實現(xiàn)
- 繼承規(guī)則
- 構(gòu)造方法的調(diào)用:
- Super關(guān)鍵字
- 方法重寫
- 重寫規(guī)則
- JAVA的包
- 抽象類
- 接口
- 接口的實現(xiàn)
- 接口的繼承
- Object 類中的方法
- Equals方法
- hashCode() 方法
- toString 方法
- 多態(tài)
- 包裝器類
- 創(chuàng)建包裝器類型
- 包裝器轉(zhuǎn)換為基本數(shù)據(jù)類型
- 重載方法調(diào)用規(guī)則:
- 靜態(tài)屬性
- 靜態(tài)方法
- 使用規(guī)則(類內(nèi)部)
- 靜態(tài)代碼塊
- 異常
- 異常處理機制
- 字符串
- String類
- StringBuffer類
- 容器
- ArrayList 動態(tài)數(shù)組
- LinkedList 雙向鏈表
- HashSet
- LinkedHashSet 以元素插入順序
- Map
- 字節(jié)流
JAVA主要特征
- 面向?qū)ο?/strong>
- 分布式
- 跨平臺
- 更安全
JAVA名詞解釋
-
JRE(運行環(huán)境)
包括JAVA虛擬機和JAVA程序所需的核心類庫 -
JDK(開發(fā)工具包)
JDK是提供給JAVA開發(fā)人員使用的,其中包含了JAVA的開發(fā)工具,也包括了JRE。 -
JVM(虛擬機)
Java程序不是直接運行在操作系統(tǒng)上,而是運行在JVM上。 -
JAVAEE(企業(yè)版)
是為開發(fā)企業(yè)環(huán)境下的應(yīng)用程序提供的一套解決方案。 -
JAVASE(標準版)
是為開發(fā)普通桌面和商務(wù)應(yīng)用程序提供的解決方案。 -
JAVAME(小型版) 是為開發(fā)電子消費產(chǎn)品和嵌入式設(shè)備提供的解決方案。
JAVA輸出
- System.out.println() 換行輸出
- System.out.print() 正常輸出
- System.out.printf() 類C輸出
JAVA輸入
Scanner in = new Scanner(System.in) int num = in.nextInt(); //讀取整數(shù) double num = in.nextDouble(); //讀取小數(shù) String str = in.nextLine() //讀取一整行JAVA標識符(命名字符)
- 只能以字母,“_”,“$”開頭
- 只能由數(shù)字,字母,“_”,“$”組成
- 不能是關(guān)鍵字
- 類和接口名:每個單詞首字母大寫
- 方法名:首字母小寫,其余單詞首字母大寫
- 常量名:全部使用的大寫字母,單詞間用“_”分隔
用final 關(guān)鍵字來定義常量,被賦值后值不再改變
數(shù)據(jù)類型
基本類型
- 整數(shù)類型:byte,short,int,long(1,2,4,8)
- 浮點類型:double,float(8,4)
- 字符類型:char(2)可以存儲漢字
- 布爾類型:boolean 只有true和false
引用類型
- 類
- 接口
- 數(shù)組、枚舉
類型轉(zhuǎn)換
隱式轉(zhuǎn)換:類型加寬轉(zhuǎn)換時可以自動實現(xiàn)
強制轉(zhuǎn)換:double f = 5.5; int n = (int) f;
Byte,short,char之間不會相互轉(zhuǎn)換,計算時首先轉(zhuǎn)換為int
增強型for
- for(int element:arr)
{
System.out.println(element);
} - for(String str: list)
{
System.out.println(str);
}
數(shù)組
長度固定不可變,同一個數(shù)組存儲相同類型的元素
靜態(tài)初始化:
動態(tài)初始化:
int[] series = new int[4]; for(int I = 0;i<4;i++){series[i]=i*3; }Arrays類
copyOf(int[] a ,newlength) 數(shù)組復(fù)制
fill(int[] a ,int val) 數(shù)組初始化
sort(int[] a) 數(shù)組排序
binarySearch(int[] a,int key) 排序后的數(shù)組元素查找
類與對象
類:包含成員屬性和成員方法的抽象數(shù)據(jù)類型
對象:按照類類型創(chuàng)建的實例
面向?qū)ο蟮娜筇匦?#xff1a;封裝、繼承、多態(tài)
封裝性:將屬性和方法結(jié)合起來,僅對外公開接口實現(xiàn)信息隱藏
繼承性:使子類具有父類的各種屬性和方法,提高了代碼重用率
多態(tài)性:相同操作作用于不同類的對象,產(chǎn)生不同結(jié)果
類的定義
[private/protected/public] class (首字母大寫)類名{}
成員屬性一般用private來修飾
訪問成員屬性的方法用public來修飾
對象的實例化
<類名> <對象名> = new <類名>(參數(shù))
訪問屬性:<對象名>.<屬性名>
訪問方法:<對象名>.<方法名>(參數(shù))
值傳遞和引用傳遞(參數(shù)是基本類型不能改變原值)
值傳遞:
public class Arithmetic {public static void main(String[] args) {double percent = 10.0;System.out.println("before fun call percent = "+percent);tripleValue(percent);System.out.println("after fun call percent = "+percent);}public static void tripleValue(double x){x = 3 * x;} }引用傳遞
public class Arithmetic {private double number;public static void main(String[] args) {Arithmetic percent = new Arithmetic();percent.number=10.0;System.out.println("before fun call percent = "+percent.number);tripleValue(percent);System.out.println("after fun call percent = "+percent.number);}public static void tripleValue(Arithmetic e){e.number = 3 * e.number;} }方法重載
同一個類中的同名方法,參數(shù)不同,稱為方法重載
構(gòu)造方法
- 用于初始化對象
- 方法名與類名相同
- 參數(shù)可有可無
- 返回值不能寫void
- 創(chuàng)建對象時自動調(diào)用,只會調(diào)用一次
this關(guān)鍵字
- 引用本類中的屬性和方法
- 調(diào)用本類的構(gòu)造方法,this()只能放在重載構(gòu)造方法第一行
- 作為返回值,返回調(diào)用該方法的對象的引用
繼承的實現(xiàn)
[public/private/protected] class 子類名 extends 父類名稱{}
- 一個類只能有一個直接基類
- final修飾的類不能有子類,String是典型特例
- Object類時所有java類的頂級基類
繼承規(guī)則
- 吸收基類成員(除了構(gòu)造方法)
- 增加派生類成員
- 隱藏同名基類成員
- 派生類只能訪問基類中非private類型的屬性或方法
構(gòu)造方法的調(diào)用:
- 先調(diào)用基類的構(gòu)造方法,在調(diào)用派生類的構(gòu)造方法
- 若基類中沒有無參構(gòu)造,程序報錯
Super關(guān)鍵字
- 調(diào)用基類的構(gòu)造方法(若無,默認調(diào)用無參構(gòu)造)
只能放在派生類構(gòu)造方法的第一行 - 引用基類的屬性或方法(非private類)
方法重寫
在不改變原來代碼的基礎(chǔ)上,對任意模塊進行改造
- 只出現(xiàn)在繼承關(guān)系中,只能重寫繼承的基類方法
- 繼承的抽象方法,要么重寫,要么標識為抽象
重寫規(guī)則
- 返回值相同或是原類型子類
- 方法名,參數(shù)列表相同
- 不能重寫final的方法,私有的方法
- 重寫的方法不能縮小訪問權(quán)限
父類的引用可以調(diào)用子類的對象
Father f1 = new Son();
可以調(diào)用基類中定義的屬性和方法
不能調(diào)用子類中定義但父類中沒有的方法
JAVA的包
- Java.lang 核心包
- Java.net 網(wǎng)絡(luò)包
- Java.io 文件流包
- Java.util 工具包
抽象類
-
不能實例化對象,可以定義抽象方法
-
抽象方法沒有方法體,大括號也不能寫
-
繼承抽象類的派生類必須實現(xiàn)所有抽象方法,否則也為抽象類
接口
只包含常量和方法的聲明
接口的實現(xiàn)
- 一個類可以同時實現(xiàn)多個接口,接口名用“,”分開
- 一個接口可以被多個無關(guān)類實現(xiàn)
必須實現(xiàn)所有抽象方法,否則也為抽象類
接口的繼承
一個接口可以繼承多個接口
Object 類中的方法
Equals方法
原方法為判斷是否具有相同的引用
重寫方法為
- 先判斷是否為同一個對象(==)
- 判斷是否為空
- 判斷是否為同類(getClass())
- 用equals()判斷需要判等的屬性
hashCode() 方法
返回該對象的哈希碼值,對于同一對象哈希碼值相同
toString 方法
返回該對象的字符串表示,建議重寫該方法
getClass().getName()+’@’+Integer.toHexString(hashCode())
多態(tài)
- 概念:同一操作作用于不同類的對象,結(jié)果不同
- 向上轉(zhuǎn)型:父類的引用指向子類的對象
- 基類中定義的方法,如果派生類重寫了,執(zhí)行重寫的方法
- 無法調(diào)用基類中沒有派生類中有的方法
- 可維護性,可擴展性
包裝器類
基本類型的對象形式,一旦賦值不能改變
byte --> Byte
short --> Short
long -->Long
int -->integer
char -->character
float -->Float
double -->Double
boolean -->Boolean
創(chuàng)建包裝器類型
- Integer i = new Integer(1);
- Double d = Double.valueOf(3.14);
包裝器轉(zhuǎn)換為基本數(shù)據(jù)類型
裝箱與拆箱
自動裝箱
Integer y = new Integer(567); y++; //注意y++之前和之后所引用的內(nèi)存地址不同重載方法調(diào)用規(guī)則:
直接?加寬?裝箱?先裝箱后加寬?有不定長參數(shù)
靜態(tài)屬性
- 權(quán)限修飾符 static 數(shù)據(jù)類型 屬性名稱
- 所有實例對象共享一個靜態(tài)屬性,實現(xiàn)數(shù)據(jù)共享
- 既可以用類名訪問,也可以用對象名訪問
靜態(tài)方法
只能用于訪問靜態(tài)屬性
目的是在實例化對象前就能夠訪問靜態(tài)屬性
不能是抽象的
權(quán)限修飾符 static 返回值類型 方法名(形式參數(shù)列表){}
使用類名.方法名使用
不調(diào)用不執(zhí)行
使用規(guī)則(類內(nèi)部)
- 僅能調(diào)用其他靜態(tài)方法
- 僅能訪問靜態(tài)屬性
- 不能使用this super
靜態(tài)代碼塊
初始化靜態(tài)屬性
僅在該類被加載時執(zhí)行一次
子類實例化對象順序:父類靜態(tài)代碼塊,子類靜態(tài)代碼塊
父類構(gòu)造方法,子類構(gòu)造方法
Static final 修飾常量或不可重寫的方法(全局變量)
異常
異常處理機制
捕獲異常(try-catch-finally)
try{
//接受監(jiān)視的程序塊
//由catch中指定的程序處理
}catch(Exception e){
//處理異常
} finally{
//資源回收
}
拋出異常(throw,throws)
沿著調(diào)用層次向上傳遞異常
字符串
String類
值不可改變,用于字符串常量
字符串連接 concat(String str)
字符串查找 indexOf(String str)
lastIndexOf(String str)
字符串分割Split(String regex)
字符串比較compareTo(String str),返回首個不相同字母的ASCII碼差值
忽略大小寫equalsIsIgnoreCase(String str)
字符串替換replace(char oldChar,char newChar)
字符串求子串 substring(int beginIndex,int endIndex)
大寫 toUpperCase()
小寫 toUpperCase()
StringBuffer類
對象的值可以修改,主要用于字符串做大量修改操作時
StringBuffer stringBuffer = new StringBuffer(“Hello”);
字符串拼接append(Object obj)
字符串刪除delete(int start,int end)
字符串插入insert(int offset,Object obj)
字符串逆序reverse()
轉(zhuǎn)換為String對象:toString()
容器
ArrayList 動態(tài)數(shù)組
ArrayList list = new ArrayList();
list.add(int index,E e)
list.add(e)
list.remove(int index)
list.get(int index);
list.set(int index,E e)
list.size
LinkedList 雙向鏈表
HashSet
無序
不關(guān)心順序,不允許重復(fù)
不能存儲equals相同的數(shù)據(jù)
添加指定元素add(E e)
移除所有元素clear()
移除指定元素remove(Object o)
大小size()
判空isEmpty()
TreeSet
升序
返回最低元素first()
返回最高元素last()
LinkedHashSet 以元素插入順序
Map
Key不允許有重復(fù),value允許有重復(fù)
hashMap是非線程安全的
hash.put(K key,V value)
hash.get(K key)
hash.containsKey(K key)
hash.containsValue(V value)
遍歷map
Set keySet = hashMap.keySet();
for(Integer key:keySet){
Student value = hashMap.get(key);
System.out.println("key: “+key+”==value: "+value);
}
字節(jié)流
字節(jié)輸入流讀取字節(jié)InputStream
InputStream input = new InputStream(new File()); int i = 0; while(i!=-1){i=input.read(); } Input.close();字節(jié)輸出流寫入字節(jié)OutputStream
I
字符流(純文本)
- 字符輸入流讀取字符 Reader
- 字符輸出流寫入字符 Writer
總結(jié)
以上是生活随笔為你收集整理的期末不挂科のJAVA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 考前自学系列·计算机组成原理·存储器画图
- 下一篇: NameError: global na