String.valueOf() 50
请问为什么类String可以调用valueOf?不是一般是对象可以调用方法吗提问有误,应该是不是只有对象才能调用方法吗?为什么这里String可以直接调用方法?...
请问为什么类String可以调用valueOf?不是一般是对象可以调用方法吗
提问有误,应该是不是只有对象才能调用方法吗?为什么这里String可以直接调用方法? 展开
提问有误,应该是不是只有对象才能调用方法吗?为什么这里String可以直接调用方法? 展开
2个回答
展开全部
可以简单的说,能正常使用的方法有两种:
第一种是题主你说的这种,通过对象调用的方法,需要实例化对象才能调用;
第二种是直接通过类名.调用的方法,为静态方法,不需要实例化对象就可以直接调用。
PS:为什么这两种方法的调用方式不一样,这涉及到Java虚拟机的内存机制,有些跑题,我大致说一下,Java虚拟机执行程序的时候,会把内存划分为三个部分(大致):堆、栈、方法区。静态方法和类的信息是放在方法区里的,而对象被实例化出来则放在堆中。类加载的时候就已经有了静态方法,通过 类名.静态方法 就可以调用,这个时候,还没有类的对象,通过类名.方法的方式是找不到普通方法的;
PSPS:通过对象也是可以调用静态方法的,但是这样做实在是多此一举,很多开发工具的编译器会直接提示你,不建议这样使用。
第一种是题主你说的这种,通过对象调用的方法,需要实例化对象才能调用;
第二种是直接通过类名.调用的方法,为静态方法,不需要实例化对象就可以直接调用。
PS:为什么这两种方法的调用方式不一样,这涉及到Java虚拟机的内存机制,有些跑题,我大致说一下,Java虚拟机执行程序的时候,会把内存划分为三个部分(大致):堆、栈、方法区。静态方法和类的信息是放在方法区里的,而对象被实例化出来则放在堆中。类加载的时候就已经有了静态方法,通过 类名.静态方法 就可以调用,这个时候,还没有类的对象,通过类名.方法的方式是找不到普通方法的;
PSPS:通过对象也是可以调用静态方法的,但是这样做实在是多此一举,很多开发工具的编译器会直接提示你,不建议这样使用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询