90得票31回答
Android Studio - 找不到JVM安装

我在启动Android Studio时遇到了问题。 安装完成后,当我尝试启动它时,出现以下错误: 未找到JVM安装。请安装64位的JDK。 我的当前系统规格: 操作系统:Windows 8.0 64位版 已安装JDK:JDK 1.8.0 我尝试过的方法: 我已经尝试了报错信...

17得票10回答
理解Java内存管理

Java程序员知道JVM运行垃圾收集器,而System.gc()只是向JVM建议运行垃圾收集器。并不一定使用System.gc()就会立即运行垃圾回收。如果我误解了Java的垃圾回收器,请纠正我。 除了依赖Java的垃圾收集器之外,还有其他处理内存管理的方式吗?如果您打算通过某种编程实践来回...

10得票2回答
在Java中,将str.length()的值存储在变量中再在for循环中使用,是否会提高性能?

简而言之,JVM是否会在内部优化以下代码public void test(String str) { int a = 0; for( int i = 0; i < 10; i++) { a = a + str.length(); } } ...

7得票3回答
在JVM上启用逃逸分析的经验分享

我刚刚在Solaris上运行了一个Scala应用程序,该程序有相当多的Actor(20,000个),并启用了JDK6-u18 VM(Java虚拟机)上的-XX:+DoEscapeAnalysis选项,但是结果令人失望。通常情况下,该应用程序可以使用256Mb的堆内存,但会生成大量垃圾。在其稳态...

8得票2回答
如何禁止Java虚拟机在崩溃时创建任何转储文件/将敏感数据写入磁盘

我正在编写一款Java程序,用于在内存中存储敏感数据(密码和私钥)。该程序将自由部署到任何操作系统上。我知道用户几乎可以在任何系统上手动创建内存转储,但我担心操作系统或JVM实现(包括但不限于JVM本身的某些段错误)会创建转储文件,从而危及敏感数据的隐私。有什么措施可以采取来减少这些风险吗? ...

13得票4回答
Java运行环境内存不足,尽管有6GB的空闲空间。

运行Java应用程序时,我得到了以下内存转储。 安装Java 8后(之前使用Java 7应用程序正常工作),我开始收到以下错误。 我使用16 GB RAM,在任务管理器中检查(当应用程序正在启动时)约有6 GB的RAM可用。 请问问题出在哪里? # # There is insuffi...

150得票9回答
Java语言中不可用的字节码特性

目前(Java 6),在Java字节码中能做到的事情,从Java语言本身无法实现吗? 我知道它们都是图灵完备的,因此“可以做”读作“可以更快速/更好地完成,或者以不同的方式完成”。 我正在思考额外的字节码,例如invokedynamic,这些字节码不能使用Java生成,除了那个特定的版本。

10得票5回答
大多数JVM是否为未使用的方法分配内存?

假设我们有以下的类:class DoubleOhSeven { public static void doSomethingClassy(); public static void neverDoThisClassy(); } class Dude { public void d...

17得票7回答
如何在Java Netbeans平台模块化项目中设置虚拟机选项?

我有一个Netbeans平台的模块化项目,不是普通的Java项目。我想设置VM选项来增加内存,但在“属性”对话框中,没有办法为模块化的Netbeans平台项目这么做。这已经花费了我大量的时间,但我仍然没有找到一个好的方法来设置VM参数。 有人知道如何在Netbeans 7中使用Netbean...

8得票3回答
JProfile能否连接到在Docker中运行的JVM?

我是JProfiler的新手。最近我遇到了一个问题。我的Java应用程序正在Docker中运行,这意味着JVM正在Docker中运行。但是我的JProfiler安装在主机上。我知道JProfiler必须连接到JVM。那么,有没有办法让JProfiler连接到在Docker中运行的JVM?