Java程式員筆試面試之String3,java程式員string3
public class SameString { //思想二:每一個字元都對應著自己的ASC碼,第一個思想的演算法複雜度為O(nlogn),一般可以利用空間來降低時間複雜度//可以開闢一個大小為256的數組空間,並且將256個數組元素都置為0,然後遍曆第一個字串把字元的ASC作為數組下標,數組元素都加1,//然後遍曆第二個字串將數組元素的各個值都減1,如果最後數組元素的值為0的話說明就是相同的字串。此演算法的時間複雜度為O(n)public static void compare(String s1,String s2){byte[] b1=s1.getBytes();byte[] b2=s2.getBytes();int[] bCount=new int[256];for(int i=0;i<256;i++){bCount[i]=0;}for(int i=0;i<b1.length;i++){bCount[b1[i]-'0']++;}for(int i=0;i<b2.length;i++){bCount[b2[i]-'0']--;}for(int i=0;i<256;i++)if(bCount[i]!=0){System.out.println("not equal!");return;} System.out.println("equal!");}public static void main (String args[]){String s1="aaabbbccc";String s2="ababacbcc";compare(s1, s2);String s3="aabbccdd";String s4="abc";compare(s3, s4);}}
結果:equalnot equal
java程式員筆試面試都考什呀?
1)物件導向的基礎知識
2)java寫一段程式,通常是排序或者計算後輸出的
3)關於web開發的基礎知識,比如什麼是jsp,servlet與jsp的區別,session與cookie的區別
4)對常用的開源架構的瞭解,如struts,spring,hibernate,ibatis等
java程式員面試題
java異常機制的原理與應用
答:每當程式出現異常之後,如果程式沒有進行相應的處理,則程式會出現中斷現象。
實際上,產生了異常之後,JVM會拋出一個異常類的執行個體化對象,如果此時使用了try語句捕獲的話,則可以進行異常的處理,否則,交給JVM進行處理。當try語句捕獲異常之後,將與catch語句的異常類型進行匹配,如果匹配成功則執行catch內的語句。簡單的應用:在所以throws語句的地方加入try-catch。標準應用程式:try-catch-finally-throw-throws一起使用。
2. 記憶體回收機制的優點
答:釋放無用的對象所佔用的空間。方式:自動回收,手動回收。使用System.gc(),實際上調用Runtime.getRuntime().gc()
3. Error與Exception區別
答:Error是jvm進行處理,是jvm出錯
exception是可以由程式處理的,可以用try-catch捕獲的
4. final,finally,finallize
答:final定義的變數的值不能改變,定義的方法不能被覆蓋,定義的類不能被繼承
finally是異常的統一出口,finallize是記憶體回收前的收尾工作,是Object類定義的
5. Anonymous Inner Class是否可以extends,是否可以implements Interface
答:允許繼承和實現,因為匿名內部類就是在抽象類別和介面的基礎上發展起來的
6. Static Nested Class 與Inner Class的區別
答:使用Static定義的Class就是外部類,可以通過外部類. 內部類直接存取
而Inner Class是不能被外部存取的,只能通過外部類的執行個體再找到內部類執行個體。
7. HashMap and HashTable?
答:HashMap:1) released in jdk 1.2,new Class 2)採用非同步處理方式,效能較高,是非安全執行緒的 3)允許null
HashTable:1)released in jdk 1.0 ,old Class 2)採用同步處理方式,效能低,是安全執行緒的3)不允許null
8. assert代表什嗎?
答:asserts是jdk 1.4之後發布的新關鍵字,表示斷言,即程式執行到某個地方肯定是預計的值,一般開發很少使用。要使用assert,必須加上 -ea參數
9. gc是什嗎?
答:gc是garbage collection,記憶體回收,使用gc可以進行垃圾空間的釋放
10. String s = new String("xyz")產生了幾個對象?
答:一個匿名對象xyz,在棧空間內。一個new執行個體化的對象,在堆空間內。
11. sleep() and wait()?
答:sleep()是Thread類定義方法,表示線程的休眠,可以自動喚醒
wait()方法是Object類定義的方法,需要手動notify()和notifyAll()//sleep()不釋放資源,wait()釋放資源
12. java中存在goto,但不能使用
13.數組有沒有length(),String有沒有length()?
答:數組有length屬性,String有length()
14. Overload與Override的區別
答:Overload:重載
|- 在一個類中定義的若干方法
|- 所有的方法名相同,但參數類型或個數不同
|- 只有參數有關,與傳回型別無關
Overrid......餘下全文>>