草庐IT

static-members

全部标签

java : non-static variable cannot be referenced from a static context Error

以下代码在变量con2上生成错误,提示“无法从静态上下文错误中引用非静态变量con2。”我在Google上搜索了一个解决方案他们建议变量尚未初始化以使方法可用。我是否错误地初始化了它?我也尝试过将内容更改为公开,但这也无济于事。importjava.io.*;importjava.net.*;importjava.sql.*;importjava.sql.CallableStatement;importjava.sql.ResultSet;importjava.sql.PreparedStatement;importnet.sourceforge.jtds.jdbcx.JtdsData

java - Java 中 C 的 "static"关键字等同于什么?

我想知道java中的等效关键字是什么,它可以执行与“C中的静态关键字”相同的功能。我想在java中进行递归,执行与C中的静态关键字相同的功能...请帮忙.. 最佳答案 C对static关键字有两种完全不同的用法,C++增加了第三种用法://Use1:declareavariableorfunctiontobelocaltoagivenmodule//Atglobalscope:staticintglobal_var;staticvoidfunc();在这种情况下,全局变量global_var和函数voidfunc()只能在声明它们的

java - 静态内部类和类的静态成员共享同名?

这个问题在这里已经有了答案:WhathappenswhenaStaticVariablehasthesamenameasaStaticClassinJava?(2个答案)Differentoutputafterexecutionmainclass(1个回答)关闭9年前。静态内部类M和静态成员M[ofclassC]如何共享相同的名称?以下代码生成“White”作为输出:publicclassAmazed{publicstaticvoidmain(String[]args){System.out.println(B.M.W);}}classB{publicstaticclassM{stat

java - ProGuard 警告 : there were 7 unresolved references to program class members

ProGuard停止并出现大量警告:Warning:therewere1221unresolvedreferencestoclassesorinterfaces.Youmayneedtoaddmissinglibraryjarsorupdatetheirversions.Ifyourcodeworksfinewithoutthemissingclasses,youcansuppressthewarningswith'-dontwarn'options.(http://proguard.sourceforge.net/manual/troubleshooting.html#unresol

java - 有什么办法可以保存 `static members` 的状态吗?

就像我们使用序列化保存实例变量的方式一样,有什么方法可以保存static成员的状态吗?如果在某种情况下,必须恢复静态成员的状态才能恢复某些内容,该怎么做? 最佳答案 我想到的最简单的选择是使用singleton而不是静态字段。单例对象可以序列化和反序列化,您可以管理它的生命周期,同时保留静态字段为您提供的“全局状态”(也就是说,全局状态是一件坏事,但这是另一个话题)否则-静态状态在类加载器的整个生命周期(这通常意味着JVM的生命周期)中得到保留。因此,如果你想持久化状态,在关闭时执行它并在类加载时恢复它是有意义的。Runtime.a

java - 何时将静态嵌套类(及其中的静态成员)加载到内存中?

在这里,我尝试使用内部静态帮助器类为我的数据库连接实现一个单例类:packagecom.myapp.modellayer;publicclassDatabaseConnection{privateDatabaseConnection(){//JDBCcode...}privatestaticclassConnectionHelper{//InstantiatingtheouterclassprivatestaticfinalDatabaseConnectionINSTANCE=newDatabaseConnection();}publicstaticDatabaseConnection

Java编译器错误谜题: "inner classes cannot have static declarations" - except for simple types

在编写代码时,我遇到了一种奇怪的Java编译器行为。当编译类(下面的源代码)时,编译器在NULL类变量上发出错误(“内部类不能有静态声明”)。这符合预期!但是,零类变量不会产生错误。这个我不懂!为什么会有这种差异,它似乎允许在内部类中对简单类型进行静态声明,但不允许对对象进行静态声明。(javac-version:1.6.0_24)publicclassOuter{publicstaticfinalRunnableHELLO=newRunnable(){//NocompilererrorpublicstaticfinalintZERO=0;//Causescompilererror:"

java - 为什么 static final 在每次迭代中都比 new 慢

为什么代码片段A比代码片段B慢14倍?(在Windows764位上使用jdk1.8.0_60测试)代码片段A:importjava.awt.geom.RoundRectangle2D;publicclassTest{privatestaticfinalRoundRectangle2D.DoubleRECTANGLE=newRoundRectangle2D.Double(1,2,3,4,5,6);publicstaticvoidmain(String[]args){intresult=RECTANGLE.hashCode();longstart=System.nanoTime();for

java - 写入静态字段 - 在这种情况下 FindBugs 是错误的吗?

我有一个这样的Java类:publicclassFoo{publicstaticintcounter=0;publicvoidbar(intcounter){Foo.counter=counter;}}FindBugs警告我通过实例方法bar写入静态字段counter。但是,如果我将代码更改为:publicclassFoo{publicstaticintcounter=0;publicstaticvoidsetCounter(intcounter){Foo.counter=counter;}publicvoidbar(intcounter){setCounter(counter);}}

java - Java 中的并发性 : synchronized static methods

我想了解如何在Java中对静态方法进行锁定。假设我有以下类(class):classFoo{privatestaticintbar=0;publicstaticsynchronizedvoidinc(){bar++;}publicsynchronizedintget(){returnbar;}据我了解,当我调用f.get()时,线程会获取对象f上的锁,而当我调用Foo.inc()线程获取类Foo上的锁。我的问题是这两个调用如何相互同步?调用静态方法是否也会获取所有实例化的锁,或者反过来(这似乎更合理)?编辑:我的问题不完全是staticsynchronized如何工作,而是静态和非静态