Tag:

Java中的String 和String …有什么区别?

我应该如何在Java中声明main()方法? 喜欢这个: public static void main(String[] args) { System.out.println(“foo”); } 或者像这样: public static void main(String… args) { System.out.println(“bar”); } String[]和String…之间的区别是什么?如果有的话?

JVM检查入口方法main(String args )的返回类型是否为空而不是其他任何内容的原因和原因?

我会尽力回答这两个问题,如果我错了,请纠正我: 其中:如果使用Classname .method()或使用reflection调用静态方法,则即使更改调用方法的返回类型也无关紧要,仍将调用相同的方法。 因此JVM可能会在jvm.cpp的一个本机方法中检查它 methodHandle m(THREAD,init_klass-> find_method(vmSymbols :: object_initializer_name(),> vmSymbols :: void_method_signature() )); if(m.is_null()){—— THROW_MSG_0 ……… .. 原因:虽然从main返回一个值是没用的,因为java不对它做任何事情,但是如果我们尝试将main的返回类型更改为int,例如,JVM抛出 public static int main(String [] args){return 1; } java.lang.NoSuchMethodError:线程“main”中的主要exception 因此,Java可能要求对入口方法main()使用相同的签名来保持所有Java程序的对称性 。

Java – 可以对执行方法的对象进行垃圾回收吗?

在Java中,我做了类似下面的事情而没有考虑太多: public class Main { public void run() { // … } public static void main(String[] args) { new Main().run(); } } 然而,最近我不确定这样做是否安全。 毕竟,在创建它之后没有对Main对象的引用(好吧,有this引用,但这会计算吗?),所以看起来垃圾收集器可能会删除对象,而它在中间是一个危险执行某事。 所以main方法可能看起来像这样: public static void main(String[] args) { Main m = new Main(); m.run(); } 现在,我很确定第一个版本是有效的,我从来没有遇到任何问题,但我想知道在所有情况下是否安全(不仅在特定的JVM中,而且最好是根据关于此类案例的语言规范说明了什么)。

在Java中从该类的主要内部实例化对象

我正在查看我的OOP类文档,我发现了这个例子: class Student { private String name; public int averageGrade; public Student(String n, int avg) { name = n; averageGrade = avg; } public static void main(String[] args) { Student s = new Student(“John”, 9); } } 我发现它们正在从同一个类的主要实例化一个对象时感到困惑。 这被认为是不好的做法吗? 新创建的对象是否有主方法? 谢谢!

为什么我可以从main方法访问私有变量?

package com.valami; public class Ferrari { private int v = 0; private void alam() { System.out.println(“alam”); } public Ferrari() { System.out.println(v); } public static void main(String[] args) { Ferrari f = new Ferrari(); fv = 5; System.out.println(fv); } } 大家好! 我有一个简单的问题….为什么我可以从main方法到达私有变量? 我知道,我在收容class,但它是主要的。 我相信主要不是包含它的类的一部分…然后我不会找到私人成员,但我可以….为什么? 请帮忙… thx

java中的合法主方法签名

class NewClass{ public static void main(String a){ System.out.print(“Hello”); } } 当我尝试执行上面的代码时,它显示错误, 找不到主要方法 。 但是当我将public static void main(String a)更改为public static void main(String… a)或public static void main(String a[]) 。 然后,它工作.. !! 所以,我的问题是我们可以用多少种方法编写合法的主方法签名以及这个签名public static void main(String… a)含义是什么?