主頁 > 教育培訓 > 電腦培訓 > java面試題及答案 java筆試試題練習(9)

java面試題及答案 java筆試試題練習(9)

  13。下面的代碼在絕大部分時間內(nèi)都運行得很正常,請問在什么情況下會出現(xiàn)問題?問題的根源在哪里?(10)wait和notify使用目的不能達到,wait()的obj,自身不能notify().出題人對wait和notify機制不夠理解.

  import java.util.LinkedList;

  public class Stack {

  LinkedList list = new LinkedList();

  public synchronized void push(Object x) {

  synchronized(list) {

  list.addLast( x );

  notify();

  }

  }

  public synchronized Object pop()

  throws Exception {

  synchronized(list) {

  if( list.size() <= 0 ) {

  wait();

  }

  return list.removeLast();

  }

  }

  }

  你拿了多少分?

  1。請大概描述一下Vector和ArrayList的區(qū)別,Hashtable和HashMap的區(qū)別。(5)

  // thread-safe or unsafe, could contain null values or not

  2。請問你在什么情況下會在你的JAVA代碼中使用可序列化?(5)

  為什么放到HttpSession中的對象必須要是可序列化的?(5)

  // save, communicate

  3。為什么在重寫了equals()方法之后也必須重寫hashCode()方法?(10)

  // implementations of dictionaries need hashCode() and equals()

  4。sleep()和wait()有什么區(qū)別?(10)

  // threads communication: wait() and notifyAll()

  5。編程題:用最有效率的方法算出2乘以17等于多少?(5)

  // 2<<4+2

  6。JAVA是不是沒有內(nèi)存泄漏問題?看下面的代碼片段,并指出這些代碼隱藏的問題。(10)

  ...

  Object[] elements = new Object[10];

  int size;

  ...

  public Object pop() {

  if (size == 0)

  return null;

  Object o = elements[--size];

  return o;

  }

  // elements[size] = null;

  7。請闡述一下你對JAVA多線程中“鎖”的概念的理解。(10)

  // optimistic lock, pessimistic lock, signal, dead lock, starvation, synchronization

  8。所有的遞歸實現(xiàn)都可以用循環(huán)的方式實現(xiàn),請描述一下這兩種實現(xiàn)方式各自的優(yōu)劣。

  并舉例說明在什么情況下可以使用遞歸,而在什么情況下只能使用循環(huán)而不能使用遞歸?(5)

  // recursive: when you need a stack and stack memory is enough

  // non-recursive: when you need a queue

  9。請簡要講一下你對測試驅(qū)動開發(fā)(TDD)的認識。(10)

  // write unit testing code first

  10。請闡述一下你對“面向接口編程”的理解。(10)

  // adapter, listener, bridge, decorator, proxy... patterns

  11。在J2EE中有一個“容器(Container)”的概念,不管是EJB、PICO還是Spring都有他們

  各自實現(xiàn)的容器,受容器管理的組件會具有有生命周期的特性,請問,為什么需要容器?

  它的好處在哪里?它會帶來什么樣的問題?(15)

  // encapsulation

  12。請闡述一下你對IOC(Inversion of Control)的理解。(可以以PICO和Spring的IOC作為例子說明他們在實現(xiàn)上各自的特點)(10)

  // reduce classes' dependencies

  13。下面的代碼在絕大部分時間內(nèi)都運行得很正常,請問在什么情況下會出現(xiàn)問題?問題的根源在哪里?(10)

  import java.util.LinkedList;

  public class Stack {

  LinkedList list = new LinkedList();

  public synchronized void push(Object x) {

  synchronized(list) {

  list.addLast( x );

  notify();

  }

  }

  public synchronized Object pop()

  throws Exception {

  synchronized(list) {

  if( list.size() <= 0 ) {

  wait();

  }

  return list.removeLast();

  }

  }

  }

  // dead lock, synchronized on both 'list' and 'this'

免責聲明:該文觀點僅代表作者本人,查查吧平臺系信息發(fā)布平臺,僅提供信息存儲空間服務,不承擔相關(guān)法律責任。圖片涉及侵權(quán)行為,請發(fā)送郵件至85868317@qq.com舉報,一經(jīng)查實,本站將立刻刪除。返回查查吧首頁,查看更多>>
提示

該文觀點僅代表作者本人,查查吧平臺系信息發(fā)布平臺,僅提供信息存儲空間服務,不承擔相關(guān)法律責任。圖片涉及侵權(quán)行為,請發(fā)送郵件至85868317@qq.com舉報,一經(jīng)查實,本站將立刻刪除。

優(yōu)惠商城

更多