jvm相关内容

将Java程序制作为独立的exe(无需JVM运行)

有没有办法让Java程序成为独立的exe(不带JVM运行)? 解决方案 我用过 Excelsior JET 将我的 Java 编译成 Windows 上的本机可执行文件.它工作得很好.陷阱总是有机会的——我认为 JNI 是个问题——但我很高兴. ..
发布时间:2022-01-16 12:42:40 Java开发

为什么 JSR/RET 不推荐使用 Java 字节码?

有人知道为什么 JSR/RET 字节码对在 Java 6 中被弃用了吗? 我在网上找到的唯一有意义的解释是,它们使运行时的代码分析变得越来越难执行.有人知道其他原因吗? 解决方案 JSR 和 RET 使字节码验证比其他方式更困难,因为放宽了一些正常的字节码约束(例如在JSR 的入口).好处非常小(在某些情况下可能会使用更小的方法),并且验证器在处理奇怪的 JSR/RET 模式(以及潜 ..
发布时间:2022-01-16 12:42:33 Java开发

欺骗 JVM 关于可用内核的数量(在 linux 上)

出于某种目的,需要让 JVM 考虑它运行在带有 N 核心而不是实际核心数量的机器上(例如 4 核心而不是 16). JVM 在一些基于 Mandriva/Red Hat Linux 内核的 Linux 构建下运行. 这个问题是临界案例,因为我期待这个问题的各种解决方案.这不是纯粹的 linux 管理问题,也不是纯粹的程序员问题. 那么……有什么想法吗? 解决方案 以下 J ..
发布时间:2022-01-16 12:42:23 服务器开发

链接构造函数时,JVM 的隐式内存屏障如何表现?

参考我的之前关于不完全构造对象的问题,我有一个第二个问题.正如 Jon Skeet 指出的那样,构造函数末尾有一个隐式内存屏障,可确保 final 字段对所有线程都是可见的.但是如果一个构造函数调用另一个构造函数呢?他们每个人的末尾是否有这样的内存屏障,或者仅在首先被调用的那个末尾?也就是说,当“错误"的解决方案是: 公共类 ThisEscape {public ThisEscape(Event ..

JDK 1.7 Throwable `addSuppressed()` 方法

好吧,我打通了相关问题,我阅读了JDK 1.7的源代码,但没有找到答案. 在这个问题中,我想完全忽略 fillInStackTrace. 从 JDK 1.4 开始,添加了 initCause() 方法.例如,当您使用核心反射调用方法时,您会收到 InvocationTargetException,原因是其中包含目标异常. 当我看到这个功能时,我也开始在这样的场景中使用它 尝试 ..
发布时间:2022-01-16 12:41:43 Java开发

JVM -XX:+StringCache 参数?

我最近在阅读 JRE 6 中可用的所有 JVM 参数 [Java VM选项]并看到了这个: -XX:+StringCache : 启用常用分配字符串的缓存. 现在我的印象是 Java 保留了一个实习(正确的词?)字符串池,并且在使用文字进行字符串连接之类的操作时,它不是创建新对象,而是将它们从该池中拉出.有没有人使用过这个论点,或者可以解释为什么需要它? 编辑:我尝试运行基准测试 ..
发布时间:2022-01-16 12:41:33 Java开发

DestroyJavaVM 线程总是在运行

在分析我的应用程序时,我遇到了一个奇怪的行为 - DestroyJavaVM 线程始终在运行 - 100% 的时间. 在对该主题进行了一些研究之后,网上几乎没有任何有价值的信息,我所理解的只是这个线程应该卸载JVM 退出时. 如果是这样,为什么从我启动应用程序的第一刻起,这个线程就 100% 处于 RUNNING 状态?它不会消耗宝贵的资源,因此可能会导致 OutOfMemoryErr ..
发布时间:2022-01-16 12:41:25 Java开发

在不同的jvm中运行ant任务

我们的 ant 构建是使用 Java 1.7.0 for JAVA_HOME 运行的.这样 javac 和所有其他 Java 依赖目标默认使用正确的 Java. 但是来自外部供应商的 1 个 ant 目标不支持(或者说存在错误)使用 Java 1.7.0.而且不像例如javac或者fork junit,这个target不支持参数切换jvm. 是否可以在不同的 jvm 中运行特定的 an ..
发布时间:2022-01-16 12:40:44 其他开发

ASM 中的 Java 方法参数值

我正在尝试获取 Java 程序方法参数的值.我正在使用 ASM 来检测字节码并获取这些值.但是,我遇到了一些麻烦. 这是用于检测代码的 visitCode() 方法.它正在做的是: 创建一个空数组来存储收集到的参数. 对于每个参数,将其值加载到数组中. 将此数组发送到我的代理的 OnMethodEntry 方法(将在其中使用值). . @Override公共无效访问代码() ..
发布时间:2022-01-16 12:40:36 Java开发

JVM 是否有能力检测并行化机会?

Java Hotspot 可以很好地优化顺序代码.但我猜测随着多核计算机的出现,运行时的信息是否可以用于检测在运行时并行化代码的机会,例如检测软件流水线是否可能在循环中和类似的事情. 在这个主题上做过任何有趣的工作吗?还是研究失败或一些难以解决的停顿问题? 解决方案 我认为 Java 的当前保证内存模型 使得在编译器或虚拟机级别上做很多(如果有的话)自动并行化非常困难.Java 语言 ..
发布时间:2022-01-16 12:40:11 Java开发

从 python 访问 JVM

>>>进口锅炉管回溯(最近一次通话最后): 中的文件“"第 1 行文件“C:\Anaconda\lib\site-packages\boilerpipe\__init__.py",第 10 行,在 jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path=%s" % os.pathsep. ..
发布时间:2022-01-16 12:40:01 Java开发

G1垃圾回收器的String Deduplication功能是否默认开启?

JEP 192:G1 中的字符串重复数据删除 在 Java 8 中实现更新 20 添加了新的字符串重复数据删除功能: 通过增强 G1 垃圾收集器减少 Java 堆实时数据集,以便自动连续删除重复的 String 实例. JEP 页面提到命令行选项 UseStringDeduplication (bool) 允许启用或禁用去重功能.但是 JEP 页面并没有指示默认值. ➠ 在与 J ..
发布时间:2022-01-16 12:39:53 Java开发

java中构造函数的返回类型是什么?

正如我们所知,我们不必向 Java 构造函数添加任何返回类型. 类示例{......样本(){...........}} 在 Objective C 中,如果我们创建一个构造函数,它会返回一个指向其类的指针.但我认为这不是强制性的. AClass *anObject = [[AClass alloc] init];//init是构造函数,返回类型是指向AClass的指针 同理,构造函数是否 ..
发布时间:2022-01-16 12:39:31 Java开发

在 Java 中,静态类成员是否在程序之间共享?

我想不,他们不是,因为每个进程当然都有自己的内存空间. 但是整个 JVM 到底是如何工作的呢?对于我启动的每个 Java 程序,在单独的进程中是否有单独的 JVM?在系统中运行的 Java 程序是否共享任何东西?操作系统和 JVM 实现之间有区别吗?我可以make 程序共享变量吗(即直接通过 JVM 而不是通常的 IPC 机制)?是否有更多用于特殊用途的奇异单进程 JVM? 一般来说, ..
发布时间:2022-01-16 12:39:16 Java开发

为什么switch on String会编译成两个switch

我阅读了关于编译开关的 JVM 规范并对如何编译 String 上的 switch 语句产生了兴趣.这是我检查的测试方法(JDK1.7.0_40): static int test(String i) {开关(一){案例“a":返回-100;案例“45b":返回 1;案例“c":返回 2;默认值:返回-1;}} 我希望这个方法被编译成简单的lookupswitch on hashCode的字符 ..
发布时间:2022-01-16 12:39:06 Java开发

如何创建一个 JVM 全局单例?

我的灵感来自 这个 stackoverflow 问题 如何创建一个保证对整个 JVM 进程只可用一次的 Java 类实例?然后,在该 JVM 上运行的每个应用程序都应该能够使用该单例实例. 解决方案 事实上你可以实现这样的单例.评论中向您描述的问题是一个类被多个 ClassLoader 加载的可能性.然后,这些 ClassLoader 中的每一个都可以定义一个同名的类,该类会错误地假 ..
发布时间:2022-01-16 12:38:15 Java开发