当我使用Java 8的新语法糖来迭代一个集合时,比如 myStream.forEach(item -> { // do something useful }); 这不等于下面的“旧语法”片段吗? myStream.forEach(new Consumer<Item>() { @Override public void accept(Item item) { // do something useful } }); 这是否意味着每次迭代集合时都会在堆上创建一个新的匿名Consumer对象? 这需要多少堆空间? 它有什么性能影响? 这是否意味着在迭代大型多级数据结构时,我宁愿使用旧式的循环?
我试图找到一种方法来从键盘进行char输入。 我试过使用: Scanner reader = new Scanner(System.in); char c = reader.nextChar(); 这个方法不存在。 我试图把c作为一个String 。 然而,它并不总是在每一种情况下工作,因为我从我的方法调用的另一种方法需要一个char作为输入。 因此,我必须找到一种方法来明确地采取一个字符作为输入。 任何帮助?
例如,我有这个数组: int a[] = new int[]{3,4,6,2,1}; 我需要列出所有的排列,如果这样的话, {3,2,1,4,6} ,其他的不能相同。 我知道,如果数组的长度是n,那么就有n! 可能的组合。 这个算法怎么写? 更新:谢谢,但我需要一个伪代码算法,如: for(int i=0;i<a.length;i++){ // code here } 只是算法。 是的,API函数很好,但是对我来说并没有太大的帮助。
可能重复: Google地图输出= kml破了? 几天后,我试图使用KML数据检索Google Directions,我开始遇到错误。 错误似乎是我请求的网址不再搜索KML数据,它返回整个页面。 为了实现这一目标,我遵循了这一点。 有什么解决方案呢? 有没有其他的选择?
我被要求构建一个Java系统,在运行时可以加载新的代码(扩展)。 如何在代码运行时重新加载jar文件? 或者我如何加载一个新的jar? 很明显,由于持续运行时间很重要,所以我想增加重新加载现有类的能力(如果它不太复杂)。 我应该注意些什么? (把它想成两个不同的问题 – 一个是在运行时重新加载类,另一个是关于添加新类的问题)。
我想解析来自JSON类型为String 。 我正在使用Google Gson 。 我有: jsonLine = " { "data": { "translations": [ { "translatedText": "Hello world" } ] } } "; 而我的课是: public class JsonParsing{ public void parse(String jsonLine) { // there I would like to get String "Hello world" } }
问题不在于32位操作系统上的最大堆大小,因为32位操作系统的最大可寻址内存大小为4GB,而JVM的最大堆大小取决于可以保留多少连续的空闲内存。 我更感兴趣的是了解在64位操作系统中运行的32位JVM的最大(理论和实际可行)堆大小。 基本上,我正在寻找类似SO的相关问题中的数字的答案。 至于为什么使用32位JVM而不是64位JVM,原因不是技术性的,而是管理/官僚性 – 在生产环境中安装64位JVM可能太晚了。
我希望能够获取一个网页的HTML并将其保存到一个String ,所以我可以做一些处理。 另外,我怎样才能处理各种类型的压缩。 我将如何去做这个使用Java?
我有我的应用程序的战争档案。 我需要在根级部署这个。 当前的URL是http://localhost:8080/war_name/application_name 。
我一直能够为运行在32位Windows XP(Java 1.4,1.5和1.6)上的Java SE分配1400兆字节。 java -Xmx1400m … 今天我在一台使用Java 1.5_16和1.6.0_07的新Windows XP机器上尝试了相同的选项,并得到了错误: Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. 通过试验和错误似乎1200兆是我可以分配在这台机器上最多。 任何想法为什么一台机器会允许1400和另一个只有1200? 编辑:该机有4GB的RAM,约3.5GB,Windows可以识别。