我想问一个问题,什么时候在Java中使用静态变量/方法或实例变量/方法更有利?
我知道这取决于特定的情况(比如将util类编程为静态方法),但是我们能声明一些像通用策略一样的东西吗?
新手级别:
使用实例变量时:每个变量对于不同的对象有不同的值。例如。学生姓名、卷号等。
使用静态变量时:变量的值与对象无关(对于每个对象不是唯一的)。例如。学生人数。
问题内容: 有一些关于如何为Swift 编写代码以及如何在Swift中编写代码的文章。但尚不清楚何时使用和而不是和。有人可以解释吗? 问题答案: 当您在类(或结构)中定义静态var / let时,该信息将在所有实例(或值)之间共享。 分享信息 如您在这里看到的,我创建了2个单独的实例,但是它们确实共享相同的静态变量。 辛格尔顿 通常使用静态常数来采用Singleton模式。在这种情况下,我们希望分
问题内容: 在什么情况下,您将使用字段变量而不是局部变量?我发现很难决定何时在类中的2个或更多方法中使用变量。我倾向于使用局部变量,并将它们传递给另一种方法。 谢谢, 莎拉 问题答案: 用面向对象的术语来说,变量作为对象的属性有意义吗?如果是这样,则应将其设为字段变量。如果没有,它可以任意选择。 记住单一责任原则-设计良好的班级应该只承担1个责任,因此只有1个改变的理由。
问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制
问题内容: 什么时候应该使用ThreadLocal变量? 如何使用? 问题答案: 一种可能的(并且是常见的)用法是,当你有一些不是线程安全的对象,但又希望避免同步对该对象的访问时(我正在看着你,SimpleDateFormat)。而是给每个线程自己的对象实例。 例如:
问题内容: 给定以下程序: 您是否希望在run方法中的while循环仍在执行且局部变量test仍在范围内时调用finalize? 更重要的是,此行为在任何地方都有定义吗?Sun有什么声明它是实现定义的吗? 这与以前人们在主要关注内存泄漏的SO上提出此问题的方式相反。在这里,我们让GC积极地对变量感兴趣的变量进行GC处理。您可能会因为测试仍在“范围内”而不会被GC,所以您可能会期望这样做。 作为记录
问题内容: 我发现了一些参考(例如),它们建议尽可能多地使用它,我想知道这有多重要。这主要是在方法参数和局部变量的上下文中,而不是最终方法或类。对于常量,这很明显。 一方面,编译器可以进行一些优化,使程序员的意图更加清晰。另一方面,它增加了冗长性,并且优化可能微不足道。 我需要努力记住的东西吗? 问题答案: 最终字段-将字段标记为最终字段会强制它们在构造结束时进行设置,从而使该字段引用不变。这样可