在实践中阅读Java并发,第3.5节:提出索赔
public Holder holder;
public void initialize() {
holder = new Holder(42);
}
Run Code Online (Sandbox Code Playgroud)
除了创建2个Holder实例的明显线程安全危险之外,本书声称可能会出现一个可能的发布问题,对于Holder类来说更是如此
public Holder {
int n;
public Holder(int n) { this.n = n };
public void assertSanity() {
if(n != n)
throw new AssertionError("This statement is false.");
}
}
Run Code Online (Sandbox Code Playgroud)
可以抛出AssertionError!
这怎么可能 ?我能想到的唯一可以允许这种荒谬的行为是,如果Holder构造函数不会被阻塞,那么当构造函数代码仍在不同的线程中运行时,将为该实例创建一个引用.这可能吗 ?
我们在java http://blog.locut.us/main/2009/10/14/which-is-the-best-java-json-library.html中对JSON有很好的支持,但BSON呢.
您知道哪些库为java提供BSON支持?它显然应该在运行时有效.
考虑改用Mercurial或Git?我们也是.我目前正在研究DVCS的好处,结果是巨大的,欲望和必须.
我很想听听社区的典型使用模式.
让我们为DVCS创建一个"前N"生产力功能列表(基于Mercurial,Git或类似).
请描述证明对您/您的团队有效的工作流程,DVCS帮助您实现/改进的程序以及DVCS为您提供的直接"好东西"(不要认为新手用户很清楚).
我认为这样的列表可以帮助那些接近团队的人提出DVCS建议.
显然,这个问题是社区维基.
为什么以下代码基于Mozilla示例不起作用?尝试使用Firefox 3.5.7和Chrome.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
</body>
<script>
var req = new XMLHttpRequest();
req.open('GET', 'http://www.mozilla.org/', false);
req.send();
if(req.status == 200) {
alert(req.responseText);
}
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
请浏览器从本地磁盘中提取html(文件:/// C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html)
在Firefox上它会出现以下错误:
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: file:///C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html :: <TOP_LEVEL> :: line 10" data: no]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我想向远程主机提交请求并提醒结果(稍后添加到div中).
java version "1.5.0_14" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03) Java HotSpot(TM) Server VM (build 1.5.0_14-b03, mixed mode)
我正在尝试调试NullPointerException,我将传递对静态定义字段的引用.更具体地说,我在Drools3工作内存实例上设置了一个全局.
workingMemory.setGlobal("log", workingMemorieslog);
Run Code Online (Sandbox Code Playgroud)
我的假设是静态收集字段静态的类.(接收类必须使用WeakReference或类似的东西,我真的不知道)
你会如何建议调试这个?我想如果我能确切知道JVM的GC何时卸载类的类/实例,那么我可以缩小错误行为的原因.(如果不是事件的确切时间,至少得到某事确实发生的迹象).
谢谢你,马克西姆.
我试图将初始化列表{...}传递给构造函数,但它不起作用.当我在一个方法局部变量(int [])中声明它时,它可以完美地工作.
这是为什么?
public class QuickSort {
int[] a;
public QuickSort(int[] a) {
this.a = a;
}
public static void main(String[] args) {
// ###################
// ### WORKS ##
// ###################
int[] a = {8,12,79,12,50,44,8,0,7,289,1};
QuickSort sort = new QuickSort(a);
// ###################
// ### DOESN'T WORK ##
// ###################
//QuickSort sort = new QuickSort({8,12,79,12,50,44,8,0,7,289,1});
}
}
Run Code Online (Sandbox Code Playgroud) public class Main3 {
public static void main(String[] args) {
Integer min = Integer.MIN_VALUE;
String minHex = Integer.toHexString(Integer.MIN_VALUE);
System.out.println(min + " " + minHex);
System.out.println(Integer.parseInt(minHex, 16));
}
}
Run Code Online (Sandbox Code Playgroud)
给
-2147483648 80000000
Exception in thread "main" java.lang.NumberFormatException: For input string: "80000000"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:459)
at Main3.main(Main3.java:7)
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?
我从1970年开始以毫秒为单位的时间戳.我想将它转换为python中的人类可读日期.如果涉及到这一点,我不会失去一些精确度.
我该怎么办?
以下为Linux 32bit上的平台time_t的ValueError:timestamp超出范围
#!/usr/bin/env python
from datetime import date
print date.fromtimestamp(1241711346274)
Run Code Online (Sandbox Code Playgroud)
谢谢你,马克西姆.
以下是GAE控制台日志记录的示例:
http://i.stack.imgur.com/M2iJX.png用于可读高分辨率版本.
我想提供文件的细分,在collpased(摘要)视图和扩展(详细信息)视图中显示.我将填写我知道其意义的领域,并希望通过dichipering其余的方式来协助.一旦有新信息,这篇文章将会更新.
谢谢你,
马克西姆.
开放式问题:
我正在为我们的应用设定标准.
我一直在想,我应该选择使用什么默认日期格式?
它应该是:
谢谢你,
马克西姆.