Androidプログラミングに入るためにJavaを学び始めたところです
。Javaを使用してコンパイルしたものはすべて、仮想マシンによって解釈される必要があるJavaバイトコードにコンパイルされると想定していました。これにjavac filename.java
はfilename.class
、JVM によって解釈されるバイトコードが含まれています (少なくともそれは私が考えたものであり、 java を使用してこのクラス ファイルを実行しますfilename.class
)。でも、こう書いてみると、
public class Arrays {
public static void main(String[] args) {
int[] a1 = { 1, 2, 3, 4, 5 };
int[] a2;
a2 = a1;
for(int i = 0; i < a2.length; i++)
a2[i]++;
for(int i = 0; i < a1.length; i++)
System.out.println(
"a1[" + i + "] = " + a1[i]);
}
}
コンソールにいくつかのメッセージを表示するだけで、C/C++ の出力と何ら変わりはありません。これは本当に C/C++ プログラムのようなものですか?それとも、Windows によってバックグラウンドで何らかの形で VM がまだ呼び出されているのでしょうか? このようなものを実行するには、ブラウザーに VM をインストールする必要があることを理解しています
import javax.swing.*;
import java.awt.*;
public class Applet1 extends JApplet {
public void init() {
getContentPane().add(new JLabel("Applet!"));
}
}
しかし、他の基本的なコンソールベースのプログラムはどうですか? 繰り返しますが、アンドロイドに移ります。その場合、VM は正確にどこで呼び出されますか? それとも、Android OS を、VM が実行されている非常に精巧なブラウザと見なす必要がありますか? Java コードを使用して実行するものはすべて、この VM 内で実行されますか?