主頁(yè) > 教育培訓(xùn) > 電腦培訓(xùn) > java面試題及答案 java筆試試題練習(xí)(9)

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

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

  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。請(qǐng)大概描述一下Vector和ArrayList的區(qū)別,Hashtable和HashMap的區(qū)別。(5)

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

  2。請(qǐng)問(wèn)你在什么情況下會(huì)在你的JAVA代碼中使用可序列化?(5)

  為什么放到HttpSession中的對(duì)象必須要是可序列化的?(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是不是沒(méi)有內(nèi)存泄漏問(wèn)題?看下面的代碼片段,并指出這些代碼隱藏的問(wèn)題。(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。請(qǐng)闡述一下你對(duì)JAVA多線程中“鎖”的概念的理解。(10)

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

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

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

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

  // non-recursive: when you need a queue

  9。請(qǐng)簡(jiǎn)要講一下你對(duì)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)的認(rèn)識(shí)。(10)

  // write unit testing code first

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

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

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

  各自實(shí)現(xiàn)的容器,受容器管理的組件會(huì)具有有生命周期的特性,請(qǐng)問(wèn),為什么需要容器?

  它的好處在哪里?它會(huì)帶來(lái)什么樣的問(wèn)題?(15)

  // encapsulation

  12。請(qǐng)闡述一下你對(duì)IOC(Inversion of Control)的理解。(可以以PICO和Spring的IOC作為例子說(shuō)明他們?cè)趯?shí)現(xiàn)上各自的特點(diǎn))(10)

  // reduce classes' dependencies

  13。下面的代碼在絕大部分時(shí)間內(nèi)都運(yùn)行得很正常,請(qǐng)問(wèn)在什么情況下會(huì)出現(xiàn)問(wèn)題?問(wè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'

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

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

優(yōu)惠商城

更多