Szybkie przejście na Javę

Szybkie przejście na Javę
1programmer
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 623
0

Muszę szybko przejść z JS/TS na Javę. Poznanie syntaxu z pomocą AI jest fajne i szybkie, ale jak w każdym języku są pewnie mocno legacy api, których nie używa się dzisiaj.

Z kolei wiele źródeł wiedzy, to wiele często sprzecznych opinii. Jest jakiś suplement, który omawia wszystko od A do Z? Gdzie dowiem się o pułapkach, które mogą być niezrozumiałe dla kogoś, kto nie klepie w tym od lat?

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
1
1programmer napisał(a):

(...) Jest jakiś suplement, który omawia wszystko od A do Z? (...)

Dokumentacja

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 225
1

@1programmer: kursy Udemy do Javy, Springa, Hibernate'a. Na początek wystaczy

stivens
  • Rejestracja: dni
  • Ostatnio: dni
3

Gdzie dowiem się o pułapkach, które mogą być niezrozumiałe dla kogoś, kto nie klepie w tym od lat?

To nie JavaScript 😄

A tak na powaznie:
W samym jezyku tego raczej nie ma za duzo, nie wiem np. hashcode+equals? I na pewno .equals() vs ==

Ale jesli dochodzi Spring, to robi sie tego wiecej bo problemem jest np. @Transactional + private method

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

tak jednym zdaniem to całkiem spoko suplementem jest książka "Effective Java" Josha Blocha. Stara pozycja, nie tak stara jak Dżawa, ale opracowana przez samego współtwórcę języka. Ogólnie to zbiór dos and don'ts + analizy poszczególnych przypadków/zastosowań. I koleś omawia od A do Z, tylko nie zdziw się, że zajmie Ci trochę czasu, żeby tą pozycję przerobić. IMO, warto mieć pod ręką.

Jak będziesz pisał kod sekwencyjny/jednowątkowy to w zasadzie dużych niespodzianek poza może kolekcjami z java.util nie powinieneś spotkać. Jak będzie to wielowątkowość to zaczną się schody - umiejętne korzystanie z synchronized na metodach i volatile na polach pomoże zaoszczędzić na Aspirynie.

Coś co może warto opanować to interfejsy funkcyjne i lambdy Dżawowe, bo te są mniej intuicyjne niż spotykane w innych językach. Niestety (albo stety) String w Javie to nie jest zwykła lista znaków, i to ma swoje konsekwencje.

I tak poza tym to IntelliJ, debugger, jakieś ćwiczenia do przerobienia i do dzieła!

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4712
4
trojanus__ napisał(a):

Jak będziesz pisał kod sekwencyjny/jednowątkowy to w zasadzie dużych niespodzianek poza może kolekcjami z java.util nie powinieneś spotkać. Jak będzie to wielowątkowość to zaczną się schody - umiejętne korzystanie z synchronized na metodach i volatile na polach pomoże zaoszczędzić na Aspirynie.

Umiejętne korzystanie z synchronized i volatile oznacza brak korzystania z synchronizied i volatile. Wyjątkiem jest pisanie jakiegoś frameworka / niskopoziomowej biblioteki - bardzo specyficzne i raczej nic co robi przecietny programista javy, a szczególnie początkujący. Zamiast tego warto ogarnąć np. Executory, CompletableFuture itp. Z drugiej strony - niestety co ten nieszczęsny synchronized i volatile robi warto wiedzieć (bo w kodzie się pojawia).

Coś co może warto opanować to interfejsy funkcyjne i lambdy Dżawowe, bo te są mniej intuicyjne niż spotykane w innych językach. Niestety (albo stety) String w Javie to nie jest zwykła lista znaków, i to ma swoje konsekwencje.

A gdzieś poza haskellem i pochodnymi String to lista znaków?

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0
jarekr000000 napisał(a):

A gdzieś poza haskellem i pochodnymi String to lista znaków?

a nie wiem. Bardziej mi chodziło o zachowanie, w Scali/Kotlinie funkcje na Stringach działają przyzwoicie, pomimo że są to sekwencje znaków a nie konkretnie lista połączona jak w Haskellu

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.