przykład pytań testowych z jawy przy rekrutacji do roboty

0

Potrzebuję przykładowe pytania z programowania w javie, albo cały test najlepiej.

W zasadzie jestem prawie zielony w javie, specjalizuję się w c++ i generalnie w programowaniu obiektowym;
no, ale to chyba dość podobne jest, nie?

2

To dwa różne światy. Coś jak porównywanie motoru z samochodem. Niby oba jeżdżą, ale jednak nie są takie same. Co do pytań -> Google -> 100 most common java interview questions

1

Szukaj java certified programmer example test.
Przykład:
https://testoutce.com/pages/practice-quiz-exam-1z0-808-java-se-8-programmer-i
(tylko to stara java 8)

1

Z tego bedzie Pan zadowolony
https://enthuware.com/

1

ale to chyba dość podobne jest, nie

hmm no samo programowanie imperatywne sie specjalnie nie różni - myślisz w ten sam sposób, używasz tych samych prymitywów. Składnia też nie jest jakaś specjalnie inna. Różnica pojawia się raczej w "zastosowaniach" i co za tym idzie także w pewnych patternach i rozwiązaniach które się stosuje. Java to raczej jakiś web i mikroserwisy więc na rozmowie mogą cię pytać o rzeczy z tym związane.

0
  1. Jakie jest przeznaczenie metody public static void main ?
  2. Kiedy użyć klasy abstrakcyjnej zamiast interfejsu ?
  3. Jaka jest różnica pomiędzy metodą public, a protected ?
  4. Jaka jest różnica pomiędzy HashSet a TreeSet
  5. Kto to jest James Gosling ? xDDDD
0

Polskie niewypały:

  • szablony - niejednoznaczne, bo to dotyczy templete class/funkcji w c++ ale zarazem.. wielu innych spraw
  • właściwości - niejednoznaczne: properties ale właściwość w polskim może znaczyć zupełnie coś innego
    ...

a tu mam chyba błąd w tych testach:
https://codegym.cc/pl/groups/posts/pytania-rekrutacyjne-dotyczce-jzyka-java

w pytaniu 6. twierdzą że są tworzone dwa obiekty w kodzie typu:
s = String("abc")

i to jest bzdura ewidentna...

string "abc" jest po prostu wpisany w segment danych, i nie ma tu czego tworzyć.

Zawsze tak jest z danymi wklepanymi - 'statycznymi', np.:
double x = 7654.98797;

ta liczba musi gdzieś wisieć w ramie, żeby mogła zostać załadowana do zmiennej x.
nie ma tu żadnego tworzenia.

pytanie 3. - to z main() to też niezły przypadek bełkotu.
nie ma mowy o programie bez main, i tyle - programu musi się gdzieś zaczynać, niestety!
Potem podają przykład bez main, w którym stoi jak byk main.

i jeszcze 10. abstract i interface
zawsze było to dokładnie tym samym, bo to jest sama tabela do virtualnych.
najwyraźniej zbyt duża abstrakcja prowadzi do bicia w mordę na jawie.

3
Bet napisał(a):

w pytaniu 6. twierdzą że są tworzone dwa obiekty w kodzie typu:
s = String("abc") tu się dodatkowo walnąłeś i źle przepisałeś

i to jest bzdura ewidentna...

string "abc" jest po prostu wpisany w segment danych, i nie ma tu czego tworzyć.

To nie jest takie proste. Zapomnij o czymś takim jak segment danych - jest co prawda constant pool...
Jakkolwiek:
Pytanie pomocnicze. Ile objektów jest tworzonych w takim kodzie?

String s = "abc";

Z jednej strony - faktycznie "abc" ląduje na constant pool. Ale to pełnoprawny obiekt - s jest obiektem. (A właściwie referencją do obiektu).
Czyli jest jeden tworzony (można pytać kiedy).
Uważam, że tego typu pytania są średnie - bo zawsze można dyskutować, ale nie jest tak, że ich odpowiedź to bzdura.

Na razie masz za niski poziom abstrakcji na javę - myślisz bajtami. Będzie Ci ciężko.

Java (jak prawie każdy porządny język programowania) "działa" również bez komputera.

Pytanie 3:
Nie przeczytałeś odpowiedzi do końca.

i jeszcze 10. abstract i interface
zawsze było to dokładnie tym samym, bo to jest sama tabela do virtualnych.
najwyraźniej zbyt duża abstrakcja prowadzi do bicia w mordę na jawie.

Nie ma żadnych tabeli do virtualnych. - to znaczy może i są w jakiejś implementacji jvm :-), ale nie ma to żadnego znaczenia dla odpowiedzi.

Jeszcze raz. Na razie kopie Cie w mordę twoja nieznajomość C++ - znasz natomiast C ewidentnie - i myślisz w C.

2

No to standardowo:

  • klasa abstrakcyjna vs. interfejs
  • po co są interfejsy
  • o co chodzi z hashcode i equals, jaki ma być konkrakt
  • jak działa hashmapa
  • wytłumacz słowa kluczowe final, finally, finalize
  • string builder vs. string buffer vs. operator "+"
  • nowości w najnowszej javie
  • w jaki sposób napiszesz program wielowątkowy
  • jakie znasz metody testowania aplikacji i rodzaje testów
  • jak może powstać wyciek pamięci, jak przeprowadziłbyś analizę w celu znalezienia i usunięcia wycieku pamięci
  • dla chętnych: jak działa garbage collector
  • jak w projekcie jest spring, to pytania ze springa, jak jest coś innego (znanego), to pytania z czegoś innego

Oczywiście więcej może być tych pytań. Możliwe też, że nikt nie zada Ci żadnego z powyższych pytań.

9

Płynnie przeszedłeś z prośby o pomoc w przygotowaniu się do pytań z Javy do polemiki z materiałami i definicjami. Najwidoczniej wiesz wszystko lepiej - jesteś gotowy na interview :) daj tylko plz znać jak poszło.

1

Jaki jest sens startować do firmy, w której główną bądź jedną z głównych technologii jest Java której kompletnie nie znasz?
To na studiach się mówi ze c++ = java, bo na początku przygody z obiektówką nie wychodzi się poza tworzenie klas, kosntruktory, gettery i settery.
W rzeczywistości, jak już mogłeś zauważyć po podesłanych materiałach jest bardzo dużo różnic.

@Bet z czystej ciekawości, skąd decyzja o rzuceniu C/C++ i spróbowaniu sił w firmie z javą/.netem ?

1

zapomniałem że to jest skrypt, więc można uznać że są tworzone 2 obiekty,
ale i tak niekoniecznie, bo mógł być wcześniej utworzony identyczny: 'abc', a wtedy pójdzie tylko referencja.

Samo pytanie jest idiotyczne: celem jest utworzenie tego co programista potem używa,
a nie to, co i jak robi kompilator aby to zrealizować.

W zasadzie to jest nieokreślone, bo zależne od implementacji samej maszynerii tej Javy, niestety.

3

Jak chcesz hardcore'owe pytania to stara książka: Java Puzzlers.

Tutaj garść pytań (poziom >= mid) z głowy od praktyka:

  • final, gdzie można stosować, do czego służy, zalety i wady.
  • Jak działa GC, kiedy obiekt może zostać zwolniony przez GC, co to jest STW (Stop The World) i czy ma wpływ na wszystkie wątki w aplikacji.
  • Czym są adnotacje, do czego służy ustawianie retencji, podaj jakieś przykładowe zastosowanie.
  • Wymień najpopularniejsze implementacje kolekcji w Javie wraz z ich złożonością obliczeniową.
  • Do czego służy klasa AtomicInteger? W jakich sytuacjach należy używać ConcurrentHashMap'y? Do czego służy synchronized, na jakich obiektach nie należy się synchronizować, oraz do czego może prowadzić niepoprawna synchronizacja.
  • Czym jest CLASSPATH, ClassLoader. Czy jest możliwe załadowanie do JVM dwóch klas o dokładnie takiej samej nazwie?
  • Jaka jest struktura pliku .jar oraz czym to jest MANIFEST. Czym są "risorsy".
  • Czym jest type erasure. Jak działa ko i kontrawariancja w Javie.
  • Czy możesz wymienić jakieś nowości ostatnio wprowadzone do Javy?

Senior/Principal:

  • Czym są agenci JVM'a, jakie mogą mieć zastosowania.
  • Czym jest annotation processing, przykład zastosowania.
  • Czym jest JMH, przykład zastosowania. FlameGraphy przykład zastosowania.
  • Jak podszedłbyś do rozwiązania problemu zbyt długich pauz GC, od czego byś zaczął.
  • W jaki sposób można monitorować aplikację Javową na produkcji?
  • Czym jest interning i caching, na przykładzie String i Integer <= 127.
  • Czym jest off-heap, do czego służy

Jak na to odpowiesz, to nikt niebie nie zagnie z Javy.

0

Takie pytania są jeszcze bardziej idiotyczne.

To tak jakby kazać komuś wyklepać na pamięć wszystkie funkcje z windowsa, czyli nauczyć na pamięć windows.h + z 50 innych .h

np. pytanie w stylu (dla programisty Windows w... Bajziku):
CreateDIBSection - opisz mi tę funkcję: podaj parametry, możliwości, ograniczenia... uwzględniając akcelerator grafiki klasy GTX A74.

0

@Bet: W sensie np. to pytanie jest idiotyczne?

Do czego służy klasa AtomicInteger? W jakich sytuacjach należy używać ConcurrentHashMap'y? Do czego służy synchronized, na jakich obiektach nie należy się synchronizować, oraz do czego może prowadzić niepoprawna synchronizacja.

Albo to?

Jak działa GC, kiedy obiekt może zostać zwolniony przez GC, co to jest STW (Stop The World) i czy ma wpływ na wszystkie wątki w aplikacji.

O ile szczegoly dzialania GC dla typowego klepacza bez ambicji nie sa jakies bardzo istotne o tyle trzeba wiedziec, ze GC jest i jakie to niesie za soba implikacje. Bo GC z jednej strony to killer-feature jezykow zarzadzanych a z drugiej straszny "pain in the ass".

0

Do czego służy klasa AtomicInteger?

To jest dokładnie coś w stylu, co podałem...
wchodzimy do dokumentacji i czytamy co to jest - proste?

Do czego służy klasa HiperBell?

OK.
Dostałem te testy, i tam faktycznie były tego typu pytania jak te, które podawaliście.
W zasadzie mógłby kopiować żywcem odpowiedzi z sieci, ale nie będę robił prac domowych dla studenta. Mnie nie ten rodzaj działalności już nie interesuje.

1
Bet napisał(a):

Do czego służy klasa AtomicInteger?

To jest dokładnie coś w stylu, co podałem...
wchodzimy do dokumentacji i czytamy co to jest - proste?

Ale wiesz, że kod oprócz czytania się czasem pisze? Fajnie byłoby znać podstawowe narzędzia. Bałbym się dać taska związanego z wielowątkowością komuś kto nie ma pojęcia czym jest AtomicInteger

1

Bez tego robiłem setki programów wielowątkowych -
do tego służą: eventy, mutexy, semafory, lock, itp. spawy, a nie jakieś atomistyczne integerki z bibloteczki.

1
Bet napisał(a):

Bez tego robiłem setki programów wielowątkowych -

do tego służą: eventy, mutexy, semafory, lock, itp. spawy, a nie jakieś atomistyczne integerki z bibloteczki.

XDDDDDD
sorry musialem

1
Bet napisał(a):

zapomniałem że to jest skrypt, więc można uznać że są tworzone 2 obiekty

Skrypt?

W zasadzie to jest nieokreślone, bo zależne od implementacji samej maszynerii tej Javy, niestety.

Nie, to jest zupełnie precyzyjnie określone. Do tego służy specyfikacja języka i maszyny wirtualnej. Być może w czasie wykonania nie będzie nawet żadnej alokacji, jvm potrafi czasem być sprytny, ale z punktu widzenia języka masz tam 2 obiekty.

0

co jest precyzyjne?

a = string('abc');
...

b = string('abc');

ile teraz jest tworzonych?

5

@Bet ty jak zawsze oporny na wiedzę. Szykuje ci sie trzeci ban, za omijanie poprzednich, ale z litości odpowiem:

var x = new String("abc");
var y = new String("abc");
assert x!=y

Co innego byłoby gdyby zrobić:

var x = "abc";
var y = "abc";

Bo teraz te stringi polecą ze String.intern i będą najpewniej referencjami na ten sam obiekt.

Podobnie dzieje się z małymi (<128) Integerami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1