Kolejny z serii artykuł o Class Loaderach. W dwóch poprzednich poznaliśmy podstawowe Class Loadery wbudowane w JVM oraz w jaki sposób możemy stworzyć własny Class Loader. Dziś na tapetę weźmiemy to co dzieje się pod spodem Class Loadera. Zapraszamy!
jvm
Własny Class Loader
W poprzednim wpisie pozyskaliśmy informację na temat wbudowanych w JVM Class Loader’ów. Dowiedzieliśmy się także, że część z nich napisana jest w Javie. Informacja ta sprawia, iż sami możemy napisać własny Class Loader. Tworzenie własnych Class Loader’ów jest tematem dzisiejszego wpisu, zapraszamy!
Domyślne Class Loadery w Javie
ClassLoader’y są mechanizmem odpowiedzialnym za ładowanie klas. Pełnią one bardzo istotną rolę w trakcie działania wirtualnej maszyny Javy. ClassLoader’y są to klasy napisane w Javie, no dobra to kto załadował pierwszą klasę? Zapraszam do wpisu, aby się tego dowiedzieć!
Stos operandów i tablica zmiennych lokalnych
Aby zrealizować obietnicę “Write Once Run Everywhere” autorzy Javy musieli rozwiązać kilka problemów. Jednym z nich była zmienna liczba rejestrów procesora. Rozwiązaniem tego problemu było zastosowanie stosu jako struktury danych do wykonywania operacji na operandach. Aby przekonać się jak to działa “pod spodem” zapraszam do wpisu!
#1 Java Performance – Stackless Exceptions
Dziś krótszy wpis jednakże pierwszy z serii “Java Performance“, w której będę opisywał rozwiązania związane z wydajnością JVM’a oraz Javy. Pierwszy wpis dotyczy optymalizacji stosu wywołań (ang. stack trace), który jest wywoływany w momencie wystąpienia wyjątku.
String poprzez new? – String Literal Pool
String, chyba najpopularniejszy obiektowy typ danych wykorzystywany w Javie. Kluczowe słowo to obiektowy. Jak dobrze wiemy, obiekty tworzymy poprzez słówko new, natomiast jak typowo tworzymy obiekt typu String, to nie używamy tego słowa kluczowego.
Java – ByteCode
Schodzimy nisko, ale czy to coś złego? Według IBM developerWorks: „Znajomość kodu bajtowego Javy pomaga programiście tak, jak znajomość asemblera pomaga programistom języków C i C++” i ja z tym stwierdzeniem się zgadzam. W tym wpisie postaram się przybliżyć wam kod bajtowych.