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的含义在哪里.
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。
我做错了吗?
我用了一种方法来保持main方法的运行.
public static void main(String[] args) throws InterruptedException {
while (true) {
TimeUnit.SECONDS.sleep(1);
}
}
Run Code Online (Sandbox Code Playgroud)
但我不确定这是最好的方式.
有人可以给我一些建议吗?
我有个约会,我需要知道约会之前的最后一周和最后一个月。
例如,
在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的本地日期的第一个星期的第一天获取日期不同,我的问题是上周或上个月获取。
据我所知,未捕获的线程将以当前线程终止。在以下代码中,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) 我想更新表\xef\xbc\x8c中的一行,更新前是否需要检查每一列是否有变化?
\n