Tag: 静态

静态类和单例模式之间的区别?

静态类和单例模式之间存在什么真正的(即实际的)区别? 两者都可以在没有实例化的情况下被调用,都只提供一个“实例”,而且它们都不是线程安全的。 还有其他的区别吗?

使用Javareflection更改私有静态最终字段

我有一个private static final字段的类,不幸的是,我需要在运行时更改。 使用reflection我得到这个错误: java.lang.IllegalAccessException: Can not set static final boolean field 有没有办法改变价值? Field hack = WarpTransform2D.class.getDeclaredField("USE_HACK"); hack.setAccessible(true); hack.set(null, true);

为什么Java不允许重写静态方法?

为什么不可能覆盖静态方法? 如果可能,请使用示例。

C中“static”是什么意思?

我已经看到了在C代码中用于不同地方的static词。 这就像在C#中的静态函数/类(其中的实现共享对象)?

为什么静态variables被视为邪恶?

我是一个Java程序员,他是企业界的新手。 最近我开发了一个使用Groovy和Java的应用程序。 所有通过我写的代码使用了相当多的静态。 我被高级技术人员要求削减所使用的静态数量。 我google了一下,我发现很多程序员都反对使用静态variables。 我发现使用更方便的静态variables。 而且我认为它们也是有效的(请纠正我,如果我错了),因为如果我不得不对一个类中的函数进行10,000次调用,我会很高兴使该方法静态,并使用一个简单的Class.methodCall()而不是使用10,000个实例的类来混淆内存,对吧? 而且,静态减less了代码其他部分之间的相互依赖关系。 他们可以作为完美的国家持有者。 除此之外,我发现静态在Smalltalk和Scala等语言中得到了广泛的应用。 那么为什么对程序员(尤其是Java领域)的静态压制呢? PS:如果我对静力学的假设是错误的,请纠正我。

Python中的静态类variables

是否有可能在Python中有静态类variables或方法? 需要什么语法来做到这一点?

“非静态方法不能从静态上下文中引用”背后的原因是什么?

非常常见的初学者错误是,当你尝试使用一个类属性“静态”而没有创build该类的一个实例。 它留下你提到的错误信息。 您可以使非静态方法静态或使该类的实例使用其属性。 为什么? 我不是要求解决scheme。 我将不胜感激,知道背后的原因。 非常核心的原因! private java.util.List<String> someMethod(){ /* Some Code */ return someList; } public static void main(String[] strArgs){ // The following statement causes the error. You know why.. java.util.List<String> someList = someMethod(); }

为什么我的ArrayList包含添加到列表中的最后一个项目的N个副本?

我将三个不同的对象添加到一个ArrayList,但列表包含我添加的最后一个对象的三个副本。 例如: for (Foo f : list) { System.out.println(f.getValue()); } 预期: 0 1 2 实际: 2 2 2 我犯了什么错误? 注意:这是针对本网站上出现的大量类似问题的规范问答。

static关键字及其在C ++中的各种用法

关键字static是C ++中的一些含义,我发现它非常容易混淆,而且我永远无法绕开它的实际工作方式。 从我所了解的情况来看,存在static存储持续时间,这意味着它在全局情况下会持续到程序的生命周期,但是当您谈到本地时,这意味着它默认为零初始化。 C ++标准对于关键字为static类数据成员说: 3.7.1静态存储时间[basic.stc.static] 3关键字static可以用来声明一个静态存储持续时间的局部variables。 4类定义中应用于类数据成员的关键字static为数据成员提供静态存储持续时间。 这与局部variables是什么意思? 这是一个函数局部variables? 因为当你声明一个局部static的函数时,它只会被初始化一次,所以它第一次进入这个函数。 它也只是谈论关于类成员的存储时间,那么它是非实例特定的,这也是一个static否定的属性? 或者是那个存储时间? 那么static和文件范围的情况呢? 是否所有的全局variables被认为默认具有静态存储持续时间? 以下(来自第3.7.1节)似乎表明: 1所有没有dynamic存储持续时间的variables,没有线程存储持续时间,并且不在本地有静态存储持续时间。 这些实体的存储应在程序期间持续(3.6.2,3.6.3) static如何与variables的链接相关联? 这整个static关键字是彻头彻尾的混乱,有人可以澄清它的英语的不同用途,也告诉我什么时候初始化static类成员?

是静态字段打开垃圾收集?

给定一个仅在程序设置中使用的假设实用程序类: class MyUtils { private static MyObject myObject = new MyObject(); /*package*/static boolean doStuff(Params… params) { // do stuff with myObject and params… } } myObject会在不再使用的时候被垃圾回收,还是会在程序的整个生命周期中继续使用?