我刚刚开始学习 java 以进入 android 编程
我假设我使用 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?我知道浏览器需要安装虚拟机才能运行这样的东西
import javax.swing.*;
import java.awt.*;
public class Applet1 extends JApplet {
public void init() {
getContentPane().add(new JLabel("Applet!"));
}
}
但是其他基于控制台的基本程序呢?再一次,转到 android,在这种情况下,VM 究竟在哪里被调用?或者我们是否应该将安卓操作系统视为运行虚拟机的非常精细的浏览器,而我们使用 java 代码执行的任何操作都会在虚拟机内部执行?