タグ付けされた質問 「jvm」

Java仮想マシン(JVM)を使用すると、一連のコンピューターソフトウェアプログラムとデータ構造で、仮想マシンモデルを使用して他のコンピュータープログラムとスクリプトを実行できます。このタグは、JVMが提供するツールや、特定のシナリオでどのように機能するかについての質問に使用します。

3
出力-1はループでスラッシュになります
驚いたことに、次のコード出力: / -1 コード: public class LoopOutPut { public static void main(String[] args) { LoopOutPut loopOutPut = new LoopOutPut(); for (int i = 0; i < 30000; i++) { loopOutPut.test(); } } public void test() { int i = 8; while ((i -= 3) > 0) ; String value = …
54 java  string  while-loop  jvm  jit 

3
JVMのコンパイラは「ワイド」gotoを使用しますか?
gotoJava言語では予約済みのキーワードですが、実際には使用されていません。そして、あなたはおそらくそれgotoがJava仮想マシン(JVM)オペコードであることも知っています。私は、Java、ScalaのとKotlinのすべての高度な制御フロー構造は、JVMレベルで、いくつかの組み合わせを使用して実装されて数えるgotoとifeq、ifle、ifltなど、 JVM仕様https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.goto_wを見ると、goto_wオペコードもあることがわかります。一方、gotoオフセット2バイトの分岐を取り、goto_wオフセット4バイトの分岐を取ります。仕様には、 がgoto_w命令はオフセット4バイトの分岐を取り、他の要因は、65535バイト(§4.11)のメソッドのサイズを制限します。この制限は、Java仮想マシンの将来のリリースで引き上げられる可能性があります。 goto_w他のいくつかの*_wオペコードのように、将来に備えているように思えます。しかし、私goto_wはgoto、必要に応じて調整を行って、上位2バイトをゼロにし、下位2バイトをと同じように使用して、必要に応じて調整することもできます。 たとえば、次のJava Switch-Case(またはScala Match-Case)があるとします。 12: lookupswitch { 112785: 48 // case "red" 3027034: 76 // case "green" 98619139: 62 // case "blue" default: 87 } 48: aload_2 49: ldc #17 // String red 51: invokevirtual #18 // Method java/lang/String.equals:(Ljava/lang/Object;)Z 54: ifeq 87 57: iconst_0 58: istore_3 59: …
47 java  jvm  goto 

4
<の違いは何ですか?Baseを拡張し、TがBaseを拡張しますか?
この例では: import java.util.*; public class Example { static void doesntCompile(Map&lt;Integer, List&lt;? extends Number&gt;&gt; map) {} static &lt;T extends Number&gt; void compiles(Map&lt;Integer, List&lt;T&gt;&gt; map) {} static void function(List&lt;? extends Number&gt; outer) { doesntCompile(new HashMap&lt;Integer, List&lt;Integer&gt;&gt;()); compiles(new HashMap&lt;Integer, List&lt;Integer&gt;&gt;()); } } doesntCompile() でコンパイルできません: Example.java:9: error: incompatible types: HashMap&lt;Integer,List&lt;Integer&gt;&gt; cannot be converted to …

3
java.security.egdオプションの目的は何ですか?
私が取り組んでいるプロジェクトでは、次のようなコマンドを使用してアプリケーションが起動されます。 java -Djava.security.egd=file:/dev/urandom -jar app.jar 私はこれまでjava.security.egdオプションを見たことがない。少し検索すると、Javaアプリケーションでの乱数生成の構成に使用されているようです。 正しいですか?いつ適用されることになっていますか?
22 java  jvm 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.