Java 正在通过对象调用静态方法。。。!

Java 正在通过对象调用静态方法。。。!,java,static,static-methods,Java,Static,Static Methods,我在某个地方读到过,对象不能调用静态方法…但根据下面的代码mm对象正在调用publicstaticvoidmain1(字符串args[]){}静态方法并显示输出..有人能解释一下原因吗 public class Mainmultiple{ public static void main(String args[]) { System.out.println("hello"); Mainmultiple mm = new Mainmultiple(

我在某个地方读到过,对象不能调用静态方法…但根据下面的代码
mm
对象正在调用
publicstaticvoidmain1(字符串args[]){}
静态方法并显示输出..有人能解释一下原因吗

public class Mainmultiple{
     public static void main(String args[])
    {
        System.out.println("hello");
        Mainmultiple mm = new Mainmultiple();
        mm.main1(args);//here object mm is calling static main1 method..??
    }
    public static void main1(String args[]){

        System.out.println("Bye");
    }
}
当我运行并执行上面的代码时,我只得到一条警告消息,要么将static方法的访问权限更改为
classname.staticMethod()或从
main1()

但是仍然需要显示输出..因此请解释这种方法的工作原理

我们可以在任何地方使用该类的类名和该类的对象访问静态方法。 因为当我们创建一个类的对象(您要调用它的静态方法)来创建对象时,首先类加载器将.class文件加载到方法区域的JVM内存中(在JVM内存中,它创建一个类对象并存储它)。所以在创建对象之前,它对我们的类是可用的。创建对象时,将在中创建与该内存关联的对象。因此,您可以使用对象轻松访问静态方法。 你有没有注意到课堂参考的o/p

For ex A is a class
class A{
.......
.......
}
A a1=new A();
s.o.p(a1);
o/p是这样的- A@12f2312
在该哈希代码中有两部分(A,12f2321),一部分表示类,另一部分表示对象。因此,我们可以使用object访问静态方法,而我可以粗略了解这是什么编程语言(很可能是java),这不是将其添加为标记的关键信息吗?@Xorifelse是的,它的java…很抱歉没有添加,谢谢你指出..你在哪里读到了这篇废话?它是另一种方式-不能在静态方法中调用非静态方法。你能详细说明类引用的O/p吗?。这是一个为什么主要方法是静态的问题。?通过阅读问题,我怀疑jvm将如何首先创建对象,然后调用main();方法,它最终将导致额外的内存分配。@shashimishra这是关于三个额外的问题,但是
main()
是静态的,这一事实消除了JVM首先创建对象的需要。要调用main(),我们不需要对象。因为这是一个静态的方法。我们可以在没有类的对象的情况下调用静态方法,但是jvm能够调用main方法,因为当jvm指示类加载器将类加载到jvm内存时,第一个jvm创建一个类类型的类对象,并使用该对象jvm调用main()a线程而不是函数。