Kung nakapaghanda ka na para sa isang pakikipanayam para sa posisyon ng isang Java programmer o kumuha ng anumang pagsusulit (hindi kinakailangan sa programming) upang makakuha ng isang sertipiko, malamang na napansin mo na ang mga tanong na kanilang itatanong ay napaka-espesipiko. Marami sa kanila ang nagpapaisip sa iyo tungkol sa arkitektura ng wika, ang ilan ay idinisenyo para sa malalim na kaalaman. Mayroon ding mga mas katulad ng mga palaisipan o alalahanin na mga nuances na napakahirap maramdaman nang walang pagsasanay. Sa artikulong ito, nagbibigay ang developer na si Saraans Singh ng ilang ganoong mga tanong sa Java. Sa mga sagot, siyempre. 1. Ano ang mangyayari kung maglagay ka ng return o System.exit() na pahayag sa isang try/catch block? Ito ay isang napaka-tanyag na "catch-up" na tanong sa Java. Ang lansihin ay naniniwala ang maraming programmer na ang block
finally
ay isasagawa sa anumang kaso. Hinahamon ng tanong na ito ang konseptong ito sa pamamagitan ng paglalagay ng statement return
sa isang block try/catch
o pagtawag mula sa isang try/catch
statement block System.exit ()
. Ang sagot sa nakakalito na tanong na ito: ang block finally
ay isasagawa kapag ang isang statement ay inilagay return
sa isang block try/catch
, at hindi ito isasagawa kapag tinawag mula sa isang try/catch
statement block System.exit ()
. 2. Sinusuportahan ba ng Java ang maramihang pamana? Ito ay isang napaka nakakalito na tanong. Madalas sabihin ng mga tagapanayam: kung kayang suportahan ng C++ ang direktang maramihang pamana, bakit hindi kaya ng Java? Ang sagot ay medyo mas kumplikado kaysa sa tila, dahil sinusuportahan ng Java ang maramihang uri ng pamana, dahil ang isang interface sa loob nito ay maaaring pahabain ang iba pang mga interface. Ngunit hindi sinusuportahan ng wikang Java ang maramihang pamana ng mga pagpapatupad. 3. Sa kaso kung saan ang isang pamamaraan ay naghagis ng eksepsiyon NullPointerException
sa parent class, maaari ba itong ma-override ng paraan na naghagis ng RuntimeException
? Isa pang nakakalito na tanong na nauugnay sa mga konsepto ng overloading at overriding. Sagot: Maaari mong ligtas na magtapon ng parent class exception sa isang overridden na paraan NullPointerException – RuntimeException
, ngunit hindi mo magagawa ang parehong may check na exception ng uri Exception
. 4. Paano magagarantiya na ang mga thread ay makaka-access ng mga mapagkukunan nang walang deadlocking? N
N
Kung hindi ka masyadong magaling sa pagsulat ng multi-threaded code, ang tanong na ito ay talagang nakakalito para sa iyo. Maaari itong maging hamon kahit para sa isang bihasang programmer na hindi nakayanan ang mga deadlock at kundisyon ng lahi. Ang trick dito ay nasa pag-order: mapipigilan ang deadlock sa pamamagitan ng pagpapalaya ng mga mapagkukunan sa reverse order kung saan nakuha ang mga ito. 5. Ano ang pagkakaiba sa pagitan ng mga klase StringBuffer
at StringBuilder
sa wikang Java? Isang klasikong tanong tungkol sa wikang Java, na itinuturing na nakakalito ng ilang developer at napakasimple ng iba. Ang klase StringBuilder
ay ipinakilala sa JDK 1.5 at ang tanging pagkakaiba sa pagitan nila ay ang mga pamamaraan ng klase StringBuffer
, halimbawa, length()
o capacity()
, append()
ay naka-synchronize, habang ang mga kaukulang pamamaraan ng klase StringBuilder
ay hindi. Dahil sa pangunahing pagkakaiba na ito, ang pagsasama-sama ng string StringBuilder
ay mas mabilis sa StringBuffer
. Sa katunayan, StringBuffer
hindi ito inirerekomenda na gamitin, dahil sa 99% ng mga kaso ng paggamit, ang string concatenation ay ginagawa sa parehong thread. 6. Ano ang ibinabalik ng expression na 1.0/0.0? Magtatapon ba ito ng eksepsiyon o magdulot ng error sa compilation? Isa pang nakakalito na tanong tungkol sa klase Double
. Bagama't alam ng mga developer ng Java ang simpleng data type double at ang class Double
, kapag nagsasagawa ng floating-point operations, hindi nila binibigyang pansin ang Double.INFINITY
, NaN
, -0.0
at ang mga panuntunang namamahala sa mga kalkulasyon ng aritmetika na nauugnay sa kanila. Ang sagot sa tanong na ito ay simple: walang pagbubukod ArithmeticException
ang itatapon, ang halaga ay ibabalik Double.INFINITY
. 7. Ano ang mangyayari kung susubukan mong magpasok HashMap
ng isang pangunahing bagay sa isang pangunahing bagay na mayroon na dito? Ang nakakalito na tanong na ito ay bahagi ng isa pang madalas itanong: paano sila gumagana HashMap
sa Java? HashMap
ay isang tanyag na paksa para sa nakakalito at nakakalito na mga tanong tungkol sa wikang Java. Ang sagot ay kung susubukan mong ipasok muli ang isang susi sa HashMap
, papalitan nito ang luma dahil HashMap
hindi pinapayagan ng klase ang mga duplicate na susi. At ang parehong key ay nangangahulugan ng parehong hash code, kaya mapupunta ito sa parehong lugar sa hash segment. Batay sa mga materyales mula sa Quora
GO TO FULL VERSION