如何在应用程序执行期间将Java类保留在内存中?

如何在应用程序执行期间将Java类保留在内存中?,java,class,object,variables,Java,Class,Object,Variables,我知道这是最基本的,但我真的不记得怎么做了 在myMainActivity中,我将从我的 数据库 我想做的是能够从其他类访问这个util类的数据 例如,我在random类中,我想从Util获取一个属性。我该怎么做?考虑到我不能调用newutil()。。。因为它会清除我在那个类中的信息。总之,如何使内存中的对象随时随地都可以访问?将要访问的对象设为静态对象。您应该阅读有关static关键字的基本Java教程,因为当您开始处理更高级的主题(如线程和内存管理)时,使用static关键字可能会导致问题。

我知道这是最基本的,但我真的不记得怎么做了

  • 在my
    MainActivity
    中,我将从我的 数据库
  • 我想做的是能够从其他类访问这个util类的数据

  • 例如,我在random类中,我想从
    Util
    获取一个属性。我该怎么做?考虑到我不能调用
    newutil()
    。。。因为它会清除我在那个类中的信息。总之,如何使内存中的对象随时随地都可以访问?

    将要访问的对象设为静态对象。您应该阅读有关static关键字的基本Java教程,因为当您开始处理更高级的主题(如线程和内存管理)时,使用static关键字可能会导致问题。(静态数组列表是最差的。)

    所以您有一些类
    Util

    public class Util {
        private static Map<String, String> data = new HashMap<>();
    
        // assume you have some logic to populate data
    
        // This method is static, so you don't need an instance of Util to access it
        public static Map<String, String> getData() {
            return data;
        }
    }
    

    当然,您可以新建一个Util实例(例如,
    Util myUtil=new Util()
    ),然后调用
    myUtil.getData()
    ——但是没有区别,如果您尝试,IDE会警告您正在这样做。

    使类保持静态,或者您可以保留对该类的引用,然后检索它。通常,您必须在某些时候使用静态方法,但通常最好尽可能多地使用实例。但是依赖注入是一种替代方法,也可以工作。如何将类转换为静态类?如果我尝试类似“publicstaticclassmyclass”的方法,它会给我一个错误。这些是在
    MainActivity
    中创建的其他随机类吗?可能是Oracle的Java教程,其中包含您要查找的信息。
    Map<String, String> theData = Util.getData(); // called against the class