在阅读“ 实践中的Java并发 ”和“ 实践中的OSGI ”之后,我发现了一个非常有趣的特定主题; 安全出版物。 以下是来自JCIP: 要安全地发布对象,对象的引用和对象的状态必须同时对其他线程可见。 正确构造的对象可以通过以下方式安全地发布 从静态初始化器初始化对象引用。 将引用存储到一个易变的字段中。 将参考存储在最终字段中。 将引用存储到由( 同步 )locking正确保护的字段中。 我的第一个问题:有多lessJava开发人员知道这个(问题)? 有多less真实世界的Java应用程序真的跟着这个,这真的是一个真正的问题? 我有一种感觉,99%的已实现的JVM在那里没有那个“邪恶”,即一个线程是不能保证的(实际上它实际上(几乎)“不可能”)看到陈旧的数据只是因为引用没有跟随上面的“安全出版习语”。
我不明白为什么Java的HttpURLConnection不遵循redirect。 我使用下面的代码来获取此页面 : import java.net.URL; import java.net.HttpURLConnection; import java.io.InputStream; public class Tester { public static void main(String argv[]) throws Exception{ InputStream is = null; try { String bitlyUrl = "http://bit.ly/4hW294"; URL resourceUrl = new URL(bitlyUrl); HttpURLConnection conn = (HttpURLConnection)resourceUrl.openConnection(); conn.setConnectTimeout(15000); conn.setReadTimeout(15000); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)"); […]
假设你创build一个新的项目,并希望它使用一些第三方库,比如widget.jar 。 你在哪里添加这个JAR: 文件>>项目属性>>库>> 编译时库 ; 要么 文件>>项目属性>>库>> 运行时库 ; 要么 工具>>库(库pipe理器)>>库类path; 要么 工具>> Java平台(Java平台pipe理器) 所有这些对话似乎都做了同样的事情,但我相信他们都有其适当的用法。 在线无法find一个好的“最佳实践”文章,NetBeans帮助内容对话框也无济于事。
我有一个Play Framework应用程序,我正在使用Hibernate 4.2.5.Final(通过Maven依赖pipe理器检索)。 我决定升级到Hibernate 4.3.0.Final,成功重新编译我的应用程序,并运行它。 我得到了下面的例外,并没有能够找出原因。 我降级到4.2.5,这个问题没有发生。 然后,我尝试在4.2.5之后的每个最终版本上升级Hibernate。 也就是我从4.2.5.Final到4.2.6.Final,到4.2.7.Final,到4.2.8。最后到4.3,最后。 直到我升级到4.3.0.Final,问题不会发生。 Java版本信息 java version "1.7.0_45" Java(TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) 和例外 : play.api.UnexpectedException: Unexpected exception[NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;] at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:152) ~[play_2.10.jar:2.2.1] at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:112) ~[play_2.10.jar:2.2.1] at scala.Option.map(Option.scala:145) ~[scala-library.jar:na] at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:112) ~[play_2.10.jar:2.2.1] at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:110) ~[play_2.10.jar:2.2.1] at scala.util.Success.flatMap(Try.scala:200) ~[scala-library.jar:na] Caused by: […]
如何将datestringparsing到Date对象中? String target = "Thu Sep 28 20:29:30 JST 2000"; DateFormat df = new SimpleDateFormat("E MM dd kk:mm:ss z yyyy"); Date result = df.parse(target); 抛出exception… java.text.ParseException: Unparseable date: "Thu Sep 28 20:29:30 JST 2000" at java.text.DateFormat.parse(DateFormat.java:337)
我有两个class级, Foo和Bar ,如下所示: public class Foo { private Long fooId; private Bar bar; //Yes, this doesn't actually make any sense, //having both a list and a single object here, its an example. private List<Bar> bars; } public class Bar { private Long barId; private Foo foo; } 如何使用这些类的Hibernate 4注释实现(单向/双向)一对多,多对一或多对多的关系? 另外,如何configuration我的一对多的孤儿删除,延迟加载和LazyInitialiaizationException处理集合时如何解决问题?
是否有任何方便的方式来读取和parsing来自请求的数据。 例如,客户发起发布请求 URLConnection connection = new URL(url).openConnection(); connection.setDoOutput(true); connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); PrintWriter writer = null; try { OutputStream output = connection.getOutputStream(); writer = new PrintWriter(new OutputStreamWriter(output, charset), true); // true = autoFlush, important! // Send normal param. writer.println("–" + boundary); writer.println("Content-Disposition: form-data; name=\"param\""); writer.println("Content-Type: text/plain; charset=" + charset); writer.println(); writer.println(param); 我无法使用request.getParameter("paramName")获得参数。 下面的代码 BufferedReader […]
我是Visual Studio在完成你写的代码和ALSO代码引用(各种库/程序集)时给你提供注释文档/参数名的方式的忠实粉丝。 在代码完成或hover在方法上的时候,是否有一种简单的方法可以在Eclipse中获得内联的javadoc /参数名称? 通过插件? 通过一些设置? 使用大量的库是非常烦人的(就像在Java中经常发生的那样),然后必须到网站或当地的javadoc位置查找信息,当你在源代码的jar包中查找信息的时候!
我在这个问题上看到了这样一句话: 什么是build立一个Web服务的好的函数式语言? 除了在自recursion函数中,Scala特别不支持tail-call消除,这限制了你可以做的组合types(这是JVM的一个基本限制)。 这是真的? 如果是这样的话,JVM是什么造成了这个基本的限制呢?
可能重复: 奇怪的Java拳击 最近我看到一个演示,下面是Java代码示例: Integer a = 1000, b = 1000; System.out.println(a == b); // false Integer c = 100, d = 100; System.out.println(c == d); // true 现在我有点困惑。 我明白为什么在第一种情况下结果是“假” – 这是因为整数是一个引用types,“a”和“b”的引用是不同的。 但为什么在第二种情况下结果是“真实的”? 我听到一个意见,JVMcaching对象的int值从-128到127为了一些优化的目的。 这样,“c”和“d”的引用是相同的。 有人可以给我更多关于这种行为的信息吗? 我想了解这个优化的目的。 在什么情况下,性能提高等等。参考这个问题的一些研究将是很大的。