一个关于java的new对象的问题,以及怎么有效减少不必要的内存占用

2025-01-06 02:15:11
推荐回答(3个)
回答1:

赋值有利于减少内存占用。
静态成员变量 和 静态方法一样,在类被载入中就已经加载到内存空间里了。
类被载入的可能性
1:是java.lang 在JVM初始化时就被载入
2:类的某个子类初始化
3:存在于某个初始化的类的import中(例如使用java.sql.* 就会浪费空间,但是对于复杂的sql应用则可以提高运行速度)
等等
java本来就不是内存优化的好语言。
java在内存优化上的优势在于自动和手动 回收机制的配合。就是 我想优化就优化,不优化系统也会帮我优化。

回答2:

你说的这个办法是可以的,只要成员对象a可以被你定义的类访问,或者提供访问成员a的接口就可以
静态变量是java虚拟机在程序运行的时候装载到内存中的,

回答3:

可以考虑把对象a设置为单例的,但是同时你也要考虑单例情况下的并发处理。
Math.PI是一个常量,在类加载的准备阶段就会被分配到常量池的内存中,如果单单是使用Math.PI是不会产生实例对象的,并未对一个Math类的实例进行初始化构造。