答:public 表示方法可公开访问;static 表示它属于类,调用前不必先创建实例;void 表示不返回值;main 是启动器约定的方法名;String[] 表示参数是字符串数组;args 只是参数名,可以换成其他合法名字。它们共同构成 Java 21 常规程序入口的一种写法。
答:== 是运算符。用于基本类型时按语言规则比较值;用于引用类型时比较是否指向同一对象,或是否都为 null。equals() 是方法,具体语义由类定义。Object 的默认实现也比较对象身份,而 String 等类把它重写为内容比较。
答:不是。Java 21 没有 C/C++ 那样的 sizeof 运算符,sizeof 也不在 Java 关键字列表中。Java 程序不能靠它直接计算任意对象的内存占用。
答:System 是 java.lang 包中的类;out 是它的 public static final 字段,类型为 PrintStream;println 是 PrintStream 的一组重载实例方法。整个表达式先取得标准输出流,再调用相应的打印方法,并在末尾输出行结束符。
答:Object 是 Java 类继承体系的根。除 Object 自身没有父类以外,普通类都直接或间接继承它;数组对象也属于 Object 的子类。基本类型不是类,接口的继承关系也不能简单说成“接口 extends Object”。
答:Java 有八种基本类型:byte、short、int、long、float、double、char、boolean。String、数组、包装类都属于引用类型,不在这八种之中。void 表示方法不返回值,也不算一种可存放普通数值的基本类型。
答:args[0] 是传给 Java 程序的第一个应用参数,不是类名,也不是 java 命令本身。没有应用参数时,数组长度为 0;这时访问 args[0] 会抛 ArrayIndexOutOfBoundsException。
答:可以。不同类可以各自声明合规的 main 方法,启动时由 java 命令、JAR 清单或 IDE 运行配置决定使用哪一个入口。一个项目存在多个 main,不会让 JVM 自动全部执行,也不意味着它们会同时运行。
答:数组使用 length 字段,例如 values.length;String 使用 length() 方法,例如 text.length()。数组没有 length() 方法。集合通常使用 size(),不要把这几种写法混为一谈。
答:一维数组常用 Arrays.toString,嵌套对象数组常用 Arrays.deepToString。直接把普通数组交给 println,通常不会逐个打印元素,而是得到该数组对象的默认字符串表示。需要自定义格式时,可以遍历或使用适合的格式化逻辑。