小编kev*_*rpe的帖子

电子邮件地址允许使用哪些字符?

我不是在问完整的电子邮件验证.

我只是想知道电子邮件地址中允许的字符user-nameserver部分内容.这可能过于简单,也许电子邮件地址可以采取其他形式,但我不在乎.我只询问这个简单的形式:( user-name@server例如wild.wezyr@best-server-ever.com)和两个部分允许的字符.

forms email email-address email-validation

587
推荐指数
11
解决办法
78万
查看次数

为什么C#默认将方法实现为非虚方法?

与Java不同,为什么C#默认将方法视为非虚函数?它更可能是性能问题而不是其他可能的结果吗?

我想起了Anders Hejlsberg的段落,内容是现有架构带来的几个优点.但是,副作用呢?默认情况下使用非虚方法真的是一个很好的权衡吗?

.net c# java virtual-functions

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

C中的单个结构成员的sizeof

我试图声明一个依赖于另一个结构的结构.我想用来sizeof保证安全/迂腐.

typedef struct _parent
{
  float calc ;
  char text[255] ;
  int used ;
} parent_t ;
Run Code Online (Sandbox Code Playgroud)

现在我想声明一个child_t大小相同的结构parent_t.text.

我怎样才能做到这一点?(下面的伪代码.)

typedef struct _child
{
  char flag ;
  char text[sizeof(parent_t.text)] ;
  int used ;
} child_t ;
Run Code Online (Sandbox Code Playgroud)

我试着用几种不同的方法parent_tstruct _parent,但我的编译器不接受.

作为一个技巧,这似乎工作:

parent_t* dummy ;
typedef struct _child
{
  char flag ;
  char text[sizeof(dummy->text)] ;
  int used ;
} child_t ;
Run Code Online (Sandbox Code Playgroud)

是否可以在child_t不使用的情况下声明dummy

c struct sizeof

101
推荐指数
8
解决办法
5万
查看次数

在Java 8中,为什么ArrayList的默认容量现在为零?

我记得,在Java 8之前,默认容量ArrayList是10.

令人惊讶的是,对default(void)构造函数的注释仍然说: Constructs an empty list with an initial capacity of ten.

来自ArrayList.java:

/**
 * Shared empty array instance used for default sized empty instances. We
 * distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when
 * first element is added.
 */
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};

...

/**
 * Constructs an empty list with an initial capacity of ten.
 */
public ArrayList() {
    this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
Run Code Online (Sandbox Code Playgroud)

java arraylist java-8

88
推荐指数
3
解决办法
6万
查看次数

Java varargs方法参数列表与数组

可变参数:

public static void foo(String... string_array) { ... }
Run Code Online (Sandbox Code Playgroud)

单阵列参数:

public static void bar(String[] string_array) { ... }
Run Code Online (Sandbox Code Playgroud)

Java 1.6似乎接受/拒绝以下内容:

String[] arr = {"abc", "def", "ghi"};
foo(arr);  // accept
bar(arr);  // accept
foo("abc", "def", "ghi");  // accept
bar("abc", "def", "ghi");  // reject
Run Code Online (Sandbox Code Playgroud)

假设上述是真的/正确的,为什么不总是使用varargs而不是单个数组param?似乎免费增加了一点来电灵活性.

专家是否可以共享内部JVM差异(如果有)?

谢谢.

java variadic-functions

37
推荐指数
3
解决办法
3万
查看次数

为什么NoClassDefFoundError由静态字段初始化失败引起?

这是一个有趣的java问题.

以下简单的java程序包含静态方法初始化的静态字段.实际上,我强制计算intiailize值的方法引发NullPointException,当我访问这样的静态字段时,会引发NoClassDefFoundError.似乎VM对待Class并不完整.

但是当我访问Class时,它仍然可用;

有谁知道为什么?

class TestClass {
    public static TestClass instance = init();

    public static TestClass init() {
       String a = null;
       a.charAt(0); //force a null point exception;
       return new TestClass();
    }
}

class MainClass {
    static public void main(String[] args) {
       accessStatic(); // a ExceptionInInitializerError raised cause by NullPointer
       accessStatic(); //now a NoClassDefFoundError occurs;

       // But the class of TestClass is still available; why?
       System.out.println("TestClass.class=" + TestClass.class);
    }

    static void accessStatic() {
        TestClass a;

        try {
            a = TestClass.instance; …
Run Code Online (Sandbox Code Playgroud)

java static initialization noclassdeffounderror

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

如何在Maven中使用POM作为依赖?

有没有办法将pom类型依赖项添加到我的POM并获取其所有模块?

JavaMail就是一个很好的例子.Maven Central Repo有一个父POM,名为:com.sun.mail:all:1.5.0 with modules:mail,mailapi,mailapijar,smtp,imap,gimap,pop3和dsn.

但是,"all"artefact只有一个文件:pom.xml 有没有办法将这个"all"artefact作为依赖项添加到我的POM并获取其所有模块?我90%肯定这不是在Maven中使用依赖项的正确方法,但我想从Stack上的专家那里听到它.

思路:

  • <dependencies><dependency>...<type>pom</type></dependency></dependencies>
  • <dependencyManagement><dependencies><dependency>...<type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

相关:Netbeans:类型为pom的maven依赖项

java dependencies pom.xml maven

30
推荐指数
3
解决办法
6万
查看次数

PreparedStatement.addBatch()可用于SELECT查询吗?

想象一下,我有100个SELECT查询,它们因一个输入而不同.PreparedStatement可用于该值.

我在Web上看到的所有文档都是批量插入/更新/删除.我从未见过用于select语句的批处理.

可以这样做吗?如果是这样,请在下面的示例代码中帮助我.

我想这可以使用"IN"子句来完成,但我更喜欢使用批处理的select语句.

示例代码:

public void run(Connection db_conn, List value_list) {
    String sql = "SELECT * FROM DATA_TABLE WHERE ATTR = ?";
    PreparedStatement pstmt = db_conn.prepareStatement(sql);
    for (String value: value_list) {
        pstmt.clearParameters();
        pstmt.setObject(1, value);
        pstmt.addBatch();
    }
    // What do I call here?
    int[] result_array = pstmt.executeBatch()
    while (pstmt.getMoreResults()) {
        ResultSet result_set = pstmt.getResultSet();
        // do work here
    }
}

我想这也可能是依赖于驱动程序的行为.我正在使用他们的JDBC驱动程序编写针对IBM AS/400 DB2数据库的查询.

java sql prepared-statement

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

在Google Guava(Java)中,为什么Iterables.getFirst()和getLast()不一致?

来自Google Guava JavaDocIterables:

static <T> T getFirst(Iterable<T> iterable, T defaultValue)
Run Code Online (Sandbox Code Playgroud)

- >返回第一个元素iterable或者defaultValue如果iterable为空.

static <T> T getLast(Iterable<T> iterable)
Run Code Online (Sandbox Code Playgroud)

- >返回的最后一个元素iterable.

static <T> T getLast(Iterable<T> iterable, T defaultValue)
Run Code Online (Sandbox Code Playgroud)

- >返回的最后一个元素iterabledefaultValue如果可迭代为空.

缺少一种静态方法(对我而言):

static <T> T getFirst(Iterable<T> iterable)
Run Code Online (Sandbox Code Playgroud)

- >返回第一个元素iterable.

你知道这种不一致的原因吗?

java guava

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

使用tee(或等效)但限制最大文件大小或旋转到新文件

我想捕获UNIX进程的输出,但限制最大文件大小和/或旋转到新文件.

我见过logrotate,但它不能实时工作.据我了解,这是一项并行运行的"清理"工作.

什么是正确的解决方案?我想我会编写一个小脚本来完成它,但我希望现有的文本工具有一个简单的方法.

想像:

my_program | tee --max-bytes 100000 log/my_program_log

会给...总是将最新的日志文件写为:log/my_program_log

然后,当它填充...重命名为log/my_program_log000001并启动一个新的log/my_program_log.

unix shell logging tee

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