筆者擅長 C# 語言,4月份要考試,學習 JAVA 是為了考試罷了。
如何在最短時間内學習 JAVA 基礎文法和通過考試考核呢~
學習 JAVA ,要為了應付考試,判斷、循環這部分,C、C++、C#、JAVA 都是一樣的,不需要重複學習。
基礎文法上,C++ 跟 C# 接近,例如命名空間(namespace)、繼承(????。
進階文法 JAVA 跟 C# 接近,很多 API 甚至名字都一樣。
筆者在學習和完成試卷練習時,将具有代表性的 JAVA 題目抽取出來,集中複習和了解習題的套類,這樣最短時間能夠通過考試,并且拿到高分。
啦啦啦啦啦~
注:以下題目内容從往年試題或者網際網路中擷取而來,侵删!
1,java語言最初的應用對象是 消費級電子産品
最初設計時,是為了應用到電子遊戲機、電視機機頂盒等電子産品。
2,Java SDK 的核心中,解釋器所對應的可執行檔案是 java.exe
javac.exe 用于編譯 <code>.java</code> 源檔案,java.exe 用于解釋執行編譯後的程式。
3, 聯編 是将發送給對象的消息與執行該消息方法的對象連接配接起來。
聯編分為靜态聯編和動态聯編。靜态聯編在編譯時處理(就是平時的代碼);動态聯編,事先不确定執行個體化的對象類型,在編譯後才确定。
動态聯編用于在運作時,才确定需要的執行個體。
父類A,子類B、子類C。
4,java Date 時間字元串的預設順序為 星期,月,日,小時,分,秒,年
格式如 <code>Sat Mar 21 22:15:24 CST 2020</code>
5, ((k-1)^k)&k 代表何種意義
答:取下非0整型變量k最右邊為1的那一位。
6,super
java 中的 super 跟 c# 的 base一樣。
java 稱為 超類、子類;C# 稱為 基類/父類、子類。
super 有多種作用:
指定調用超類的哪個構造函數;
通路被子類重寫/覆寫的方法
通路被子類隐藏的方法
7,&& 考核
閱讀以下程式代碼,寫出程式的輸出結果
答案是 <code>2,1,1,false</code>
這題目有 <code>誤導</code> 成分,咋一看,有 <code>++i</code>、<code>i++</code> 這樣的運作,實踐上隻需要運算 <code>a++>1</code>。原因在于 <code>&&</code> 運算是從左到右,當左側條件為 <code>false</code> 時,程式不會執行右側的表達式了。
8,字元串等值
檢視以下程式代碼的輸出
結果是
java 中,String 類型的 == 運算符,比較的是對象的引用。
不同的 new String() 對象,即使是相同的值,也不是同一個對象。
C# 中,string 類型 的 == 運算符經過了重寫,比較的是字元串的值;
而 <code>String aa = "1";</code> 、<code>String bb = "1";</code> 都是常量 <code>1</code> ,沒有 new,是以 == 的結果相同。
9,程式設計題
使用循環把26個大寫英文字母按字典順序存入一維數組,然後再使其逆序存放(不得使用另外的數組),最後再根據處理後的字元數組建立一個字元串,輸出此字元串。程式設計完成以上要求。
解析:基礎排序算法之一。剛開始時我想用冒泡算法解決。但是看到答案時,答案使用的是倒轉的方法,過程更加簡單。
原因在于 26 個字母已經是按順序排序(亂序則使用冒泡算法),直接反轉就行。
題目要求
循環存入26個字母(大寫)的數組;
逆放(反轉);
輸出字元串;
第一步代碼如下
第二步如下
最後一步使用 String 的構造函數就行
10,程式設計題
編寫用數組實作不超過200位的大整數的類 BigInteger,要求提供大整數的加運算。
解析:java 中,有 BigInteger 這個類,内部是對 int[] 的封裝,可以表示任意長度的整數。
題目要求我們實作一個類似 BigInteger 的類。然後要實作 10 進制的 加法運算。
方法很多,而且不限定怎麼寫,能計算就行。
可以參考
https://wenku.baidu.com/view/6b050b976aec0975f46527d3240c844769eaa01b.html