Java to niezależny od platformy, obiektowy język programowania wysokiego poziomu, pierwotnie opracowany przez Sun Microsystems. Java jest obecnie własnością firmy Oracle, która zakupiła Sun w 2010 roku.
Załóżmy, że jestem ograniczony do używania C ++ przez środowisko w projekcie. Czy dobrze jest zapobiegać korzystaniu z niektórych funkcji językowych, które ma C ++, ale Java nie ma (np .: wielokrotne dziedziczenie, przeciążenie operatora)? Myślę, że powodem są: Ponieważ Java jest nowsza niż C ++, jeśli Java nie udostępnia …
Baza kodów, nad którą pracuję, często używa zmiennych instancji do udostępniania danych między różnymi trywialnymi metodami. Pierwotny programista jest przekonany, że przestrzega najlepszych praktyk zawartych w książce Clean Code autorstwa Uncle Bob / Robert Martin: „Pierwszą zasadą funkcji jest to, że powinny być małe”. oraz „Idealna liczba argumentów dla funkcji …
Java pozwala oznaczać zmienne (pola / locals / parametry) jako final, aby zapobiec ich ponownemu przypisaniu. Uważam, że jest to bardzo przydatne w przypadku pól, ponieważ pomaga mi szybko sprawdzić, czy niektóre atrybuty - lub cała klasa - mają być niezmienne. Z drugiej strony uważam, że jest o wiele mniej …
W Javie 8 interfejsy mogą zawierać zaimplementowane metody, metody statyczne i tak zwane metody „domyślne” (których klasy implementujące nie muszą zastępować). W mojej (prawdopodobnie naiwnej) opinii nie było potrzeby naruszania takich interfejsów. Interfejsy zawsze były umową, którą musisz wypełnić, a jest to bardzo prosta i czysta koncepcja. Teraz jest to …
Moim szczególnym przypadkiem jest to, że użytkownik może przekazać ciąg znaków do aplikacji, aplikacja analizuje go i przypisuje do obiektów strukturalnych. Czasami użytkownik może wpisać coś nieprawidłowego. Na przykład ich wkład może opisywać osobę, ale może powiedzieć, że jej wiek to „jabłko”. Prawidłowe zachowanie w takim przypadku polega na wycofaniu …
Jak rozumiem, w Javie pamięć stosu zawiera prymitywy i wywołania metod, a pamięć sterty służy do przechowywania obiektów. Załóżmy, że mam klasę class A { int a ; String b; //getters and setters } Gdzie będzie przechowywany prymityw aw klasie A? Dlaczego pamięć sterty w ogóle istnieje? Dlaczego nie możemy …
Większość aplikacji Java nie wygląda tak samo jak aplikacje C / C ++. Swing mógł zostać zaprojektowany specjalnie, aby mieć wyjątkowy wygląd, ale na podstawie tego, co przeczytałem, SWT na przykład próbował „wyglądać na rodzimego” i nie do końca się udaje. Moje pytanie brzmi: Dlaczego twórcom języka Java trudno jest …
C ma wskaźniki, a Java ma tak zwane referencje. Mają pewne wspólne cechy w tym sensie, że wszystkie na coś wskazują. Wiem, że wskaźniki w C przechowują adresy, na które wskazują. Czy referencje przechowują również adres? Czym się różnią, tyle że wskaźnik jest bardziej elastyczny i podatny na błędy?
Enkapsulacja każe mi uczynić wszystkie lub prawie wszystkie pola prywatnymi i ujawnić je autorom / ustawiającym. Ale teraz pojawiają się biblioteki takie jak Lombok, które pozwalają nam ujawnić wszystkie prywatne pola za pomocą jednej krótkiej adnotacji @Data. Będzie tworzyć gettery, settery i konstruktory ustawień dla wszystkich prywatnych pól. Czy ktoś …
Nie znoszę odwoływać się do płatnych treści, ale ten film pokazuje dokładnie to, o czym mówię. Dokładnie 12 minut w Robert Martin patrzy na to: I mówi „Jedną z moich ulubionych rzeczy jest pozbycie się bezużytecznych aparatów ortodontycznych”, gdy zamienia to w to: Dawno temu, w odległej edukacji, nauczono mnie, …
Z tego, co przeczytałem: Powodem jest to, że nie jest łatwo ustalić, która metoda zostanie faktycznie wywołana, ponieważ mamy dziedziczenie. Dlaczego jednak Java nie ma przynajmniej optymalizacji rekurencji dla metod statycznych i nie wymusza właściwego sposobu wywoływania metod statycznych za pomocą kompilatora? Dlaczego Java nie ma żadnego wsparcia dla rekursji …
Dlaczego mistrz C Dennis Ritchie wprowadził wskaźniki w C? I dlaczego inne języki programowania, takie jak VB.NET lub Java lub C #, je wyeliminowały? Znalazłem kilka punktów w Google i chcę też wysłuchać twoich komentarzy. Dlaczego eliminują koncepcje wskaźników we współczesnych językach? Ludzie mówią, że C jest podstawowym językiem, a …
Rozważamy wprowadzenie jednego standardowego formatu kodu w naszym projekcie (format automatyczny z działaniami zapisu w Eclipse). Powodem jest to, że obecnie istnieje duża różnica w formatach kodu używanych przez kilku (> 10) programistów, co utrudnia jednemu programistowi pracę nad kodem innego programisty. Ten sam plik Java czasami używa 3 różnych …
W Javie, co jest bardziej zalecane i dlaczego? Oba typy będą zgłaszać wyjątki, więc ich obsługa jest taka sama. assertjest nieco krótszy, ale nie jestem pewien, ile to ma znaczenie. public void doStuff(Object obj) { assert obj != null; ... } vs public void doStuff(Object obj) { if (obj == …
Mam trochę trudności z projektowaniem zajęć w sposób oo. Czytałem, że obiekty ujawniają swoje zachowanie, a nie dane; dlatego zamiast używać getter / setters do modyfikowania danych, metodami danej klasy powinny być „czasowniki” lub akcje działające na obiekcie. Na przykład, w „Konto” obiektu, musielibyśmy metody Withdraw()i Deposit()zamiast setAmount()itd. Patrz: Dlaczego …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.