草庐IT

static-memory-allocation

全部标签

java - 为什么 `private static` 字段在 Java 8 接口(interface)中是不允许的?

当我尝试编译以下代码时publicinterfaceSomeInterface{privatestaticLoggerlogger=Logger.getLogger();publicdefaultvoidsomeMethod(){logger.info("someMethod:defaultimplementation");}}我得到一个错误IllegalmodifierfortheinterfacefieldSomeInterface.logger;onlypublic,static&finalarepermitted当我删除private修饰符时,代码会编译,但我不希望包中的其他类

java - 有什么方法可以从类外修改 Java 中 `private static final` 字段的值吗?

我知道这通常很愚蠢,但在阅读问题之前不要开枪。我保证我有充分的理由需要这样做:)可以使用反射修改java中的常规私有(private)字段,但是当尝试对final字段执行相同操作时,Java会抛出安全异常。我假设这是严格执行的,但我想无论如何我都会问,以防万一有人想出了一个黑客来做到这一点。假设我有一个带有“SomeClass”类的外部库publicclassSomeClass{privatestaticfinalSomeClassINSTANCE=newSomeClass()publicstaticSomeClassgetInstance(){returnINSTANCE;}publ

java - mvn java :exec with increased memory

我使用“mvnexec:java”来运行我的程序:mvnexec:java-Dexec.mainClass="..."-Dexec.args="..."我没有找到更改JVM的最大内存分配。我尝试了-Dexec.commandlineArgs="..."但没有用... 最佳答案 (或在CLI中给出的-Dexec.args)用于指定提供给程序的参数,而不是JVM。由于exec:java在与Maven相同的VM中执行Java程序,只需更改MavenJVM内存设置(MAVEN_OPTS)以获得更多内存你的exec:java命令。

java - In Java- "Static Members of the default package cannot be imported"- 有人能解释一下这个说法吗?

在Java中-“无法导入默认包的静态成员”-有人可以解释这一说法吗?如果有例子就更好了。我不确定它是否有一个非常简单的答案,但后来我试图理解但无法弄清楚。 最佳答案 这意味着如果一个类在默认包中定义(意味着它没有任何包定义),那么您不能在另一个类中导入它的静态方法。所以下面的代码是行不通的://Example1.javapublicclassExample1{publicstaticvoidexample1(){System.out.println("Example1");}}//Example2.javaimportstaticE

java - 为什么我们不能覆盖 static 和 final 方法?

这个问题在这里已经有了答案:Whydoesn'tJavaallowoverridingofstaticmethods?(22个答案)关闭9年前。我试图理解为什么我们不能覆盖静态和final方法。我不明白它背后的目的。

android - 警告 : Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)

Android工作室:DonotplaceAndroidcontextclassesinstaticfields;thisisamemoryleak(andalsobreaksInstantRun)所以2个问题:#1如果没有上下文的静态变量,如何从静态方法调用startService?#2如何从静态方法(相同)发送localBroadcast?例子:publicstaticvoidlog(intiLogLevel,StringsRequest,StringsData){if(iLogLevel>0){Intentintent=newIntent(mContext,LogService.

android - 警告 : Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)

Android工作室:DonotplaceAndroidcontextclassesinstaticfields;thisisamemoryleak(andalsobreaksInstantRun)所以2个问题:#1如果没有上下文的静态变量,如何从静态方法调用startService?#2如何从静态方法(相同)发送localBroadcast?例子:publicstaticvoidlog(intiLogLevel,StringsRequest,StringsData){if(iLogLevel>0){Intentintent=newIntent(mContext,LogService.

java - “共享对象内存”与 'Heap Memory' - Java

Java中的“共享对象内存”和“堆内存”有什么区别。“共享对象内存”是否是“堆内存”的超集?这个问题的来源是jmap的文档。它提供不同的选项来打印“共享对象内存”和“堆内存”。 最佳答案 Java内存(直到Java8)由3部分组成:堆内存。非堆内存(PermGen)。其他内存(JVM自己的结构)。所有类实例的内存都是从堆中分配的。非堆内存主要由类加载器用于存储与类相关的数据。关于共享对象的一些细节在这里:whatissharedobjectsfile?. 关于java-“共享对象内存”与

java - "Warning: Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)"

类似的问题是askedhere,here和here但上下文与此完全不同,而且codethatgavefromthiserror由Android和AndroidStudio的制造商编写。这是代码:publicclassMySingleton{privatestaticMySingletonmInstance;privateRequestQueuemRequestQueue;privateImageLoadermImageLoader;privatestaticContextmCtx;privateMySingleton(Contextcontext){mCtx=context;mRequ

java - case 表达式必须是 static final int 的常量表达式?

我有一个finalclassRing定义为:finalclassRing{publicstaticfinalintOUT=3;publicstaticfinalintMID=2;publicstaticfinalintIN=1;}我还有一个publicclassMorrisBoard,代码如下:publicclassMorrisBoard{publicstaticfinalRingRING=newRing();privatebooleancheckMillBy(intring,intx,inty){switch(ring){caseMorrisBoard.RING.OUT://...c