寫在前面:期末考試要來了,對于一個暑假自學了幾天JAVA之后一個學期劃水的人來說現在就是踏上了JAVA預習之路,下面是自己xjb記的東西,主要是根據老師給的流程圖總結的自己認為需要的一些零碎的小知識,翻書跟看網課看到哪就寫到哪,好吧期末預習開始~希望考個好成績回家開開心心過年!!!
好的我開始了從零到考試的短暫JAVA學習之路......
1.構造方法是不能夠繼承的,
所以子類要多載父類的構造方法,但可在其中用super呼叫父類的構造方法.構造方法只能用類名寫,并且沒有回傳型別,如果子類沒有定義構造方法那么默認它的構造方法為super(),即父類的不帶引數的構造方法
2.已經多載了構造方法之后再在它后面定義一個空的構造方法那這個構造方法就不是默認構造方法了
3.類前面要不是寫private要不是就是默認的,默認的表示同包可訪問,private表示不同包也能訪問
4.非訪問修飾符:static final abstract
5.用static修飾之后其實跟這個類的物件無關了,因此可以不用物件名稱而是直接使用類名在訪問static方法或者變數,注意:static方法中,不能訪問實體變數,也不能使用super或者this6.final類不能被繼承,final方法不能被覆寫,final欄位是只讀的,如果是final static a則a的默認值為0但是如果只是final a則a沒有默認值,只能且僅能給a賦值一次
6.哦莫這里掉了一條.......那就算了吧Hhhhhh
7.介面的所有方法都是public abstract型的
8.介面的實作:類名+implements+介面名,然后里面實作具體的介面方法時一定要在原方法名前面加上public
9.列舉:enum Light={Red,Green,Yellow};
Light light=Light.Red;
switch(light){ case Red: .......break;};
10.介面里也可以有static方法,這個方法就不再是abstract型別的了,而是直接在定義方法的時候就實作它,然后稱這樣的方法叫做默認方法,子類在implements時不需要再實作它了
11.源檔案的名字必須與public類的類同名
12.區域變數不能被訪問控制符及static修飾,因為這些其實都是跟類有關的修飾符,但它可以被final修飾成只讀的變數
13.JAVA的特點:封裝繼承和多型
14.instanceof方法:物件名+instanceof+類名判斷是不是這種型別,或者這種型別的子類,回傳結果是boolean值
15.外部類只能用public或者默認
16.內部類用static的話就跟外部類其實是沒什么差別了
17.方法中的內部類:叫做區域類,它可以訪問其外部類的成員,不能夠訪問該方法的區域變數,除非是final型的區域變數
18.匿名類:沒有類名,直接用其父類或介面的名字,在定義類的同時就生成了物件,因此可看成是“一次性使用”的類,匿名類直接使用父類的構造方法,有作為方法的引數等用途
19.Lambda運算式:()->結果 實際上就是匿名類的一個實體
能寫成Lambda的介面要求包含且只包含一個抽象方法,即函式式介面
通過Lambda運算式介面Converter<F,T>,它是一個泛型介面,convert()方法功能可用于將型別F值轉換成型別T值:
@FuctionalInterface
interface Converter<F,T>{
T convert(F from);
}
用Lambda運算式創建介面物件,并使用它的convert()方法將一個字串轉換為整數:
Converter<String,Integer> converter=(from)->Integer.valueOF(from);
Integer converted=converter.convert("2345");
System.out.println(converted);
20.列舉其實是一種特殊的class型別,是語法糖
21.exception:例外
finally:寫在最后,不管有沒有例外拋出,都要執行的一條陳述句,
try{
陳述句組;
}catch(例外類名,例外形式引數名){
例外處理陳述句組;
}finally{
例外處理陳述句組;
}
catch陳述句可以0至多個,可以沒有finally陳述句
finally陳述句必須執行,就算前面有return break
22.子類例外要放在父類例外前面
23.Object終極父類里面有
clone()方法:要繼承Cloneable介面,在類里面用clone()方法,例如:
Car A=(Car)B.clone();
clone()方法回傳的是Object型所以要強制轉換,
clone()方法在main函式里拋出例外是CloneNotSupportedException
24.日期-時間的類在java.time包中
本地日期:LocalDate
25.compareTo()方法:
<變數1>.compareTo<變數2>回傳的值是變數1比變數2的字典順序,前大后小
26.
public class DescSort implements Comparator<String>{
Arrays.sort(ss,new DescSort());
27.toString()方法可以被改寫,但是回傳的型別得是String型的!!!
28.Queue介面和PriorityQueue類:后者是前者的一個實作類,它實作的是一種優先佇列,優先佇列中元素的順序是根據元素的值排列的Queue介面中有幾個方法:add()和offer()都是可以向佇列中插入一個元素,前者會有例外拋出的情況,后者是回傳false
remove()和poll()都是洗掉并回傳隊頭元素,即邊刪邊回傳值,隊空的時候前者會
有例外拋出,后者則是回傳null
element()和peek()都是回傳隊頭元素但不洗掉,隊空時前者拋出例外,后者回傳null
isEmpty()回傳的是布林值,用于判斷是否隊空
29.java.time包里面:
Instant.now()方法是靜態方法,回傳當前的瞬時時間點
Duration.between(Instant A,Instant B)是靜態方法,用于計算了兩個瞬時點的時間差
eg:
Instant start=Instant.now();
...........
Instant end=Instant.now();
System.out.printf("使用并行流用時:%d毫秒\n",Duration.between(start, end).toMillis());
30.BigInteger類:需要非常大的整數或非常高精度的浮點數,就可以使用,在java.math包中
可以用new BigInteger(String)創建實體,然后使用add(),substract(),multiply(),divide()來進行
算術計算
eg://計算n的階乘
public static BigInteger factorial(long n) {
BigInteger result=BigInteger.ONE;//表示初始值為1
for(long i=1;i<=n;i++) {
result=result.multiply(new BigInteger(i+" "));
}
return result;
}
(i+" ")是因為:BigInteger類的構造方法是BigInteger(String S)所以必須i+" "來形成一個String
型別作為構造引數
31.List介面:
將陣列轉換成為List物件:
String []str={"one","two"};
List<String> list=Arrays.asList(str);
也可以直接將陣列元素作為asList()方法的引數寫在括號中:
List<String> list=Arrays.asList("one","two");
注意:Arrays.asList()方法回傳的List物件是不可變的,不能對其進行洗掉、添加等操作
如果想動其中的元素則需要:List<String>list=new ArrayList<>(Arrays.asList(str));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2066.html
標籤:其他
下一篇:管理經濟學-第一章導論
