根据你的问题,我的分析如下。
首先,方法是指令,都存储在stack中,而对象都保存在heap中。
第一种情况下,当class被ClassLoader加载进入虚拟机之后,所有的方法指令都被存放在了stack中,主函数开始执行,程序要先在内存中new一个Use对象,然后再通过传递stack中非静态方法的指令码的地址调用该对象中的非静态方法。
第二种情况是,当class被ClassLoader加载进入虚拟机之后,所有的方法指令都被存放在了stack中,主函数执行,程序可以直接执行静态方法的指令。
内存占用来说,肯定是new对象的情况会占用的多。稳定性和速度不敢断言,需要看情况。但是最重要的是,我们学习的是面向对象,不是面向过程,如果功能只是写成一个方法而不是造一个类,而这个类就有解决问题的方法,那还叫面向对象吗?是吧 |