小编dje*_*lin的帖子

Java日期解析器关闭了两年

我真的不知道从哪里开始调试这个.

码:

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)

这为什么要两年零两个月?

java date

3
推荐指数
1
解决办法
104
查看次数

Thread.getStackTrace()线程安全吗?

一个有点不正统的情况 - 基本上我有线程A监控线程B.如果线程A检测到线程B负责的一个周期性任务(线程B不是a的一部分ThreadPoolExecutor,它是MINA的线程之一)已经过时,线程A报告错误.所以我得到了这些错误,并想知道线程B被卡住的位置.因此,线程A调用线程B getStackTrace()并打印堆栈似乎很聪明,因此我可以看到愚蠢的活动B被卡住了.

在实践中,我会很自在地做这个,因为如果任务没有运行,机会B的堆栈在相当长的一段时间内没有改变,因为B被阻止了.但是在理论上,有时在实践中,当线程A试图获得其堆栈跟踪时,线程B的堆栈将会发生变化.所以我想知道这是否是线程安全的操作.

java multithreading thread-safety

3
推荐指数
1
解决办法
221
查看次数

如何在jdbc MySQL查询中处理0000-00-00日期

我得到了这个例外:

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)

哪里rsResultSet.

所以这对我来说没问题 - 我知道数据库中有零日期,我需要能够读取这些并将它们转换为我的下游数据结构中的适当(可能为空)数据.问题是我不知道如何检索它并得到"软"错误.我想在SQLException的try/catch中包装这一行但是理解这会破坏ResultSet的有效性.

是否可以在不抛出SQLException的情况下以另一种方式读取此值?

java mysql sql date jdbc

3
推荐指数
2
解决办法
6081
查看次数

Scala 'null' 算作另一种类型的实例吗?

我有这个代码:

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

所以为什么?

parameters types scala

3
推荐指数
1
解决办法
1615
查看次数

为什么ArrayList在从多个线程修改时不会抛出ConcurrentModificationException?

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对象中删除元素.确保多个线程访问一个对象.但它运行正常.没有异常被抛出.为什么?

java multithreading arraylist thread-safety

3
推荐指数
1
解决办法
1700
查看次数

"%.*s"是什么意思作为printf中的格式说明符?

谁能告诉我这意味着什么: "%.*s"

例如,它在这里使用:

  sprintf(outv->deliveryAddressCity, 
          "%.*s",
          sizeof(outv->deliveryAddressCity)-1,
          mi->deliveryAddressCity);
Run Code Online (Sandbox Code Playgroud)

c

3
推荐指数
1
解决办法
243
查看次数

为printf调用添加长度说明符更安全吗?

我的问题是从安全角度来看.我正在清理一些代码,我发现当前的代码有一个不受控制的格式字符串漏洞; 它传递一个字符串,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)

我想不出有什么理由会更加安全,但如果我遗漏了一些明显的东西,我也不会感到惊讶.

c security printf format-string

3
推荐指数
1
解决办法
609
查看次数

为asm.js编写优化的JS

对于asm.js以及它如何能够运行一些非常繁重的应用程序有一点兴奋.但是,它是从C++代码编译的.如果不了解C++或其他低级语言,是否仍然可以获得当前改进的好处?

以下是我的想法:我们是否可以在Js中编写代码,为asm.js重新编译以进行优化?

javascript c c++ asm.js

3
推荐指数
2
解决办法
1578
查看次数

可以执行二进制,但不能使用"源"

试着开始watch jobs工作.这很棘手,因为jobs报告当前shell拥有的作业,并watch创建另一个shell.因此我想运行. watch jobssource 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在这种情况下如何调试?

bash shell jobs watch

3
推荐指数
1
解决办法
1237
查看次数

在Webstorm中删除右侧的一个字符

这个关键的绑定逃脱了我.它和emacs一样Ctrl+D,我试过谷歌搜索"删除一个字符到右边","转发删除","删除下一个字符"等等.

这是phpstorm中的绑定,我假设它与Webstorm非常相似.

知道这个动作会被称为什么?

注意这是fn+delete在mac上做的事情.如果有一种方法可以对这个键绑定进行反向工程,并看看在Webstorm中实际调用了什么函数,那就行了.我问过如何在这里对绑定进行逆向工程.

emacs editor phpstorm webstorm

3
推荐指数
1
解决办法
484
查看次数