1
public class MyClass {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

综上所述,如果说MyClass是类,public static void main(String[] args) 是方法,那么我想知道代码的哪一部分会被认为是对象。

如果说类有对象,对象有方法,那么在上面的代码中,对象是哪一部分?这里有创建对象吗?

4

4 回答 4

7

static方法不属于对象引用,而是属于类。static您可以在不创建类的实例的情况下执行方法。知道了这一点,这里将创建的唯一对象引用是:

  • String[] args目的
  • 每个String内部args数组
  • "Hello world" String.

请注意,args它的内容不是由您创建的,JVM 会这样做(感谢 Thilo 的评论)。

于 2013-06-10T05:48:20.247 回答
4

在上述情况下,不会创建您的类的对象。为此,您需要编写:

MyClass myclass = new MyClass();
于 2013-06-10T05:47:57.887 回答
0

那里没有创建对象。因为这是程序启动的主要方法。如果它不是一个static,否则,它需要一个instance对象来执行。

于 2013-06-10T06:09:17.787 回答
0

静态方法不需要创建对象来执行。加载类时,类上的静态成员由 JVM 自动加载。

特别是在 Java 中执行时,JVM 会找到main方法并从执行开始执行它。

然后,该main方法中的每条语句都会执行到终止点。

在 main 方法中,String args[]它是一个对象数组,当您需要通过命令行传递参数时,这很有用。

因此,finallystatic方法在类加载JVM时执行。所以我们不需要实例/对象来main执行方法

那么主要方法是什么时候加载到 JVM 上的呢?它在您初始化以创建像这样的任何对象时加载

MyClass myobj = new MyClass();

它调用默认构造函数MyClass()并加载类

于 2015-09-20T04:11:30.310 回答