CodeGym /Java Blog /Random /Nangungunang 21 tanong sa panayam sa Java
John Squirrels
Antas
San Francisco

Nangungunang 21 tanong sa panayam sa Java

Nai-publish sa grupo
Mayroong libu-libong mga tanong sa panayam sa Java at hindi namin makolekta ang lahat ng mga ito sa isang artikulo. Gayunpaman dito makakahanap ka ng ilang mga karaniwang tanong sa panayam sa Java, ayon sa mga HR-manager ng mga kumpanyang IT. Nangungunang 21 tanong sa panayam sa Java - 1
  1. "I-disassemble" public static void main(String args[]).

    Isa sa mga tanyag na tanong sa panayam sa java para sa mga fresher, at napakadali.

    • publicay 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.

    • Voiday ang uri ng pagbabalik ng pamamaraan. Nangangahulugan ito na ang pamamaraan ay hindi nagbabalik ng anumang halaga.

    • mainay ang pangalan ng pamamaraan. "Alam" ito ni JVM bilang entry point sa isang application (dapat itong may partikular na lagda). Mainay 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.

  2. Ano ang pagkakaiba ng equals()at ==?

    Una, ang " ==" ay isang operator samantalang equals()isang paraan. Gumagamit kami ==ng operator para sa paghahambing ng sanggunian (o paghahambing ng address) at equals()paraan para sa paghahambing ng nilalaman. Nangangahulugan ito na ==sinusuri kung ang parehong mga bagay ay tumuturo sa parehong lokasyon ng memorya habang equals()inihahambing ang mga halaga sa mga bagay.

  3. 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 mainpamamaraan, 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
    
  4. 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.
  5. Ano ang immutableobject? Maaari kang lumikha immutableng bagay?

    Hindi mo maaaring baguhin ang mga bagay ng isang immutableklase pagkatapos ng kanilang paggawa. Kaya kapag nilikha mo ang mga ito, hindi mo na mababago ang mga ito. Kung susubukan mong baguhin Immutableang object makakakuha ka ng bagong object (clone) at baguhin ang clone na ito habang ginagawa.

    Ang isang magandang halimbawa ay String, ito ay immutablenasa Java. Nangangahulugan iyon na hindi mo mababago ang mismong bagay, ngunit maaari mong baguhin ang sanggunian sa bagay.

  6. 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.

  7. 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.

  8. Ano ang Pagkakaiba sa Pagitan String, StringBuilderAt StringBufferMga Klase sa Java?

    Mayroong isa sa mga nangunguna sa mga nangungunang tanong sa panayam sa java.

    Una sa lahat Stringay isang hindi nababagong klase. Ibig sabihin, hindi mo na mababago ang content nito kapag nagawa na. Habang StringBufferat StringBuildermga nababagong klase, kaya maaari mong baguhin ang mga ito sa ibang pagkakataon. Kung babaguhin natin ang nilalaman ng Stringbagay, lilikha ito ng bagong string kaya hindi nito binabago ang orihinal. Iyon ang dahilan kung bakit ang pagganap sa StringBufferay mas mahusay kaysa sa String.

    Ang pangunahing pagkakaiba sa pagitan ng mga pamamaraan StringBufferat StringBuilderiyon StringBufferay naka-synchronize habang StringBuilderang 's ay hindi.

  9. Mayroon bang anumang pagkakaiba sa Stringna nilikha gamit ang literal at may new()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 isang Stringgamit 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.

  10. Maaari mo bang i-override privateo staticpamamaraan sa Java?

    Isa sa java nakakalito na mga tanong sa panayam para sa mga baguhan. Talagang hindi mo ma-override privateo staticparaan sa Java.

    Hindi mo maaaring i-override ang privatemga 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 ay private, hindi ito magagamit ng klase ng bata, at ang mga pamamaraan sa klase ng bata ay ituring bilang mga bagong pamamaraan (hindi na-override).

    StaticAng mga pamamaraan ay hindi rin maaaring ma-override, dahil staticang mga pamamaraan ay bahagi ng Klase mismo, at hindi bahagi ng anumang bagay ng klase. Siguradong maaari mong ideklara ang parehong staticparaan na may parehong lagda sa mga klase ng bata, ngunit muli, ituturing ang mga ito bilang mga bagong pamamaraan.

  11. Pagkakaiba sa pagitan Abstract Classng 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 interfaceay tumutukoy sa isang pag-uugali at abstract classlumilikha 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
  12. Maaari ba tayong magdeklara staticng mga variable at pamamaraan sa isang abstractklase?

    Oo, posible na magdeklara staticng mga variable at pamamaraan sa abstractpamamaraan. 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 ng abstractklase sa pamamagitan ng paggamit ng pangalan ng abstractklase.

  13. 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.

  14. Bakit hindi pinapayagan ang maramihang mana sa java?

    Magiging kumplikado talaga. Isipin ang tatlong klase A, B, at Cat Cinherits Aat B. Ngayon, Aat Bang mga klase ay may parehong pamamaraan at tinatawag mo ito mula sa isang object ng klase ng bata... Alin? A's o B's? Dito mayroon tayong kalabuan.

    kung susubukan mong magmana ng dalawang klase ng Java renders compile time error.

  15. Maaari ba nating i-overload ang main()pamamaraan?

    Oo naman, pinapayagan kaming magkaroon ng maraming mainpamamaraan sa isang Java program sa pamamagitan ng paggamit ng overloading ng pamamaraan. Subukan!

  16. Maaari ba kaming magdeklara ng isang tagabuo bilang final?

    Hindi. Ang isang constructor ay hindi maaaring ideklara bilang isang finaldahil hindi ito maaaring mamana. Kaya walang katuturan na ideklara ang mga konstruktor bilang final. Gayunpaman, kung susubukan mong gawin ito, ang Java compiler ay magbibigay sa iyo ng isang error.

  17. Maaari ba kaming magdeklara ng isang interface bilang final?

    Hindi, hindi natin ito magagawa. Ang isang interface ay hindi maaaring finaldahil ang interface ay dapat ipatupad ng ilang klase ayon sa kahulugan nito. Samakatuwid, walang kahulugan na gumawa ng isang interface final. Gayunpaman, kung susubukan mong gawin ito, magpapakita ng error ang compiler.

  18. Ano ang pagkakaiba ng static bindingat dynamic binding?

    Ang bindingmaaaring malutas sa oras ng pag-compile ng compiler ay tinatawag statico maagang pagbubuklod. Bindingng lahat ng static, privateat finalmga pamamaraan ay ginagawa sa oras ng pag-compile.

    Sa Dynamic bindingcompiler ay hindi maaaring pumili ng isang paraan na tatawagin. Ang overriding ay isang perpektong halimbawa ng dynamic 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();  
     }  
    }
    
  19. 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 mainmethod. 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;    
    }    
    }
    
  20. 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;    
    }    
    }    
    
  21. Ang bawat trybloke ay dapat na sinusundan ng isang catchbloke, hindi ba?

    Hindi. Ito ay hindi isang pangangailangan. Ang bawat trybloke ay maaaring walang catchbloke. 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.
  22. Ano ang pagkakaiba sa pagitan throwng throwsmga keyword?

    Throwsay ginagamit upang magpahayag ng isang pagbubukod, kaya ito ay gumagana katulad ng try-catchblock. ThrowAng keyword ay ginagamit upang tahasang magtapon ng eksepsiyon mula sa isang paraan o anumang iba pang bloke ng code.

    Throway sinusundan ng isang halimbawa ng Exceptionklase at ang mga throw ay sinusundan ng mga pangalan ng klase ng exception.

    Throway ginagamit sa katawan ng pamamaraan upang magtapon ng isang pagbubukod. Throwsay 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 throwkeyword. Maaari kang magdeklara ng maraming mga pagbubukod, hal, public void method()throws IOException, SQLException.

Dito mayroon lamang kaming ilang mga tanong at sagot sa panayam sa java. Ang artikulong ito ang una sa serye ng panayam. Ang susunod (paparating na) ay tungkol sa mga tanong sa istruktura ng data.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION