首页 文章
  • 12 votes
     answers
     views

    Java类型擦除擦除我的泛型类型?

    我认为java擦除会在编译时擦除泛型类型,但是当我自己测试它时,我意识到在Bytecode中有一些关于泛型类型的信息 . 这是我的测试: 我写了2节课: import java.util.*; public class Test { List integerList; } 和 import java.util.*; public class Test { List<Inte...
  • 112 votes
     answers
     views

    为什么这个方法打印4?

    我想知道当你试图捕获StackOverflowError时会发生什么,并提出以下方法: class RandomNumberGenerator { static int cnt = 0; public static void main(String[] args) { try { main(args); } catch (...
  • 5 votes
     answers
     views

    finally块中的堆栈溢出错误处理

    我有一个java程序,运行无限次 . 程序代码: void asd() { try { //inside try block System.out.println("Inside try !!!"); asd(); } finally { //inside finally ...
  • 0 votes
     answers
     views

    我想创建与Java相同的JVM语言,但有一些特定的指令[暂停]

    我的应用程序使用Metamodel,我创建了Class,描述类和对象,大量使用多态(类似于JPA元模型) . 对于在Java中操作这个对象我需要编写很多代码 . 而不是我想创建一个特定的语言,我可以做object.subobjects [] . foreach(o - > )而不是写大量的读取字段检查类型 . 通过翻译大型Java代码上的一些特定指令,预编译也可以完成这项工作 . 谢谢你的...
  • 232 votes
     answers
     views

    无法为对象堆保留足够的空间

    当我运行时,每次尝试运行程序时,我都会反复出现以下异常 . VM初始化期间发生错误无法为对象堆保留足够的空间无法创建Java虚拟机 . 我试图增加我的虚拟内存(页面大小)和RAM大小,但无济于事 . 任何人都可以告诉我如何消除此错误?
  • 765 votes
     answers
     views

    启动JVM时,Xms和Xmx参数是什么? [重复]

    这个问题在这里已有答案: How is the default Java heap size determined? 7个答案 请解释在JVM中使用 Xms 和 Xmx 参数 . 它们的默认值是什么?
  • 44 votes
     answers
     views

    为什么(Sun)JVM具有固定的内存使用上限(-Xmx)?

    在问题Java: Why does MaxPermSize exist?的精神中,我想问一下为什么Sun JVM对其内存分配池的大小使用固定的上限 . 默认值是物理RAM的1/4(上限和下限);因此,如果你有一个需要内存的应用程序,你必须手动更改限制(参数-Xmx),否则你的应用程序将表现不佳,甚至可能因OutOfMemoryError崩溃 . 为什么这个固定限制甚至存在?为什么JVM不会根据需要...
  • 14 votes
     answers
     views

    有没有办法强制JVM使用swap,无论内存需求有多大?

    这是我的情况:我手头有一项需要大量记忆的任务 . 我没有足够的内存,无论我尝试了什么(Jrockit使用/ 3gb交换机等),我都不能给JVM足够的ram并且操作因异常而终止,告诉我需要更多的堆空间 . 有什么方法可以强制JVM使用操作系统的交换机制,以便它不会耗尽内存?这是Windows xp 32位 这需要很长时间,但我不在乎,我只需要完成这项操作 . 我用完了选项,而且我无法控制任何变量 ....
  • 194 votes
     answers
     views

    JVM选项-Xss - 它到底做了什么?

    它说here -Xss用于"set thread stack size",这究竟是什么意思?谁能帮我理解这个?
  • 28 votes
     answers
     views

    监视JVM的非堆内存使用情况

    由于堆或permgen大小配置问题,我们通常处理OutOfMemoryError问题 . 但是所有JVM内存都不是permgen或堆 . 据我所知,它也可能与线程/堆栈,本机JVM代码有关...... 但是使用pmap我可以看到进程分配了9.3G,这是3.3G的堆外内存使用情况 . 我想知道监视和调整这些额外的堆外内存消耗的可能性有多大 . 我没有使用直接的堆外内存访问(MaxDirectMemo...
  • 5 votes
     answers
     views

    JVM进程大小和内存堆大小之间的巨大差异

    我在Windows 8.1 64bit上使用4GB RAM开发java swing应用程序 JDK version 8u20 64bit. 问题是当我使用带有Monitor选项的 Netbeans profiler 启动应用程序时 . 加载第一个Jframe时,应用程序内存堆大约为 18mb ,JVM进程大小大约为 50mb (image1) . 然后,当我启动包含带有webView的JFxPa...
  • 2 votes
     answers
     views

    clojure和robovm用于二进制可执行文件?

    我有兴趣使用robovm将clojure代码编译为本机应用程序,类似于scala https://github.com/roboscala/roboscala-samples 我需要运行小脚本,创建一个原生二进制文件可以帮助我避免一个耗费大量资源和启动缓慢的大型jvm,基本上我不需要漂亮的oracle jvm性能,但我希望使用干净简单的语言作为Clojure的 可能在robovm中运行clojur...
  • 0 votes
     answers
     views

    连续完整GC(人机工程学)后,堆的大小没有变化

    我的程序中有很多线程,其中一个不断询问内存而不释放它 . 正如gc log show所示,我发现了连续的Full GC(人机工程学),但程序没有获得更多内存,所有线程都停止了,除了JVM垃圾收集线程 . 我阅读了官方文档,GC Ergonomics尝试增加或缩小堆以满足特殊目标,例如minium暂停时间和/或吞吐量 . 但是,在 Full GC (Ergonomics) 之后,作为gc log显示...
  • 2 votes
     answers
     views

    JVM JIT是否生成系统调用指令?

    我想知道Java代码如何进行系统调用,JIT编译器是直接生成系统调用指令,还是只调用libc函数(或其他基本库函数)?
  • 374 votes
     answers
     views

    Java JIT在运行JDK代码时是否作弊?

    我正在对一些代码进行基准测试,即使使用完全相同的算法,也无法像_191544那样快速运行 . 所以我将java.math.BigInteger source复制到我自己的包中并尝试了这个: //import java.math.BigInteger; public class MultiplyTest { public static void main(String[] args) { ...
  • 175 votes
     answers
     views

    Java编译器和JVM用哪种语言编写?

    Java编译器( javac ),虚拟机(JVM)和 java 起始函是用哪种语言编写的?
  • 87 votes
     answers
     views

    创建JVM编程语言

    我在C中创建了一个编译器(使用lex和bison),用于支持循环,函数内部函数声明,递归调用等的动态类型编程语言 . 我还创建了一个运行编译器创建的中间代码的虚拟机 . 我现在正在考虑而不是编译到我自己的中间代码,将其编译为java字节代码 . 我看到有关创建JVM语言的问题已经asked但是我找不到答案非常有用 . 所以这是我的问题: 我想要为JVM创建一种语言,必须阅读JVM specif...
  • 139 votes
     answers
     views

    字节码功能在Java语言中不可用

    目前(Java 6)您可以在Java字节码中使用Java语言无法做到的事情吗? 我知道两者都是图灵完整的,所以读“可以做”为“可以做得更快/更好,或者只是以不同的方式” . 我正在考虑像 invokedynamic 这样的额外字节码,这些字节码不能使用Java生成,除了特定的字节码是针对未来的版本 .
  • 6 votes
     answers
     views

    创建一个简单的领域特定语言

    我很想知道如何创建特定于域的语言 . 现在域是非常基本的,只是有一些变量并运行一些循环,if语句 . 编辑:语言将以非英语为基础,语法非常简单 . 我正在考虑将Java虚拟机作为目标,即编译为Java字节代码 . 目前我知道如何使用ANTLR编写一些简单的语法 . 我知道ANTLR会创建一个词法分析器和解析器但是我该如何从这里前进? 关于语义分析:它是必须手动编写还是有一些工具来创建它? ...
  • 201 votes
     answers
     views

    Eclipse错误:'Failed to create the Java Virtual Machine'

    我在Windows 7上启动Eclipse Helios时收到此错误消息: 无法创建Java虚拟机 我的eclipse.ini看起来如下: -startup plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar -vm P:\Programs\jdk1.6\bin --launcher.library plugins/org.ecl...
  • -3 votes
     answers
     views

    Java兼容的JVM语言[关闭]

    是否有基于JVM的语言与Java完全兼容? 为什么这样的语言会有用: 现有的项目包含许多用Java编写的代码行,团队希望以最小的努力切换到新的语言 . 无需翻译 . 团队正在逐渐开始使用新语言的新功能 . 一些程序员用旧的Java风格编写 . 其他人完全使用该语言 .
  • 152 votes
     answers
     views

    可以编译Java 8代码以在Java 7 JVM上运行吗?

    Java 8引入了重要的新语言功能,例如lambda表达式 . 语言中的这些更改是否伴随着编译的字节码中的这些重大更改,这些更改会阻止它在不使用某些反向转换器的情况下在Java 7虚拟机上运行?
  • 9 votes
     answers
     views

    JVM / JAVA中的预取指令

    是否有任何Java语言或JVM中的软件预取指令,如GCC中提供的__builtin_prefetch
  • 2 votes
     answers
     views

    是jvm atomic中的所有指令吗?

    我记得我之前在某处读过,但我现在找不到官方文件 . jvm中的所有指令都是原子的吗? 喜欢: iinc iload aload 所有原子?
  • 1 votes
     answers
     views

    创建JVM语言

    因此,对于在学校的作业,我必须尝试开发在JVM上运行的 very basic (无需使其高级)语言 . 我已经用ANTLR创建了一个语法,并用它生成了一个解析器和词法分析器 . 现在,对于"compile to JVM bytecode"部分,我有点迷茫 . 我看着ASM和Jasmin,我有可能!谢谢! P.S:我应该使用ANTLR访客还是听众?
  • 1436 votes
     answers
     views

    如何修复java.lang.UnsupportedClassVersionError:不支持的major.minor版本

    我正在尝试使用Notepad++作为我的一体化工具编辑,运行,编译等 . 我安装了JRE,并且我已将路径变量设置为... / bin目录 . 当我在记事本中运行“Hello world”时,收到以下消息: java.lang.UnsupportedClassVersionError: test_hello_world : Unsupported major.minor version 51.0 ...
  • 327 votes
     answers
     views

    如何处理“java.lang.OutOfMemoryError:Java堆空间”错误?

    我在 Java 5 上写了一个客户端 Swing 应用程序(图形字体设计器) . 最近,我遇到了 java.lang.OutOfMemoryError: Java heap space 错误,因为我对内存使用情况并不保守 . 用户可以打开无限数量的文件,程序将打开的对象保存在内存中 . 经过快速研究后,我发现Ergonomics in the 5.0 Java Virtual Machine和其他...
  • 194 votes
     answers
     views

    获取当前在Java中运行的所有线程的列表

    有什么方法可以获得当前JVM中所有正在运行的Thread的列表(包括我的类未启动的Threads)? 是否也可以获取列表中所有Thread的Thread和Class对象? I want to be able to do this through code.
  • 0 votes
     answers
     views

    如何排出java线程堆栈内存区域?

    在C中,我可以通过以下小程序消耗堆栈内存区域(我的Mac中的堆栈大小限制为8MB) int main(int argc, const char **argv) { int a[1024*1024*2]; long size = sizeof(a); return 0; } 由于数组java也是一个对象,因此它的元素存储在堆中 . 根据Oracle's doc,Mac中的默认线程堆栈大...
  • 3 votes
     answers
     views

    如何确保JVM以Xms的值启动

    当我运行一个初始堆大小为3G的java程序(由-Xms3072m VM参数设置)时,JVM不会以该大小启动 . 它以400米左右开始,然后根据需要继续获取更多内存 . 这对我来说是一个严重的问题 . 我知道JVM在一段时间后需要上述金额 . 当JVM根据需要增加其内存时,它会减慢速度 . 在JVM获取更多内存的时候,垃圾收集花费了大量时间 . 我认为记忆获取是一项昂贵的任务 . 如何确保JVM实际...

热门问题