草庐IT

static-compilation

全部标签

java - 为什么要使 private static final Lists/Sets/Maps 不可修改?

我刚刚阅读了一位更有经验的程序员编写的一些代码,我遇到了以下问题:publicclassConsoleFormatterextendsFormatter{privatestaticfinalMapPREFIXES;static{Mapprefixes=newHashMap();prefixes.put(Level.CONFIG,"[config]");prefixes.put(Level.FINE,"[debug]");prefixes.put(Level.FINER,"[debug]");prefixes.put(Level.FINEST,"[trace]");prefixes.pu

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 - 在 Jenkins 中使用 Eclipse Compiler 获取编译器警告/错误

我希望在我的Jenkins作业中显示eclipse编译器警告。我知道可以使用antjavac适配器来使用Eclipse编译器。这样在使用ant时会显示Eclipse编译器警告。问题是,当我在Jenkins中使用ant脚本时,他忽略了javac设置,只使用普通的编译器。有没有人尝试在jenkins中使用eclipse编译器并收到编译器警告?甚至可以将编译器警告发送到Sonar? 最佳答案 在Eclipse编译器出现问题后antjavacadapter,我用batchcompiler而不是在单独的目标中生成Eclipse警告。然后我使用

java - 使用 Java Compiler API 无需安装 JDK

大家好我正在编写一些软件,允许用户为我的软件包中的特定用途创建他们自己的Java类。显然,我的软件需要能够调用Java编译器来编译用户生成的类,以便在我的程序中使用。但是,我不想要求用户下载并安装整个JDK,以便他们可以访问javacJava编译器。我知道在Jave6中有一个新的Java编译器API,但即便如此,只有JRE而不是JDK的用户在尝试实例化Java编译器工具时将得到一个空对象。那么,要让我的程序能够编译Java类,同时要求最终用户只在他们的机器上安装JRE,最好的方法是什么?如果这不可能,我需要在用户计算机上安装的最少一组库/jar文件是什么?我想另一种可能性是使用JWS(

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

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

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说到

java - 为什么 intelliJ IDEA 依赖范围是 "provided"而不是 "compile"?

我希望IntelliJIDEA将我的库作为“编译”范围而不是“提供”范围。这是我的gradle文件的一部分:applyplugin:'java'sourceCompatibility=1.8repositories{mavenCentral()}dependencies{//Loggingcompile'ch.qos.logback:logback-classic:1.2.1'compile'com.getsentry.raven:raven-logback:7.8.2'//BigQuerycompile'com.google.api-client:google-api-client: