Wpis z mikrobloga

@wytrzzeszcz: nie, Java nie ma preprocesora, ale jeśli chodzi ci o dependency injection, to są biblioteki które trochę obchodzą to generując kod na podstawie anotacji.
  • Odpowiedz
@wytrzzeszcz: dawno pisałem w C++, czy te nowsze edytory radzą sobie z analizą składni preprocesora? Bo kiedyś w ogóle, przez to trudniej wyłapać błędy jeszcze na etapie pisania
  • Odpowiedz
@wytrzzeszcz: jak używasz define do zdefiniowania stałej bez żadnych ifów, to zdefiniowanie w Javie stałej za pomocą public static final nie powinno robić ci różnicy. To jest język maszyny wirtualnej, więc różne optymalizację dzieją się później automatycznie.
  • Odpowiedz
@darck: w C ++ jak mam obiekt w 2 tablicach i chce się go pozbyć robie delete obiekt i ustawiam tam tablice na NULL (by wywcieku nie było czy coś) w Java pisze poprostu te 2 nulle i obiekt sam się kiedyś skasuje ?
  • Odpowiedz
@wytrzzeszcz: pytasz o podstawy podstaw, lepiej przeczytaj więcej o tej Javie :). W Javie jest Garbage Collector, który robi delete na obiektach, które nie mają zmiennej, która by na nie wskazywała. Wyciek pamięci w C++ polega na tym, że zapomniało się jakiejś zmiennej delete, a w Javie, polega na tym, że jakiś obiekt A jest dowiązany do używanego obiektu B, mimo, że nie powinien być, bo już się go nie
  • Odpowiedz
@wytrzzeszcz: może trochę nieprecyzyjnie napisałem. Chodzi o to, że w Javie jest co najmniej 1 obiekt startowy z funkcją main() i wszystkie obiekty, które kiedyś były stworzone z tego pierwszego, ale nie mają w tym pierwszym (lub stworzonych przez ten pierwszy) zmiennej, która by na nie wskazywała, są przez Garbage Collector oznaczane jako zapomniane i usówane.
  • Odpowiedz
@wytrzzeszcz: można oszacować ile każdy obiekt zajmie pamięci. Trzeba tak pisać program, aby w danym momencie żywe obiekty, czyli te mające jakieś powiązanie (grafem się je sprawdza) z klasą startową (lub innymi klasami oznaczonymi jako "static") zajmowały mniej miejsca niż dostępna pamięć.
  • Odpowiedz
@wytrzzeszcz: I lepiej nie trzymać się granicy dostępnej pamięci, bo Garbage Collector sprząta martwe obiekty z pewnym opóźnieniem, więc trzeba też wziąć zapas na to. Choć można oczywiście kazać mu je sprzątnąć, ale tego raczej się nie robi.
  • Odpowiedz