Pytania każdy dobry programista Java / Java EE powinien być w stanie odpowiedzieć? [zamknięte]

Przechodziłem przez pytania, na które każdy dobry programista. Net powinien odpowiedzieć{[2] } i byłem pod wielkim wrażeniem treści i podejścia do tego pytania,więc w tym samym duchu zadaję to pytanie programiście Java / Java EE.

Na jakie pytania Twoim zdaniem dobry programista Java/Java EE powinien odpowiedzieć?

Zaznaczam to pytanie jako community wiki, ponieważ nie jest specyficzne dla użytkownika i ma służyć społeczności programistycznej na duży.

Czekam na niesamowite odpowiedzi.

EDIT : proszę również odpowiadać na pytania, jak sugerowano w komentarzach, aby ludzie mogli nauczyć się czegoś nowego również w odniesieniu do języka.

 138
Author: Rachel, 2010-01-22

30 answers

Jaka jest relacja pomiędzy hashCode () i equals()? Jakie jest znaczenie tych metod? Jakie są wymagania do ich wdrożenia?

 83
Author: Jeff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 01:06:27

Jaka jest różnica między zestawem, mapą i listą?

Nadal jestem zdumiony, jak wiele osób nie zna tego w rozmowie telefonicznej.

 70
Author: Jon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 01:09:18

Czy interfejs może rozszerzyć wiele interfejsy?

Większość ludzi odpowiada "nie", ponieważ wiedzą, że java nie ma wielu dziedziczeń. Ale interfejs może nadal rozszerzać wiele interfejsów (ale klasa nie może rozszerzać wielu klas). To nie prowadzi do problemu diamentów.

Jeśli odpowiedź brzmi "nie", ankieter powinien zapytać "dlaczego[7]} czy [8]} byłoby to zabronione?". Wtedy zaczynasz o tym myśleć i powinieneś zdać sobie sprawę, że nie ma z tym problemu.

Więc nauczyłeś się czegoś (sam) w wywiadzie i pokazałeś rozmówcy, że jesteś w stanie rozumować o klasach, przedmiotach, dziedziczeniu, polimorfizmie itp. Jest to o wiele lepsze niż kandydat, który zna odpowiedź na pamięć, ale nie rozumie dlaczego

 44
Author: ewernli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 19:26:20

Użycie słowa kluczowego final w wywołaniach metod. Na przykład dlaczego metoda Badanie w poniższym kodzie Nie podano żadnego błędu kompilacji pomimo użycia FINAL kwalifikatora dla parametru metody.

class Name {
    private String name;

    public Name (String s) {
        this.name = s;
    }

    public void setName(String s) {
        this.name = s;
    }
}

private void test (final Name n) {
    n.setName("test");
}

 23
Author: sateesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-01 10:08:41

Jednym z nich jest porównanie łańcuchów. Różnica między

String helloWorld = "Hello World";
helloWorld = = "Hello World";
"Hello World"equals (helloWorld);

 19
Author: zapping,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-01 08:36:38

Podchwytliwe pytanie: jakie parametry są przekazywane przez odniesienie w Javie?

To niesamowite, jak wielu ludzi wciąż papuguje mantrę "prymitywy przekazywane są przez wartość, przedmioty przekazywane są przez odniesienie".

 17
Author: Chinmay Kanchi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 01:12:20

Powiedziałeś "dobry", "deweloper". Tu są też moje 2 centy.. :)

  • co oznacza "zaznaczony wyjątek"?
  • który z nich jest lepszy i kiedy: twierdzenia lub wyjątki do obsługi nieoczekiwanych warunków?
  • Dlaczego Klasa String jest ostateczna? (a może nie? ;) )
  • czy metody wait, notify i notifyAll są w klasie obiektu?
  • Dlaczego Klasa wątków nie jest ostateczna? Po co miałbym przedłużać wątek?
  • Dlaczego istnieją dwie klasy Date; jedna w Javie.pakiet util i kolejny w Javie.sql?
  • co się stanie, jeśli wyjątek zostanie wrzucony do bloku finally? Czy pozostałe są w końcu wykonane, czy nie?
  • istnieje garbage collector w porządku, ale czy wyciek pamięci jest całkowicie nieobecny w aplikacjach Java? Jeśli nie, to jak?

Dla J2EE:

  • czy dobrze jest mieć zmienne instancyjne/statyczne w serwlecie? Dlaczego nie? Więc gdzie przechowujesz "stan"?
  • kontynuując powyższe pytanie: co i gdzie jest "stanem" dla (web) podanie?
  • co się stanie, jeśli zacznę tworzyć / zamykać połączenia DB w "JSP"?
  • Jakie są sposoby obsługi wyjątków JSP? spróbuj złapać? Hmmm.. coś jeszcze?

Mogę myśleć o wielu, wielu, wielu innych, ale to na razie wystarczy :)

 17
Author: Elister,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-25 13:24:33

Jaka jest różnica między String, StringBuffer i StringBuilder?

 16
Author: Thunderhashy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-25 17:59:18

"Co to jest deskryptor wdrożenia?"

Jeśli kandydat drży mimowolnie, ma doświadczenie w pracy z EJB przed 3.0.

 13
Author: Michael Borgwardt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 08:57:34

Wiele pytań i wywiadów jest dostępnych na http://www.techinterviews.com/interview-questions/java i tak naprawdę nie widzę wartości w kopiowaniu / wklejaniu wybranych z nich.

Nie, to do ciebie należy stworzenie własnej kompilacji rzeczy , które uważasz za ważne. Osobiście postępuję zawsze w dwóch krokach: najpierw kilka pytań, aby uzyskać podstawowe pojęcie o doświadczeniu i umiejętnościach, a następnie sytuacja rozwiązywania problemów. Nie jestem przekonana, że będąc w stanie odpowiedzieć na jakiekolwiek znane pytania czynią cię dobrym lub złym nieznanym rozwiązywaniem problemów. Wolę więc prosić ludzi o rozwiązanie danego problemu, o podanie pewnych wymagań i o napisanie kodu (ale nie na papierze). Daję im trochę czasu, aby wrócić do mnie i sprawdzić, jak to zrobili, ich styl kodowania, jak używali sugerowanych API itp.

To wszystko jest powiedziane, Moje ulubione pytanie brzmi: "co ci się nie podoba w Javie?"(w duchu tego). Jest to naprawdę doskonałe pytanie, daje natychmiastową informację zwrotną na temat tego, ile kandydat korzystał z Javy i zapoznał się z jej API i czy po prostu o tym wie, czy nie (jak napisał OP).

Update: zgodnie z sugestią Cperkinsa, lepszym sformułowaniem pytania sugerowanego powyżej może być "co najbardziej chciałbyś zobaczyć zmienione w Javie?". I rzeczywiście, wolę ten sposób.

 12
Author: Pascal Thivent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:34

Co to jest 'System', 'out', 'println' w systemie.Wynocha.println ? Co się stanie, gdy zadzwonisz " put " na HashMap ?

 11
Author: Adi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 05:18:18
  1. wyjaśnij różne modyfikatory dostępu używane w Javie. Miałem wiele osób zmagających się z tym, zwłaszcza domyślny dostęp.
  2. gdybyś mógł zmienić jedną rzecz w języku Java lub platformie, co by to było? Dobrzy programiści będą mieli tutaj odpowiedź, podczas gdy ci, którzy nie są naprawdę zainteresowani rozwojem, prawdopodobnie nie dbają o to.
  3. jeśli ich CV mówi coś takiego, że używają EJB2. 1, zapytaj o EJB3, aby zobaczyć, co o tym wiedzą. Najlepsi deweloperzy nadążą za najnowsze osiągnięcia, nawet jeśli nie używają nowszych wersji.
 10
Author: Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 13:16:37
  • Czym jest umowa ogólna, gdy jest ona nadrzędna?
  • czy lepsza opcja preferuje listy czy tablice?
  • Jakie są ogólnie przyjęte konwencje nazewnictwa?
  • Jak działa serializacja?
  • Jak wdrożyć porównywalne?
  • Jakie są zalety korzystania z gotowych deklaracji JDBC?
  • Co to jest Java EE?
  • Co to jest kontener i jakie usługi świadczy?
 10
Author: JuanZe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 19:25:22

Jeśli zatrudniasz absolwentów z "doświadczeniem" w Javie, proste pytanie, takie jak Napisz jakiś kod, który spowoduje wyrzucenie NullPointerException może odróżnić, którzy kandydaci używali Javy ostatnio, a nie zatrzymali się po ukończeniu jednostki / kursu.

 9
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 06:01:08

co zostanie wydrukowane?

public void testFinally(){
    System.out.println(setOne().toString());

}

protected StringBuilder setOne(){
    StringBuilder builder=new StringBuilder();
    try{
        builder.append("Cool");
        return builder.append("Return");
    }finally{
        builder.append("+1");
    }
}

Odpowiedź : CoolReturn+1

trochę trudniej:

public void testFinally(){
    System.out.println(setOne().toString());

}

protected StringBuilder setOne(){
    StringBuilder builder=new StringBuilder();
    try{
        builder.append("Cool");
        return builder.append("Return");
    }finally{
        builder=null;  /* ;) */
    }
}

Odpowiedź : CoolReturn

 9
Author: zaletniy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-18 17:50:31

Jaka jest różnica między klasą abstrakcyjną a interfejsem? Kiedy użyjesz każdego z nich?

Wielu programistów Javy tego nie wie, zapytałem większość ludzi na moim kursie informatyki na uniwersytecie i zdecydowana większość nie mogła na to odpowiedzieć.

 8
Author: ZoFreX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-24 22:33:57

Proste pytania, takie jak,

    Co to jest JRE i JDK?
  • Dlaczego java deklaruje interoperacyjność?

Choć są one bardzo podstawowe, wielu programistów nie zna odpowiedzi. Sugeruję, aby były one zadawane przed zapytaniami związanymi z kodem.

 8
Author: Ravisha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-12 12:03:23

Top 5 pytań J2EE / JEE

Lista pytań J2EE/JEE middleware, z którymi miałem do czynienia, jest wyjątkowo długa, ale Oto top 5, które zostały mi zadane i doprowadziły do dobrych dyskusji:

  1. co się dzieje, gdy MDB napotka wyjątek, z którym nie może sobie poradzić?
    Pytanie to zwykle prowadzi do najróżniejszych ciekawych dyskusji na temat trujących komunikatów, kolejek błędów, itp.,
  2. biorąc pod uwagę temat JMS, a kilku konsumentów na różnych JVMs, pytania dotyczące różnych scenariuszy z trwałymi konsumentami i bez nich.
    To pytanie zazwyczaj pozwala mi dyskutować w kategoriach, kiedy korzystać z trwałych abonentów, kiedy korzystać z kolejek itp.,
  3. jeśli utknięcie w sytuacji, w której dostęp do zawartości Hibernate/JPA POJO prowadzi do wyjątków, jak je rozwiązać?
    Prowadzi to do wspaniałych dyskusji na temat leniwego ładowania, ponownego nawadniania itp., Doprowadziło to nawet do porównania i kontrastowania JPA z Entity beans. Mam warto być przygotowanym i być jasnym w pojęciach.
  4. jak można zapewnić prosty serwis internetowy?
    Każde rozwiązanie, od prostego serwera www po zaawansowane rozwiązania SOAP/REST, i każde pomiędzy, powinno być wystarczająco dobre. Ponadto, w oparciu o ankietera, czasami prowadzi to do bardzo ciekawych dyskusji na tematy takie jak niektóre pomysły projektowe - WSDL first, doc-style, soap intermediate, itp., Może to prowadzić do pytań, takich jak Wymienianie ulepszeń w JAX-WS over JAX-RPC, czyli SOAP1. 2 over SOAP1. 1, odpowiedzi na które zwykle opierają się na tym, ile pamiętam.
  5. JEE 5 resource injection
    To pytanie jest stawiane na wiele sposobów, począwszy od wzorca Service Locator do pytań javax.naming.Context.

Kolejnym podchwytliwym pytaniem, które mnie niepokoi, ale wielokrotnie się z nim spotykałem, jest, jak biblioteki zależne są pakowane do archiwum?
lub widoczność różnych klas w pakiecie archiwum.
Jeśli dyskusja nie prowadzi do hierarchii klas loader różnych serwerów aplikacji, archiwów zasobów itp., najlepiej zrezygnować i ruszyć dalej.

Top 5 podstawowych pytań Java:

  1. pytania dotyczące Javy.util.Kolekcje
    To jest matka wszystkich pytań. Kiedy będziesz mógł skutecznie wylądować ankieter w tym obszarze, a jeśli jesteś przygotowany, reszta wywiadu zwykle zostaje tutaj. Be sure of knowing Set, List, Map, oraz znaczenie Object.equals() i Object.hashCode() w każdej implementacji tych interfejsów.
  2. pytania Refaktoryzacyjne
    Są one dobre, jeśli rozmówca ma otwarty umysł. Jeśli ankieter ma już konkretne rozwiązanie, a twoje nie pasuje do jego / jej, jesteś prawie skazany. Najlepiej zgodzić się z odpowiedzią "rozumiem, że inne rozwiązania są możliwe. "
  3. pytania dotyczące wielowątkowości w JDK5, w porównaniu z wcześniejszym JDK wersje Odkryłem, że najlepiej jest być przygotowanym z java.util.współbieżne klasy pakietów. Książka Douga Lea zawiera większość odpowiedzi.
  4. Co nowego w JDK1. 6/JDK1. 7...?
    Jest to pewne pytanie strzał z wielu rozmówców. Nie znoszę tego, ale lepiej być przygotowanym. Przynajmniej pamiętając o kilku, z którymi pracowałem, i prowadząc dyskusję w innym kierunku, w dużej mierze i skutecznie unika i rozwiązuje problem.
  5. wzorce w Java API
    Od czasu do czasu zostałem poproszony o wskazanie wzorca GoF w Java API. Lepiej bądź na to przygotowany.
 6
Author: CMR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-17 02:55:38

Różnica pomiędzy serwerem i kontenerem WWW

 5
Author: user256777,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 14:03:06

Co lubisz najbardziej / najmniej w Javie i dlaczego?

 5
Author: Carsten,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-24 22:30:11

Dlaczego nadpisałeś metodę toString ()?

 5
Author: SWD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-25 13:16:44

Bardziej czyste pytanie o Javę:

Jaka jest różnica Między Snem A czekaniem ? Niewiele osób rozumie, jak działa wait.

Jak sobie radzić z przerywanymi zdarzeniami ?

 4
Author: David Nouls,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-01 08:48:25

To jest pytanie, z którym spotkałem się w wywiadzie.

Dlaczego metoda main w Javie jest wywoływana jako public static void main (String[] args) ?

ODPOWIEDŹ:

1.main() musi być zadeklarowana jako public ponieważ jest wywoływana przez JVM przy każdym uruchomieniu programu.JVM nie należy do naszego pakietu programowego.

W celu uzyskania dostępu do main poza pakietem musimy zadeklarować go jako publiczny.Jeśli zadeklarujemy to jako coś innego niż publiczne, pokazuje to Runtime Błąd ale nie błąd czasu kompilacji

2.main () musi być zadeklarowana jako static ponieważ jeśli metoda jest zadeklarowana jako static, to możemy wywołać tę metodę poza klasą używając ClassName.methodName();

class Sample
{
     static void fun()
     {
           System.out.println("Hello");       
     }
}

class Test
{
      public static void main(String[] args)
      {
                Sample.fun();
      }
}

JVM najpierw załaduje klasę Test i sprawdzi, czy nie ma argumentów wiersza poleceń i wywoła główną metodę jako Test.main ();

3.main () musi być zadeklarowane jako void main () ponieważ JVM nie oczekuje żadnych wartość z main (). więc musi być zadeklarowana jako void.

Jeśli podano inny typ zwracany, to jest to RunTimeError tj. NoSuchMethodFoundError.

4.main () musi mieć argumenty łańcuchowe jako tablice ponieważ JVM wywołuje metodę main przekazując wiersz poleceń arguement.As są one przechowywane w obiekcie string array, który jest przekazywany jako argument do main ().

 4
Author: Sai Upadhyayula,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-31 12:08:01

Jaka jest różnica między J2SE i J2EE (lub JSE i JEE)?

Programista powinien być w stanie zauważyć, że wersja enterprise jest zasadniczo definicją interfejsu (tj. specyfikacją), która może być zaimplementowana przez dostawców. Natomiast edycja standardowa jest implementacją samą w sobie

 3
Author: oxbow_lakes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-25 13:20:10

Jak volatile wpływa na optymalizację kodu przez kompilator?

 3
Author: Roman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-25 13:34:15

Jak o tym, co jest session bean i opisać pewne różnice między stateless i stateful session Bean.

 2
Author: Kristian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-22 05:20:07

Napisz program, który przyjmie dwie liczby całkowite i wypuści największą z dwóch liczb do pliku w wybranej przez siebie lokalizacji. Teraz opisz, co robi każde oświadczenie.

Jest to możliwe, aby drążyć dość głęboko począwszy od znaczenia deklaracji importu, aż do nienormalnego zakończenia

 2
Author: Everyone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-24 07:29:06

Rdzeń: 1. Co to są wyjątki zaznaczone i niezaznaczone ? 2. Podczas dodawania nowego wyjątku w kodzie jaki typ (zaznaczony/niezaznaczony) użyć kiedy ?

Servlet: 1. Jaka jest różnica między odpowiedzią.sendRedirect () I request.forward() ?

 2
Author: YoK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-12 04:03:19

Jak działa threads? Co to jest synchronized? Jeśli istnieją dwie metody synchronized w klasie, mogą być one wykonywane jednocześnie przez dwa wątki. Będziesz zaskoczony, gdy usłyszysz, że wiele osób odpowiada Tak . Wtedy wszystkie pytania związane z wątkiem, np. , głód itd.

 1
Author: fastcodejava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-24 22:25:29

Jedna rzecz wielu programistów Javy nie wie, że ciągi są niezmienne, więc użyj StringBuilder lub StringBuffer!

String s = "";
for(int i = 0; i < 100; i++) {
  s += "Strings " + "are " + "immutable, " + " so use StringBuilder/StringBuffer to reduce memory footprint";
}
 1
Author: Shervin Asgari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-14 18:28:17