Java中最终化的目的是什么?

我对最终定稿的理解是这样的: 为了清理或回收对象占用的内存,垃圾收集器开始运行。 (自动被调用?) 垃圾收集器然后取消引用该对象。 有时,垃圾收集器无法访问该对象。 然后调用finalize进行最后的清理处理,之后可以调用垃圾收集器。 这是对最终确定的准确描述吗?

解释导致HashMap.put()执行无限循环的时间

正如许多人已经注意到并遇到HashMap.put可以在并发使用时进入无限执行循环(参见GRIZZLY-1207 , JGRP-525 ,可能是HHH-6414 ,以及此SO 答案 )。 HashMap明确记录为不是线程安全的。 显然,正确的解决方法是使用Map , ConncurrentHashMap的线程安全实现。 我对导致无限循环的并发时序更加好奇。 我最近使用Java 7 JRE遇到了这个循环,并希望了解确切的原因。 例如,这是由同时多次看跌引起的吗? 在HashMap.put中查看HashMap.Entry包含指向下一个节点的链接(在存储桶中?)。 我假设这些链接正在腐蚀以包含循环引用,这导致无限循环。 但是,我仍然不明白腐败是如何发生的。

Java中的指针

C ++支持指针,而Java则不支持。 但是当许多程序员质疑如何在没有指针的情况下工作时,发起人开始说“受限制的指针”。所以我们可以说Java支持受限制的指针?

用于Java的语法Highlighter

如您所知,有一个名为GeSHi的 PHP语法荧光笔,它支持大量的编程语言或代码格式。 但是,我找不到这样的Java库,它支持我需要的编程语言(ADA,ASP,BNF,Bash,Brainfuck,C,C ++,C#,CSS,Cobol,ColdFusion,D,Fortran,Haskell,HTML, INI(Config),Java,JavaScript,Lisp,Make,Objective C,PASCAL,Perl,PHP,PLSQL,Prolog,Python,Ruby,Scheme,SQL,VB.NET,Verilog,VHDL,Visual Basic,XML。) 你知道一个或者我是否应该选择通过http事务从远程PHP服务器检索突出显示的代码的低效方式? 有任何想法吗? 谢谢。

Jsoup选择并迭代所有元素

我将通过jsoup连接到一个url并获取它的所有内容但是如果我选择喜欢, doc.select(“body”) 它返回一个元素,但我想获取页面中的所有元素并逐个迭代它们,例如, Test Hello All Second Page Test 如果我选择使用body,我会将结果放在一行中,如: Test Hello All Second Page Test 相反,我想选择所有元素并逐个迭代并产生结果,如, Test Hello All Second Page Test 使用jsoup会有可能吗? 谢谢, KARTHIK

无法设置填充颜色Apache POI Excel工作簿

我一遍又一遍地扫描了这个论坛并尝试了这里提到的所有方法,但仍然无法让Apache POI更改以填充我的Excel文档的背景颜色。 这是我的代码: errorOccured = true; XSSFCellStyle cs = workbook.createCellStyle(); cs.setFillBackgroundColor(IndexedColors.RED.getIndex()); row.getCell(0).setCellStyle(cs); 你知道为什么这不起作用吗? 将row.getCell(0)填充为红色(背景色)的正确方法是什么? 谢谢!

如何为Java编写的程序创建可执行文件?

大家,我如何为Eclipse Helios中用Java编写的程序创建可执行文件? 我的意思是创建小图标只能通过双击其图标启动程序,感谢提前编辑我的意思是Windows的可执行文件

为什么要将String编译切换为两个开关

我在编译开关时阅读了JVM规范 ,并对如何编译String上的switch语句感兴趣。 这是我检查的测试方法(JDK1.7.0_40): static int test(String i) { switch (i) { case “a”: return -100; case “45b”: return 1; case “c”: return 2; default: return -1; } } 我希望这个方法可以在string的hashCode上编译成简单的lookupswitch,但突然之间 static int test(java.lang.String); Code: 0: aload_0 1: astore_1 2: iconst_m1 3: istore_2 4: aload_1 5: invokevirtual #6 // Method java/lang/String.hashCode:()I 8: lookupswitch { // 3 97: […]

如何将变量标记为最终允许内部类访问它们?

在方法内定义的内部类不能访问方法的局部变量,除非这些局部变量标记为final我已经查看了堆栈溢出和java代码牧场中的其他post,但它们似乎都没有完全回答关于如何标记变量final允许内部类访问方法中的局部变量。 class MyOuter { private String x = “Outer”; void fly(final int speed) { final int e = 1; class FlyingEquation { public void seeOuter() { System.out.println(“Outer x is ” + x); } public void display() { System.out.println(e);// line 1 System.out.println(speed);// line 2 } } FlyingEquation f=new FlyingEquation(); f.seeOuter(); f.display(); } public static void main(String […]

Java在JFrame上拖放特定扩展名的文件

我想为我的应用程序实现DnD只接受某些扩展名的文件(例如wrl)。 如果文件将被接受,我想将光标更改为拖动光标,并在拖放错误扩展名的文件时恢复到正常光标。 我一直在http://docs.oracle.com/javase/tutorial/uiswing/dnd/toplevel.html上关注以下教程/示例 我所做的更改是在canImport函数中 public boolean canImport(TransferHandler.TransferSupport support) { if (!support.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) { return false; } Transferable t = support.getTransferable(); try { java.util.List l = (java.util.List)t.getTransferData(DataFlavor.javaFileListFlavor); if (l.size() != 1) { return false; } File f = l.get(0); String extension = f.getName().substring(f.getName().lastIndexOf(“.”)); return extension.equalsIgnoreCase(“.wrl”); } catch (UnsupportedFlavorException e) { return false; } catch (IOException e) { […]