
-
"I-disassemble"
public static void main(String args[])
.Isa sa mga tanyag na tanong sa panayam sa java para sa mga fresher, at napakadali.
-
public
ay isang access modifier. Ginagamit namin ito upang tukuyin ang pag-access sa paraang ito. Narito ang modifier ay "pampubliko", kaya ang anumang Klase ay may access sa paraang ito. -
static
. Ang Java keyword na ito ay nangangahulugan na ginagamit namin ang paraang ito nang hindi gumagawa ng bagong Bagay ng isang Klase. -
Void
ay ang uri ng pagbabalik ng pamamaraan. Nangangahulugan ito na ang pamamaraan ay hindi nagbabalik ng anumang halaga. -
main
ay ang pangalan ng pamamaraan. "Alam" ito ni JVM bilang entry point sa isang application (dapat itong may partikular na lagda).Main
ay isang paraan kung saan nangyayari ang pangunahing pagpapatupad. -
String args[]
. Ito ang parameter na ipinasa sa pangunahing pamamaraan. Narito mayroon kaming mga argumento ng uri ng String na tinatanggap ng iyong Java application kapag pinatakbo mo ito. Maaari mong i-type ang mga ito sa terminal.
-
-
Ano ang pagkakaiba ng
equals()
at==
?Una, ang "
==
" ay isang operator samantalangequals()
isang paraan. Gumagamit kami==
ng operator para sa paghahambing ng sanggunian (o paghahambing ng address) atequals()
paraan para sa paghahambing ng nilalaman. Nangangahulugan ito na==
sinusuri kung ang parehong mga bagay ay tumuturo sa parehong lokasyon ng memorya habangequals()
inihahambing ang mga halaga sa mga bagay. -
Maaari ba tayong magsagawa ng isang programa nang walang
main()
pamamaraan?Maraming java basic interview questions ay talagang madali. Tulad ng isang ito. Kaya maikling sagot ay: oo, maaari naming. Halimbawa magagawa natin ito gamit ang static block.
Maaari mong gamitin ang static block upang simulan ang static na data member. Isinasagawa ito bago ang
main
pamamaraan, sa oras ng paglo-load ng klase.class Example{ Static{ System.out.println("static block is invoked"); } public static void main(String args[]){ System.out.println("Now main method"); } }
Ang output ay:
static block is invoked Now main method
Paano ang kabuuang kawalan ng pangunahing pamamaraan? Kung susubukan mong magpatakbo ng isang ordinaryong klase nang wala ang pangunahing paraan, nakuha mo ang susunod na error: Ang pangunahing pamamaraan ay hindi natagpuan sa klase ng Pagsusuri, mangyaring tukuyin ang pangunahing pamamaraan bilang: pampublikong static void main (String [] args) o isang JavaFX application klase ay dapat i-extend ang javafx.application.Application. Ang error mismo ay nagsasabi na kung ito ay isang JavaFX application at ang klase ay minana mula sa javafx.application.Application, kung gayon ito ay posible.
-
Ano ang
immutable
object? Maaari kang lumikhaimmutable
ng bagay?Hindi mo maaaring baguhin ang mga bagay ng isang
immutable
klase pagkatapos ng kanilang paggawa. Kaya kapag nilikha mo ang mga ito, hindi mo na mababago ang mga ito. Kung susubukan mong baguhinImmutable
ang object makakakuha ka ng bagong object (clone) at baguhin ang clone na ito habang ginagawa.Ang isang magandang halimbawa ay
String
, ito ayimmutable
nasa Java. Nangangahulugan iyon na hindi mo mababago ang mismong bagay, ngunit maaari mong baguhin ang sanggunian sa bagay. -
Ilang bagay ang nilikha sa sumusunod na code?
Isa sa mga tanong sa java technical interview na pumapalit sa #4.
String s1="Hello"; String s2="Hello"; String s3="Hello";
Ang sagot ay "isa lang" dahil may String Pool ang Java. Kapag gumawa kami ng String object gamit ang new() operator, lumilikha ito ng bagong object sa heap memory. Kung gumagamit kami ng String literal na syntax, tulad ng sa aming halimbawa, maaari itong magbalik ng isang umiiral na bagay mula sa String pool, kung mayroon na ito.
-
Ilang bagay ang nilikha sa sumusunod na code?
String s = new String("Hello");
Mayroong 2 bagay. Ang isa ay nasa string constant pool (kung wala pa) at ang isa ay nasa heap.
-
Ano ang Pagkakaiba sa Pagitan
String
,StringBuilder
AtStringBuffer
Mga Klase sa Java?Mayroong isa sa mga nangunguna sa mga nangungunang tanong sa panayam sa java.
Una sa lahat
String
ay isang hindi nababagong klase. Ibig sabihin, hindi mo na mababago ang content nito kapag nagawa na. HabangStringBuffer
atStringBuilder
mga nababagong klase, kaya maaari mong baguhin ang mga ito sa ibang pagkakataon. Kung babaguhin natin ang nilalaman ngString
bagay, lilikha ito ng bagong string kaya hindi nito binabago ang orihinal. Iyon ang dahilan kung bakit ang pagganap saStringBuffer
ay mas mahusay kaysa saString
.Ang pangunahing pagkakaiba sa pagitan ng mga pamamaraan
StringBuffer
atStringBuilder
iyonStringBuffer
ay naka-synchronize habangStringBuilder
ang 's ay hindi. -
Mayroon bang anumang pagkakaiba sa
String
na nilikha gamit ang literal at maynew()
operator?meron. Kung gagawa tayo ng String gamit ang
new()
operator, lalabas ito sa heap at sa string pool (kung wala pa). Kung lumikha ka ng isangString
gamit ang isang literal, ito ay nilikha sa string pool (kung hindi pa naroroon). Ang string pool ay isang storage area sa loob ng heap, na nag-iimbak ng mga literal na string. -
Maaari mo bang i-override
private
ostatic
pamamaraan sa Java?Isa sa java nakakalito na mga tanong sa panayam para sa mga baguhan. Talagang hindi mo ma-override
private
ostatic
paraan sa Java.Hindi mo maaaring i-override ang
private
mga pamamaraan dahil nasa loob lang ng klase ang saklaw ng private access specifier. Kapag may ipapa-override ka, dapat ay mayroon tayong klase ng magulang at anak. Kung ang paraan ng superclass ayprivate
, hindi ito magagamit ng klase ng bata, at ang mga pamamaraan sa klase ng bata ay ituring bilang mga bagong pamamaraan (hindi na-override).Static
Ang mga pamamaraan ay hindi rin maaaring ma-override, dahilstatic
ang mga pamamaraan ay bahagi ng Klase mismo, at hindi bahagi ng anumang bagay ng klase. Siguradong maaari mong ideklara ang parehongstatic
paraan na may parehong lagda sa mga klase ng bata, ngunit muli, ituturing ang mga ito bilang mga bagong pamamaraan. -
Pagkakaiba sa pagitan
Abstract Class
ng atInterface
Isa sa mga tanyag na tanong sa panayam ng developer ng java na may kinalaman sa mga prinsipyo ng OOP. Una sa lahat, sa Java
interface
ay tumutukoy sa isang pag-uugali atabstract class
lumilikha ng hierarchy.Abstract na klase Interface Posibleng magkaroon ng method body (non-abstract method) sa abstract class Ang interface ay maaaring magkaroon lamang ng mga abstract na pamamaraan. Sa Java 8 o mas bago, naging posible na tukuyin ang mga default na pamamaraan at ipatupad ang mga ito nang direkta sa interface. Gayundin, ang mga Interface sa Java 8 ay maaaring magkaroon ng mga static na pamamaraan. Ang mga variable ng instance ay maaaring nasa abstract na klase Ang isang interface ay hindi maaaring magkaroon ng mga variable ng instance. Pinapayagan ang mga konstruktor Ang interface ay hindi maaaring magkaroon ng anumang tagabuo. Pinapayagan ang mga static na pamamaraan Hindi pinapayagan ang mga static na pamamaraan Maaari lamang magkaroon ng isang abstract na magulang ang klase Ang isang interface ay maaaring magpatupad ng iba't ibang klase Ang abstract na klase ay maaaring magbigay ng pagpapatupad ng interface. Hindi maibibigay ng Interface ang pagpapatupad ng abstract na klase. Ang isang abstract na klase ay pinapayagan na palawigin ang iba pang klase ng Java at ipatupad ang maramihang mga interface ng Java. Ang isang interface ay pinapayagan na palawigin ang iba pang Java interface lamang. Ang isang abstract na klase ng Java ay maaaring magkaroon ng pribado at protektadong mga miyembro ng klase Ang mga miyembro ng isang Java interface ay pampubliko bilang default -
Maaari ba tayong magdeklara
static
ng mga variable at pamamaraan sa isangabstract
klase?Oo, posible na magdeklara
static
ng mga variable at pamamaraan saabstract
pamamaraan. Walang kinakailangang gumawa ng isang bagay upang ma-access ang static na konteksto. Kaya pinapayagan kaming ma-access ang static na konteksto na idineklara sa loob ngabstract
klase sa pamamagitan ng paggamit ng pangalan ngabstract
klase. -
Anong mga uri ng mga lugar ng memorya ang inilalaan ng JVM?
Ang Class Area ay nag-iimbak ng mga istruktura ng perclass, halimbawa, runtime constant pool, mga field, mga data ng pamamaraan, at lahat ng code para sa mga pamamaraan.
Ang Heap ay isang runtime data area kung saan ang memorya ay inilalaan sa mga bagay.
Ang mga stack ay nag-iimbak ng mga frame. Naglalaman ito ng mga lokal na variable at bahagyang resulta, at nakikibahagi sa paraan ng invocation at return. Ang bawat thread ay may pribadong JVM stack, na ginawa kasabay ng thread. Ang isang bagong frame ay nilikha sa bawat oras na ang isang paraan ay hinihimok. Nawasak ang isang frame kapag nakumpleto ang paraan ng invocation nito.
Naglalaman ang Program Counter Register ng isang address ng pagtuturo ng Java virtual machine na kasalukuyang isinasagawa.
Ang Native Method Stack ay naglalaman ng lahat ng katutubong pamamaraan na ginagamit sa application.
-
Bakit hindi pinapayagan ang maramihang mana sa java?
Magiging kumplikado talaga. Isipin ang tatlong klase
A
,B
, atC
atC
inheritsA
atB
. Ngayon,A
atB
ang mga klase ay may parehong pamamaraan at tinatawag mo ito mula sa isang object ng klase ng bata... Alin?A
's oB
's? Dito mayroon tayong kalabuan.kung susubukan mong magmana ng dalawang klase ng Java renders compile time error.
-
Maaari ba nating i-overload ang
main()
pamamaraan?Oo naman, pinapayagan kaming magkaroon ng maraming
main
pamamaraan sa isang Java program sa pamamagitan ng paggamit ng overloading ng pamamaraan. Subukan! -
Maaari ba kaming magdeklara ng isang tagabuo bilang
final
?Hindi. Ang isang constructor ay hindi maaaring ideklara bilang isang
final
dahil hindi ito maaaring mamana. Kaya walang katuturan na ideklara ang mga konstruktor bilangfinal
. Gayunpaman, kung susubukan mong gawin ito, ang Java compiler ay magbibigay sa iyo ng isang error. -
Maaari ba kaming magdeklara ng isang interface bilang
final
?Hindi, hindi natin ito magagawa. Ang isang interface ay hindi maaaring
final
dahil ang interface ay dapat ipatupad ng ilang klase ayon sa kahulugan nito. Samakatuwid, walang kahulugan na gumawa ng isang interfacefinal
. Gayunpaman, kung susubukan mong gawin ito, magpapakita ng error ang compiler. -
Ano ang pagkakaiba ng
static binding
atdynamic binding
?Ang
binding
maaaring malutas sa oras ng pag-compile ng compiler ay tinatawagstatic
o maagang pagbubuklod.Binding
ng lahat ngstatic
,private
atfinal
mga pamamaraan ay ginagawa sa oras ng pag-compile.Sa
Dynamic binding
compiler ay hindi maaaring pumili ng isang paraan na tatawagin. Ang overriding ay isang perpektong halimbawa ngdynamic binding
. Sa pag-override ng parehong mga klase ng magulang at anak ay may parehong pamamaraan.Static Binding class Cat{ private void talk() {System.out.println("cat is mewing..."); } public static void main(String args[]){ Cat cat=new Cat(); cat.talk(); } } Dynamic Binding class Animal{ void talk(){ System.out.println("animal is talking..."); } } class Cat extends Animal{ void talk(){ System.out.println("cat is talking..."); } public static void main(String args[]){ Animal animal=new Cat(); animal.talk(); } }
-
Paano lumikha ng isang read-only na klase sa Java?
Magagawa mo ito sa pamamagitan ng paggawang pribado sa lahat ng field ng klase. Ang read-only na klase ay may mga getter method lang na nagbabalik ng pribadong pag-aari ng klase sa
main
method. Hindi mo mabago ang property na ito, ang dahilan ay ang kakulangan ng setter method.public class HockeyPlayer{ private String team ="Maple leaf"; public String getTeam(){ return team; } }
-
Paano lumikha ng isang write-only na klase sa Java?
Muli, dapat mong gawin ang lahat ng mga field ng klase
private
. Ngayon, ang iyong write-only na klase ay dapat magkaroon lamang ng mga setter method at walang getter. Samakatuwid, hindi namin mabasa ang mga katangian ng klase.public class HockeyPlayer{ private String team; public void setTeam(String college){ this.team = team; } }
-
Ang bawat
try
bloke ay dapat na sinusundan ng isangcatch
bloke, hindi ba?Hindi. Ito ay hindi isang pangangailangan. Ang bawat
try
bloke ay maaaring walangcatch
bloke. Maaari itong sundan ng alinman sa isang catchblock o isang pangwakas na bloke o kahit na wala sila sa lahat.public class Main{ public static void main(String []args){ try{ int variable = 1; System.out.println(variable/0); } finally { System.out.println("the other part of the program..."); } } }
Output:
Exception in thread main java.lang.ArithmeticException:/ by zero the other part of the program...
Isa pang halimbawa:class Main { public static void main(String[] args) throws IOException { try(InputStreamReader inputStreamReader = new InputStreamReader(System.in); BufferedReader reader = new BufferedReader(inputStreamReader)){ System.out.println("test"); } } }
Output:
test
PS: Bago ang Java 8 na mga pamamaraan sa mga interface ay maaaring abstract lamang. Sa Java 8 o mas bago, naging posible na tukuyin ang mga default na pamamaraan at ipatupad ang mga ito nang direkta sa interface. -
Ano ang pagkakaiba sa pagitan
throw
ngthrows
mga keyword?Throws
ay ginagamit upang magpahayag ng isang pagbubukod, kaya ito ay gumagana katulad ngtry-catch
block.Throw
Ang keyword ay ginagamit upang tahasang magtapon ng eksepsiyon mula sa isang paraan o anumang iba pang bloke ng code.Throw
ay sinusundan ng isang halimbawa ngException
klase at ang mga throw ay sinusundan ng mga pangalan ng klase ng exception.Throw
ay ginagamit sa katawan ng pamamaraan upang magtapon ng isang pagbubukod.Throws
ay ginagamit sa isang lagda ng pamamaraan upang ipahayag ang mga pagbubukod na maaaring mangyari sa mga pahayag na naroroon sa pamamaraan.Pinapayagan na magtapon ng isang pagbubukod sa isang pagkakataon ngunit maaari mong pangasiwaan ang maraming mga pagbubukod sa pamamagitan ng pagdedeklara sa mga ito gamit ang
throw
keyword. Maaari kang magdeklara ng maraming mga pagbubukod, hal,public void method()throws IOException
,SQLException
.
GO TO FULL VERSION