草庐IT

static-variables

全部标签

java - 如何在子类中访问父类(super class)的 ‘protected static’ 变量,子类位于不同的包中..?

这是同一问题的稍微详细的版本。我们不能在子类中访问(父类(superclass)的)protected变量,子类在不同的包中。我们只能访问父类(superclass)的继承变量。但是,如果我们将修饰符更改为“protectedstatic”,那么我们也可以访问父类(superclass)的变量。为什么会这样?这是我试图解释的相同代码片段。packagefirstOne;publicclassFirst{**protected**inta=7;}packagesecondOne;importfirstOne.*;publicclassSecondextendsFirst{protecte

static - Java:如何将 "restart"设为静态类?

我有一个静态类(Foo)和一个主类(Main)参见Main.java:publicclassMain{publicstaticvoidmain(String[]args){System.out.println(Foo.i);//0Foo.i++;System.out.println(Foo.i);//1//restartFoohereSystem.out.println(Foo.i);//1again...Ineed0}}参见Foo.java:publicclassFoo{publicstaticinti=0;}有什么方法可以重新启动或重置静态类吗?注意:我需要这个,因为我正在使用jU

Java Statics 原语、对象、方法和堆(内存管理和最佳实践)

好的,我已经使用Java进行了一年多的开发,并且正在努力更深入地研究该语言及其最佳实践。所以这是我所知道的:Java“按类型传递”-即基元按副本传递,对象引用按副本传递(引用指向它们在堆上的对象)。基元实例变量和引用存在于堆中的类对象中,本地基元和引用存在于栈中(在它们各自的栈帧中)。PermGen.内存空间是存储类元数据的地方(用于反射)。Heap有一个Eden空间,用于放置新对象,一个Young空间,用于保存在GC中幸存下来的对象,还有一个Tenured空间,用于放置长期存在的对象。所以这是我想了解的:JVM能够使用单个实例的静态和静态最终原语和引用位于何处?静态和静态最终对象是否

Java 8 供应商行为 : final variable might not be initialized

Java不允许在供应商内部使用final变量,因为它可能未被初始化,但在“(this)”之前。变量使它编译并运行良好。此外,如果在分配变量之前调用此类供应商,则调用此类供应商会导致NullPointerException而不是编译器错误,如果在之后调用,则会按预期运行。是否在某处描述了这种行为?我正在使用OpenJDK1.8.0_151。例子:importjava.util.function.Supplier;classExample{finalStringstr;Suppliertest1=()->str.length();//DOESNOTCOMPILESuppliertest2=

java - Atlassian JIRA 插件开发 : How to make variables available to velocity templates

公平警告:除非您有使用JIRA的经验并且可以访问其来源(企业用户),否则这个问题将很难回答。大家好我正在编写一个扩展AbstractIssueSelectAction的插件。我注意到${issue.summary}等都可以从我的速度模板中获得,但是,我还想公开其他内容。我不知道如何将其他东西添加到速度参数图中。我什至使用了一个远程调试器来尝试遍历堆栈并弄清楚发生了什么-但由于堆栈很深以及我无法正确附加所有源这一事实,我还不清楚(而且很多网络内容似乎都被混淆了)。我也在Atlassian支持论坛上发布了这个问题,我只是在这里交叉发布,以便让更多人关注这个问题。示例操作代码:publicc

Java 字节码 : types of local variables?

根据这篇文章http://slurp.doc.ic.ac.uk/pubs/observing/linking.html#assignment:DuetothedifferencesininformationbetweenJavacodeandbytecode(bytecodedoesnotcontainthetypesoflocalvariables),theverifierdoesnotneedtochecksubtypesforassignmentstolocalvariables,ortoparameters.我的问题:为什么字节码不包含局部变量的类型信息,而它确实包含参数和返回

java - static 仅通过两个大括号成功意味着什么?

这个问题在这里已经有了答案:Whatisthedifferencebetweenastaticandanon-staticinitializationcodeblock(9个回答)关闭7年前。static仅由两个大括号成功是什么意思?对不起初学者的问题。我试图寻找有关它的教程,但找不到。staticas:static{}的这种用法对我来说并不清楚。我发现它被其他人在这里使用developerWorks.我认为它可能是多行或组修饰符并尝试了下面的代码,但其他类型修饰符给出的错误与静态不同。publicclassMyClass{privatevolatileintv1=0;privatef

java - 单例和公共(public)静态变量Java

我有两个选择:单例模式classSingleton{privatestaticSingletonsingleton=null;publicstaticsynchronizedSingletongetInstance(){if(singleton==null){singleton=newSingleton();}returnsingleton;}}使用staticfinal字段privatestaticfinalSingletonsingleton=newSingleton();publicstaticSingletongetSingleton(){returnsingleton;}有什

java - getClass() 文档中的 "the erasure of the static type of the expression on which it is called"是什么意思?

"publicfinalClassgetClass()"的文档对象的方法说:TheactualresulttypeisClasswhere|X|istheerasureofthestatictypeoftheexpressiononwhichgetClassiscalled.Forexample,nocastisrequiredinthiscodefragment:我不明白这个解释,特别是关于什么|X|据说是-“删除调用getClass的表达式的静态类型”。|X|是什么形式的符号?或者,也许,还有什么地方会|X|使用类型符号? 最佳答案

java - Java中的static关键字

classA{static{System.out.println("A-SIB");}staticvoidtest(){System.out.println("A-test");}}classBextendsA{static{System.out.println("B-SIB");}}classC{publicstaticvoidmain(Stringargs[]){B.test();}}当我运行C类时,我认为A-SIB、B-SIB和A-test将被打印,但是B-SIB不在输出中。谁能解释一下为什么? 最佳答案 这是theJLS说到