小编adi*_*tsu的帖子

是否可以定义一个非空的时间戳列,并且在更新时没有默认值且没有特殊行为?

当我创建一个带有timestamp列的表时,该列在更新CURRENT_TIMESTAMP时被神奇地定义为NOT NULL DEFAULT CURRENT_TIMESTAMP.忽略到目前为止这有多奇怪,我想将其更改为没有默认值,也没有特殊的"on update"行为.

我发现如果我将列更改为NULL,默认情况下会神奇地设置为NULL,并且"on update"会神奇地消失.这很好,但我希望列不是NULL.当我将其更改回来时,默认和"on update"(设置为CURRENT_TIMESTAMP)都会神奇地重新出现.

我知道我可以使用datetime而不是timestamp,但我对时间戳感兴趣,因为它是时区感知的(似乎就像Postgres中的"timestamp with time zone").

mysql timestamp

23
推荐指数
2
解决办法
1万
查看次数

Classloader由弱引用持有?

我一直在与一些内存泄漏作斗争,我目前对这个问题感到困惑.有一个Web应用程序类加载器,应该是垃圾收集,但它不是(即使我修复了几个泄漏).我用jmap转储堆并用jhat浏览它,找到了类加载器并检查了rootset引用.

如果我排除弱参考,列表是空的!这怎么可能,因为只有弱引用持有的对象应该收集垃圾?(我在jconsole中多次执行GC)

如果我包含弱引用,我会得到一个引用列表,所有引用都来自以下某个字段:

  • java.lang.reflect.Proxy.loaderToCache
  • java.lang.reflect.Proxy.proxyClasses
  • java.io.ObjectStreamClass中的$ Caches.localDescs
  • java.io.ObjectStreamClass中的$ Caches.reflectors
  • java.lang.ref.Finalizer.unfinalized

我找不到任何理由为什么这些引用应该防止垃圾收集类加载器.这是一个gc bug吗?特殊无证案件?jmap/jhat bug?或者是什么?

最奇怪的是......在闲置和闲逛之后大约40分钟,没有改变任何东西,它最终决定卸载类并收集类加载器.

注意:

如果您对延迟收集类加载器或弱引用提出声明,请说明发生的情况,理想情况是:

  • 提供指向支持您的声明的权威文章的链接
  • 提供演示行为的示例程序

如果您认为该行为是依赖于实现的,那么请关注oracle或icedtea jvm版本6或7中发生的事情(选择其中任何一个并具体说明).

我真的想深究这一点.我实际上已经花了一些力气来重现测试程序中的问题,但我失败了 - 除非有强烈的引用,否则每次都会立即在System.gc()上收集类加载器.

java garbage-collection memory-leaks classloader

11
推荐指数
1
解决办法
1247
查看次数

Nginx用于多个路径的相同配置

我想以相同的方式在站点内配置多个路径(例如/ foo /和/ bar /).为了避免复制粘贴,我想我应该使用单个位置块,但我发现这样做的唯一方法是使用正则表达式,例如:

location ~ ^/(foo|bar)/ {
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是最好的方式还是有更好的选择?

nginx

10
推荐指数
1
解决办法
7614
查看次数

如何使用JDBC引用/转义列名等标识符?

不同的数据库服务器使用不同的方式引用和转义标识符

例如,"foo bar"vs"foo bar"vs [foo bar],或"10"""vs"10 \"",或者某些数据库需要引用FooBar或数组等标识符,而其他数据库则不需要引用.

是否有任何API方法可以为给定的数据库连接正确执行引用/转义?或任何替代解决方案?

java jdbc

8
推荐指数
3
解决办法
5251
查看次数

EnhancedPatternLayout和PatternLayout之间的主要区别是什么?

在检查PatternLayout的javadoc时,我注意到它建议使用EnhancedPatternLayout.但是,它似乎做了几乎相同的事情.

有哪些主要区别,尤其是我需要注意的问题?

我也想知道他们为什么单独上课而不是增强原班级.任何语法差异?

java log4j

6
推荐指数
1
解决办法
2971
查看次数

如何在eclipse中找到ecj版本?

我有一个小问题,在 eclipse 中编译的一些 java 类与由独立 ecj 编译的类(来自相同的源代码)略有不同。如何找到 eclipse 正在使用的 ecj 版本?(我假设这就是差异所在)

java eclipse eclipse-jdt

5
推荐指数
1
解决办法
1456
查看次数

JavaFX中的Unicode补充平面

我在JavaFX中从补充("星体")平面处理Unicode字符时遇到问题.具体来说,我不能将这些字符粘贴在一个TextInputDialog(我得到一些奇怪的字符,比如ð),并且不能在WebView中使用它们(它们被渲染为??????).

如果我通过输入并将它们JOptionPane.showInputDialog打印到控制台,相同的字符工作得非常好.他们甚至在JavaFX中显示Alert,尽管它最后添加了一些垃圾.

有办法解决这些问题吗?

我在Linux中使用Oracle JDK版本1.8.0_51.
补充平面字符的示例:
如果您看不到它们,则可能需要安装其他字体,如Symbola或Noto.

这是一个示例程序(使用Label而不是a WebView):

import javax.swing.JOptionPane;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Label;
import javafx.scene.control.TextInputDialog;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class UniTest extends Application {
    @Override
    public void start(final Stage stage) throws Exception {
        final String s = new String(new int[]{127137, 178050, 3232, 128512, 241}, 0, 5);
        System.out.println("The string: " + s);
        System.out.println("Characters: " + s.length());
        System.out.println("Code points: " …
Run Code Online (Sandbox Code Playgroud)

java unicode javafx javafx-8

5
推荐指数
1
解决办法
1120
查看次数

必须实现默认接口方法吗?

这是一个显示我的问题的简化示例:

import java.util.List;

public interface SingleTask extends List<Runnable>, Runnable {
    default Runnable get(final int x) {
        if (x != 0) {
            throw new IndexOutOfBoundsException();
        }
        return this;
    }

    default int size() {
        return 1;
    }
}

import java.util.AbstractList;

public class MyTask extends AbstractList<Runnable> implements SingleTask {
    @Override
    public void run() {
        System.out.println("hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

SingleTask我提供用于方法的实现getsize,它们是从仅抽象方法AbstractList.但是,当我编译时MyTask,我仍然会遇到如下错误:

MyTask类型必须实现继承的抽象方法AbstractCollection.size()

要么

MyTask.java:3:错误:MyTask不是抽象的,并且不会覆盖AbstractList中的抽象方法get(int)

(取决于编译器).我当然是使用java 8.

所以我有两个问题:

  1. 为什么我会收到这些错误?我期待它能够识别默认的实现.
  2. 如果它不应该像那样工作,那么在MyTask不复制整个代码的情况下使用这两种方法的最简单方法是什么?

java java-8 default-method

5
推荐指数
1
解决办法
477
查看次数

HtmlToPlainText 不再包含在 jsoup 中

我正在将一些 html 转换为纯文本,并且我正在使用 jsoup 的HtmlToPlainText. 然而,在最近的 jsoup 版本中,不再包含该代码,因为据说它仅作为示例提供(尽管HtmlToPlainText javadoc仍然说它是 jsoup.jar 的一部分)。

除了手动复制或打包该代码作为附加库之外,我还可以使用什么来代替?jsoup 中是否有替代方案或至少基于 jsoup ?

html java jsoup

5
推荐指数
1
解决办法
1728
查看次数

PyDev 无法再调试

我正在使用 eclipse 4.2.1 和 pydev 2.7.1(以前是 2.6.0)

一切都工作正常,直到调试器突然停止工作 - 它打印“pydev debugger:开始”,然后根本不运行程序,而是挂起。

根据我在其他问题报告中找到的一些信息,我更改了一些调试常量(DEBUG_TRACE_LEVEL = 3 和 DEBUG_TRACE_BREAKPOINTS = 3),现在得到了以下输出:

pydev debugger: starting
('Executing file ', '/path/to/my/program.py')
('arguments:', "['/path/to/my/program.py']")
('Connecting to ', '127.0.0.1', ':', '40972')
('Connected.',)
('received command ', '501\t1\t1.1')
sending cmd: CMD_VERSION 501    1   1.1

sending cmd: CMD_THREAD_CREATE 103  2   <xml><thread name="pydevd.reader" id="-1"/></xml>

sending cmd: CMD_THREAD_CREATE 103  4   <xml><thread name="pydevd.writer" id="-1"/></xml>
Run Code Online (Sandbox Code Playgroud)

之后什么也没有发生。

编辑:我创建了一个新的工作区,pydev 似乎可以在那里工作。目前正在尝试找出导致问题的元数据文件夹。

python eclipse pydev

4
推荐指数
1
解决办法
2985
查看次数