2017年的Java工程師面試題
Java 程式設計語言的風格十分接近C、C++語言。Java是一個純的物件導向的程式設計語言,它繼承了 C++ 語言物件導向技術的核心。下面是小編整理的關於java工程師面試題,希望大家認真閱讀!
一、選擇題
1、下面哪項是不合法的識別符號:()
A. $persons B. TwoUsers C. *point D. _endline E. final
2、下列運算符合法的是( )
A.&& B.<> D.:=
3、下面描述中哪兩項相等:()[選擇兩項]
4、設float x = 1,y = 2,z = 3,則表示式 y+=z–/++x的值是:()
A. 3.5 B.3 C. 4 D. 5
5、下面的哪些敘述為真:()
equals()方法判定引用值是否指向同一物件
==操作符判定兩個不同的物件的內容和型別是否一致
equal()方法只有在兩個物件的內容一致時返回true
類File重寫方法equals()在兩個不同的.物件的內容和型別一致時返回true
6、如果一個物件僅僅宣告實現了cloneable介面,但是不宣告clone方法,外部能夠呼叫其clone方法嗎?()
A. 能 B. 不能 C. 不確定
7、下列說法錯誤的有( )
A. 能被成功執行的java class檔案必須有main()方法
B. J2SDK就是Java API
C. 可利用jar選項執行檔案
D. 能被Appletviewer成功執行的java class檔案必須有main()方法
8、下列正確的有( )
A. call by value不會改變實際引數的數值
B. call by reference能改變實際引數的參考地址
C. call by reference不能改變實際引數的參考地址
D. call by reference能改變實際引數的內容
9、下列說法錯誤的有( )
A. 陣列是一種物件
B. 陣列屬於一種原生類
C. int number=[]={31,23,33,43,35,63}
D. 陣列的大小可以任意改變
1、不能用來修飾interface的有( )
ate ic ected ic
二,問答題
● 如何控制某個方法允許併發訪問執行緒的個數;
● 動態代理的區別,什麼場景使用;
資料結構與演算法
● 堆和棧在記憶體中的區別是什麼(資料結構方面以及實際實現方面);
● 最快的排序演算法是哪個?給阿里2萬多名員工按年齡排序應該選擇哪個演算法?堆和樹的區別;寫出快排程式碼;連結串列逆序程式碼;
● 求1000以內的水仙花數以及40億以內的水仙花數;
● 子串包含問題(KMP 演算法)寫程式碼實現;
● 萬億級別的兩個URL檔案A和B,如何求出A和B的差集C,(Bit對映->hash分組->多檔案讀寫效率->磁碟定址以及應用層面對定址的優化)