我真的不知道从哪里开始调试这个.
码:
String date = "Mon, 15 Oct 2012 20:32:12 +0000 (GMT)";
SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:MM:ss Z");
try {
Date date2 = format.parse(date);
System.err.println("parsed: " + date2);
}
catch (ParseException e) {
System.err.println("Failed to parse: " + format);
}
Run Code Online (Sandbox Code Playgroud)
输出:
parsed: Fri Aug 15 16:00:12 EDT 2014
Run Code Online (Sandbox Code Playgroud)
这为什么要两年零两个月?
一个有点不正统的情况 - 基本上我有线程A监控线程B.如果线程A检测到线程B负责的一个周期性任务(线程B不是a的一部分ThreadPoolExecutor,它是MINA的线程之一)已经过时,线程A报告错误.所以我得到了这些错误,并想知道线程B被卡住的位置.因此,线程A调用线程B getStackTrace()并打印堆栈似乎很聪明,因此我可以看到愚蠢的活动B被卡住了.
在实践中,我会很自在地做这个,因为如果任务没有运行,机会B的堆栈在相当长的一段时间内没有改变,因为B被阻止了.但是在理论上,有时在实践中,当线程A试图获得其堆栈跟踪时,线程B的堆栈将会发生变化.所以我想知道这是否是线程安全的操作.
我得到了这个例外:
java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
Run Code Online (Sandbox Code Playgroud)
源自此代码:
Date internalDate = rs.getDate(idx++);
Run Code Online (Sandbox Code Playgroud)
哪里rs是ResultSet.
所以这对我来说没问题 - 我知道数据库中有零日期,我需要能够读取这些并将它们转换为我的下游数据结构中的适当(可能为空)数据.问题是我不知道如何检索它并得到"软"错误.我想在SQLException的try/catch中包装这一行但是理解这会破坏ResultSet的有效性.
是否可以在不抛出SQLException的情况下以另一种方式读取此值?
我有这个代码:
class MyLinkedList[T](h: T, tail: MyLinkedList[T]) {
def prepend(v: T): MyLinkedList[T] = new MyLinkedList(v, this)
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何将第二个参数作为 null 传递并且它可以工作:
val l: MyLinkedList[Int] = new MyLinkedList(1, null)
Run Code Online (Sandbox Code Playgroud)
null是 MyLinkedList[Int] 的一个实例??似乎没有:
println(null.isInstanceOf[MyLinkedList[Int]])
Run Code Online (Sandbox Code Playgroud)
输出false。
所以为什么?
ConcurrentModificationException:当不允许此类修改时,检测到并发修改对象的方法可能抛出此异常.
以上是来自javadoc的ConcurrentModificationException定义.
所以我尝试测试下面的代码:
final List<String> tickets = new ArrayList<String>(100000);
for (int i = 0; i < 100000; i++) {
tickets.add("ticket NO," + i);
}
for (int i = 0; i < 10; i++) {
Thread salethread = new Thread() {
public void run() {
while (tickets.size() > 0) {
tickets.remove(0);
System.out.println(Thread.currentThread().getId()+"Remove 0");
}
}
};
salethread.start();
}
Run Code Online (Sandbox Code Playgroud)
代码很简单.10个线程从arraylist对象中删除元素.确保多个线程访问一个对象.但它运行正常.没有异常被抛出.为什么?
谁能告诉我这意味着什么: "%.*s"
例如,它在这里使用:
sprintf(outv->deliveryAddressCity,
"%.*s",
sizeof(outv->deliveryAddressCity)-1,
mi->deliveryAddressCity);
Run Code Online (Sandbox Code Playgroud) 我的问题是从安全角度来看.我正在清理一些代码,我发现当前的代码有一个不受控制的格式字符串漏洞; 它传递一个字符串,printf()如:
void print_it(char * str)
{
printf(str);
Run Code Online (Sandbox Code Playgroud)
这显然被认为是不安全的编程,即使gcc通常会至少给你一些警告:
警告:格式不是字符串文字,也不是格式参数
现在要"修复"这个问题,我们可以确保你得到的东西被视为一个字符串
printf("%s", str);
Run Code Online (Sandbox Code Playgroud)
但是我想知道在使用长度特定器时是否有任何额外的安全性.就像是:
printf("%.*s", (int)sizeof(str), str);
Run Code Online (Sandbox Code Playgroud)
我想不出有什么理由会更加安全,但如果我遗漏了一些明显的东西,我也不会感到惊讶.
对于asm.js以及它如何能够运行一些非常繁重的应用程序有一点兴奋.但是,它是从C++代码编译的.如果不了解C++或其他低级语言,是否仍然可以获得当前改进的好处?
以下是我的想法:我们是否可以在Js中编写代码,为asm.js重新编译以进行优化?
试着开始watch jobs工作.这很棘手,因为jobs报告当前shell拥有的作业,并watch创建另一个shell.因此我想运行. watch jobs或source watch jobs,但我收到此错误:
-bash: source: /usr/bin/watch: cannot execute binary file
Run Code Online (Sandbox Code Playgroud)
这是输出file /usr/bin/watch:
/usr/bin/watch: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0xe207fd209faf781a58f5f30922c99da759bd3953, stripped
Run Code Online (Sandbox Code Playgroud)
source在这种情况下如何调试?
这个关键的绑定逃脱了我.它和emacs一样Ctrl+D,我试过谷歌搜索"删除一个字符到右边","转发删除","删除下一个字符"等等.
这是phpstorm中的绑定,我假设它与Webstorm非常相似.
知道这个动作会被称为什么?
注意这是fn+delete在mac上做的事情.如果有一种方法可以对这个键绑定进行反向工程,并看看在Webstorm中实际调用了什么函数,那就行了.我问过如何在这里对绑定进行逆向工程.