Tag: java

为什么Java中没有常量特性?

我试图找出Java中的常量背后的原因我已经了解到,Java允许我们通过使用final关键字来声明常量。 我的问题是为什么没有引入一个常量( const )function。 由于很多人说它来自C ++,所以在C ++中我们有const关键字。 请分享你的想法。

如何在Swing中使用拖放来获取文件path?

在我的swing应用程序中有一个JTextField,它保存选定要使用的文件的文件path。 目前我有一个JFileChooser是用来填充这个值。 不过,我想添加一个用户将文件拖放到此JTextField的function,并将其放入JTextField中,而不是始终使用JFileChooser。 如何才能做到这一点?

Java XPath(Apache JAXP实现)的性能

注意:如果您也遇到此问题,请在Apache JIRA上加注: https://issues.apache.org/jira/browse/XALANJ-2540 我得出了一个惊人的结论: Element e = (Element) document.getElementsByTagName("SomeElementName").item(0); String result = ((Element) e).getTextContent(); 似乎是一个令人难以置信的100倍比这更快: // Accounts for 30%, can be cached XPathFactory factory = XPathFactory.newInstance(); // Negligible XPath xpath = factory.newXPath(); // Negligible XPathExpression expression = xpath.compile("//SomeElementName"); // Accounts for 70% String result = (String) expression.evaluate(document, XPathConstants.STRING); 我正在使用JVM的JAXP默认实现: org.apache.xpath.jaxp.XPathFactoryImpl org.apache.xpath.jaxp.XPathImpl 我很困惑,因为很容易看出JAXP如何优化上述XPath查询来实际执行一个简单的getElementsByTagName() 。 但似乎并没有这样做。 这个问题被限制在5-6个经常使用的XPath调用中,这些调用被API抽象和隐藏。 […]

如何在Java中调用一些阻塞方法?

有没有一个标准的很好的方式来调用一个阻塞方法在Java中超时? 我想能够做到: // call something.blockingMethod(); // if it hasn't come back within 2 seconds, forget it 如果这是有道理的。 谢谢。

Selenium WebDriver:等待带有JavaScript(JS)的复杂页面加载

我有一个Web应用程序来testingselenium。 页面加载时有很多JavaScript运行。 这个JavaScript代码写得不是很好,但是我不能改变任何东西。 因此,使用findElement()方法等待元素出现在DOM中不是一个选项。 我想在Java中创build一个通用函数来等待页面加载,一个可能的解决scheme是: 运行WebDriver的JavaScript脚本,并将document.body.innerHTML的结果存储在stringvariablesbody 。 将bodyvariables与body的先前版本进行比较。 如果他们是相同的然后设置递增计数器notChangedCount否则设置notChangedCount为零。 等待一个小时(例如50毫秒)。 如果页面在一段时间内没有改变(例如500毫秒),那么notChangedCount > = 10,否则退出循环,否则循环到第一步。 你认为这是一个有效的解决scheme?

何时使用构造函数以及何时使用getInstance()方法(静态工厂方法)?

何时以及如何使用构造函数 Foo bar = new Foo(); 何时以及如何使用getInstance()(静态工厂方法) Foo bar = Foo.getInstance(); 这两者有什么区别,我总是用第一种方式,但是什么时候用第二种方式呢?

如何在java中使用fiddler捕获https

我正在Eclipse IDE中运行以下Java程序: import java.net.*; import java.io.*; public class HH { public static void main(String[] args)throws Exception { //if i comment out the system properties, and don't set any jvm arguments, the program runs and prints out the html fine. System.setProperty("http.proxyHost", "localhost"); System.setProperty("http.proxyPort", "8888"); System.setProperty("https.proxyHost", "localhost"); System.setProperty("https.proxyPort", "8888"); URL x=new URL("https://www.google.com"); HttpURLConnection hc=(HttpURLConnection)x.openConnection(); hc.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT […]

什么使热部署成为“难题”?

在工作中,我们遇到了“ PermGen内存不足 ”exception的问题,团队负责人认为这是JVM中的一个错误,这与代码的热部署有关。 他没有解释很多细节,他指出,热部署是一个“难题”,即使.NET也不这么做。 我发现很多文章都是从鸟瞰angular度解释热点部署,但总是缺乏技术细节。 任何人都可以给我一个技术解释,并解释为什么热部署是一个“难题”?

Java:迭代通过一个集合的最佳方式(这里是ArrayList)

今天,当我遇到一段我已经使用了数百次的代码时,我开心地编写代码: 迭代一个集合(这里是ArrayList) 出于某种原因,我真的看了Eclipse的自动完成选项,它让我想知道: 以下哪些环路比其他环路更适合使用? 经典的数组索引循环: for (int i = 0; i < collection.length; i++) { type array_element = collection.get(index); } 迭代器hasNext()/ next(): for (Iterator iterator = collection.iterator(); iterator.hasNext();) { type type = (type) iterator.next(); } 而我最喜欢的是因为它写得这么简单: for (iterable_type iterable_element : collection) { }

是不是很好的做法,使构造函数抛出exception?

使构造函数抛出exception是一个好习惯吗? 例如我有一个classPerson ,我有age作为其唯一的属性。 现在我提供这个课程 class Person{ int age; Person(int age) throws Exception{ if (age<0) throw new Exception("invalid age"); this.age = age; } public void setAge(int age) throws Exception{ if (age<0) throw new Exception("invalid age"); this.age = age; } }