Java里为什么不推荐使用引用调用静态方法或静态变量
IDE会有警告:Thestaticmethodxx()fromthetypeXxshouldbeaccessedinastaticway...
IDE会有警告:The static method xx() from the type Xx should be accessed in a static way
展开
3个回答
展开全部
我对IDE的意思的理解是:
其实本身不需要创建实例就能调用的方法,你却在实例里调用,它以为你为了调用这个方法而专门创建了一个实例,多做了内存开销,所以应该警告吧;
做java开发的好像很少有管这种警告的,尤其是IDE里的警告是可选关闭的,公司见到的很多都报着没有使用序列化ID的警告,也没人管,不同于c语言,c语言为了尽可能多的兼容不同平台,需要"标准"些,所以可能会使用gcc的-Wall选项,java是字节码指令由虚拟机执行,只有知道是啥命令,虚拟机就能运行,一般用的也是Oracle或Sun的Hotspot虚拟机,不需要考虑那个,其它虚拟机也遵循了同一Java虚拟机规范,也不可能执行不了,但这不代表有各种警告的代码,能在其他虚拟机比如OpenJDK,IBM的java虚拟机中一样有良好的的运行表现,因为各大虚拟机实现厂商对运行时的优化可能迥异;
其实本身不需要创建实例就能调用的方法,你却在实例里调用,它以为你为了调用这个方法而专门创建了一个实例,多做了内存开销,所以应该警告吧;
做java开发的好像很少有管这种警告的,尤其是IDE里的警告是可选关闭的,公司见到的很多都报着没有使用序列化ID的警告,也没人管,不同于c语言,c语言为了尽可能多的兼容不同平台,需要"标准"些,所以可能会使用gcc的-Wall选项,java是字节码指令由虚拟机执行,只有知道是啥命令,虚拟机就能运行,一般用的也是Oracle或Sun的Hotspot虚拟机,不需要考虑那个,其它虚拟机也遵循了同一Java虚拟机规范,也不可能执行不了,但这不代表有各种警告的代码,能在其他虚拟机比如OpenJDK,IBM的java虚拟机中一样有良好的的运行表现,因为各大虚拟机实现厂商对运行时的优化可能迥异;
展开全部
不是不推荐使用,看什么场景,警告意思是:
静态方法要通过静态的方式来访问,也就是说静态方法要被类来调用,要在静态方法中引用。
更多追问追答
追问
也就是通过类名来调用静态方法,如果我创建多个引用,那这个静态方法在内存里是只创建一次,还是多次呢?
追答
都是静的了,你说呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你方法是静态的,就是有static修饰的,那你的变量也要是static的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询