Pytania oznaczone «jvm»

128
Pobieranie wersji Java w czasie wykonywania

Muszę obejść błąd Javy w JDK 1.5, który został naprawiony w wersji 1.6. Używam następującego warunku: if (System.getProperty("java.version").startsWith("1.5.")) { ... } else { ... } Czy to zadziała w przypadku innych maszyn JVM? Czy jest lepszy sposób, aby to

118
Różnice między „java -cp” a „java -jar”?

Jaka jest różnica między uruchamianiem aplikacji Java za pomocą java -cp CLASSPATHi java -jar JAR_FILE_PATH? Czy jeden z nich jest preferowany do uruchamiania aplikacji Java? Mam na myśli, który z tych sposobów jest droższy dla JVM (w zależności od wykorzystania zasobów maszynowych)? Który z nich...

113
Dlaczego 4 miliardy iteracji pętli Java zajmuje tylko 2 ms?

Używam następującego kodu Java na laptopie z procesorem Intel Core i7 2,7 GHz. Zamierzałem pozwolić mu zmierzyć, ile czasu zajmie zakończenie pętli z 2 ^ 32 iteracjami, które, jak spodziewałem się, trwały około 1,48 sekundy (4 / 2,7 = 1,48). Ale tak naprawdę zajmuje to tylko 2 milisekundy zamiast...

111
Dlaczego ta metoda wypisuje 4?

Zastanawiałem się, co się stanie, gdy spróbujesz złapać StackOverflowError i wymyśliłem następującą metodę: class RandomNumberGenerator { static int cnt = 0; public static void main(String[] args) { try { main(args); } catch (StackOverflowError ignore) { System.out.println(cnt++); }...

107
Dlaczego JVM nie buforuje skompilowanego kodu JIT?

Implementacja kanonicznej maszyny JVM firmy Sun stosuje dość wyrafinowaną optymalizację kodu bajtowego, aby uzyskać prawie natywne prędkości wykonywania po kilkukrotnym uruchomieniu kodu. Pytanie brzmi, dlaczego ten skompilowany kod nie jest zapisywany w pamięci podręcznej na dysku w celu użycia...

105
CATALINA_OPTS vs JAVA_OPTS - Jaka jest różnica?

Próbowałem znaleźć różnicę między zmiennymi Apache Tomcat - CATALINA_OPTSa także JAVA_OPTSw SO i byłem zaskoczony, widząc, że nie ma tu jeszcze żadnego pytania / odpowiedzi. Pomyślałem więc o udostępnieniu go tutaj (z odpowiedzią) po odkryciu różnicy. Sprawdź odpowiedź / różnicę poniżej. UWAGA: w...

104
Gdzie znajduje się pula stałych String Java - sterta czy stos?

Znam koncepcję puli stałych i puli stałych String używanej przez maszyny JVM do obsługi literałów String. Ale nie wiem, jaki typ pamięci jest używany przez maszynę JVM do przechowywania literałów stałych typu String. Stos czy sterta? Ponieważ jest to literał, który nie jest powiązany z żadną...

99
Czy JVM zapobiega optymalizacji wywołań końcowych?

Widziałem ten cytat dotyczący pytania: Jaki jest dobry język funkcjonalny, na którym można zbudować usługę internetową? W szczególności Scala nie obsługuje eliminacji wywołań ogonowych, z wyjątkiem funkcji samorekursywnych, co ogranicza rodzaje kompozycji, które możesz wykonać (jest to...

97
Jak przekazać argumenty JVM do programu VisualVM?

Używam VisualVM z JDK 1.6.0_26 do profilowania aplikacji internetowej Java działającej pod Tomcat, ale VisualVM często mówi mi, że nie ma wystarczającej ilości pamięci, aby zrobić migawkę i aby użyć przełącznika -Xmx, aby zapewnić więcej pamięci dla Netbeans . Problem polega na tym, że używam...

97
Drukuj wszystkie flagi JVM

Znalazłem interesującą flagę JVM: java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version Drukuje setki różnych opcji, o których nigdy wcześniej nie słyszałem. Drukuje również wartości domyślne, które pomagają lepiej zdiagnozować zachowanie maszyny JVM. Kolejną interesującą flagą...