小编dai*_*dai的帖子

Optional.of(null)会抛出NPE,我需要在调用方法之前验证null吗?

Java 8引入了Optional来处理NPE.在实际应用中,我无法理解问题.

我有方法A.

public void doSomethingA(String para) {
    Optional<String> name = Optional.of(para);
    if (name.isPresent()) {
        //do
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果para = null,它将抛出NPE.

方法B.

public void doSomethingB(String para) {
    if (para != null) {
        //do
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我检查para不为空,A和B之间有什么区别.

Optional的含义在哪里.

optional java-8

12
推荐指数
1
解决办法
4502
查看次数

如何在Ubuntu中配置Java 9

JDK 9是昨天到达的?我下载了jdk-9_linux-x64_bin.tar.gz。

目录

xx@xx:/usr/lib/jvm/jdk-9$ ls

bin  conf  include  jmods  legal  lib README.html  release
Run Code Online (Sandbox Code Playgroud)

它和java8有很大的不同。我喜欢配置与java8相同的配置,

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

但是java9没有jre。所以我就这样配置了(将它们添加到.bashrc文件中)

export JAVA_HOME=/usr/lib/jvm/java-9 
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

并运行源〜/ .bashrc

但是java版本仍然没有变化。我的操作系统是Ubuntu 14.04.3。

我做错了吗?

java linux ubuntu java-9

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

保持main方法运行的最佳方法

我用了一种方法来保持main方法的运行.

public static void main(String[] args) throws InterruptedException {
    while (true) {
        TimeUnit.SECONDS.sleep(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不确定这是最好的方式.

有人可以给我一些建议吗?

java program-entry-point

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

如何使用Java8获得上周和上个月

我有个约会,我需要知道约会之前的最后一周和最后一个月。

例如,

在2018年7月15日,它的最后一周是从7月2日到7月8日。它的最后一个月是6月1日到6月30日。

在2018年7月16日,它的最后一周是从7月9日到7月15日。它的最后一个月是6月1日到6月30日。

在2018年7月17日,它的最后一周是从7月9日到7月15日。它的最后一个月是6月1日到6月30日。

与基于Java-8的本地日期的第一个星期的第一天获取日期不同,我的问题是上周或上个月获取。

java datetime java-8

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

为什么主线程没有终止

据我所知,未捕获的线程将以当前线程终止。在以下代码中,main方法已经执行,但是为什么不终止呢?

public static void main(String[] args) {
    ExecutorService executorService = Executors.newFixedThreadPool(2);
    executorService.execute(() -> {
        while (true) {
            throw new RuntimeException();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

java program-entry-point executorservice threadpool

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

数据没有变化时是否需要更新

我想更新表\xef\xbc\x8c中的一行,更新前是否需要检查每一列是否有变化?

\n

mysql sql database sql-update

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