Java 9最大的功能之一将是Project Jigsaw定义的模块系统.在阅读Project Jigsaw:在 JavaOne 2015 的Hood下阅读幻灯片时,我注意到以下源代码:
// src/java.sql/module-info.java
module java.sql {
exports java.sql;
exports javax.sql;
exports javax.transaction.xa;
}
Run Code Online (Sandbox Code Playgroud)
这里有趣的是文件结尾.java并且似乎使用了两个新的关键字:module,和exports.Java 9中将引入哪些其他关键字?如何处理向后兼容性(即命名的函数或变量module)?
在实例化ArrayLists时,我习惯于看到这样的代码
ArrayList<Type> arr = new ArrayList<Type>();
Run Code Online (Sandbox Code Playgroud)
要么
ArrayList<Type> arr = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
但是今天我遇到了一个如下所示的ArrayList实例:
ArrayList<Type> arr = new <Type>ArrayList();
Run Code Online (Sandbox Code Playgroud)
发生了什么,为什么会给出"不安全的操作"编译警告?
说我有以下代码
public class A {
int x;
public boolean is() {return x%2==0;}
public static boolean is (A a) {return !a.is();}
}
Run Code Online (Sandbox Code Playgroud)
而在另一堂课......
List<A> a = ...
a.stream().filter(b->b.isCool());
a.stream().filter(A::is);
//would be equivalent if the static method is(A a) did not exist
Run Code Online (Sandbox Code Playgroud)
问题是如何使用A :: is类型表示法引用实例方法版本?非常感谢
我正在尝试创建一个tic-tac-toe程序作为心理练习,我将董事会状态存储为booleans,如下所示:
http://i.imgur.com/xBiuoAO.png
我想简化这个布尔表达式......
(a&b&c) | (d&e&f) | (g&h&i) | (a&d&g) | (b&e&h) | (c&f&i) | (a&e&i) | (g&e&c)
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是使用卡诺图,但没有在线求解器支持9个变量.
并且还有一个问题:
首先,我如何知道布尔条件是否已经尽可能简单?
第二个:上面简化的布尔条件是什么?
按照惯例,当我遇到这个问题时,我一直在研究更多的UIL Java练习表:
int _ = 8;
System.out.println(5_5);
Run Code Online (Sandbox Code Playgroud)
问题是"以下代码片段的输出是什么?"
我的第一个猜测是语法错误,但正确的响应实际上是55.
为什么是这样?
当我遇到这个问题时,我正在做一个练习计算机科学UIL测试表:
什么是以下输出?
int a = 5;
int b = 7;
int c = 10;
c = b+++-c--+--a;
System.out.println(a + " " + b + " " + c);
Run Code Online (Sandbox Code Playgroud)
我回答"由于语法错误没有输出",但我弄错了.真正的答案是4 8 1!(我自己测试过)
有人可以向我解释第4行是如何工作的吗?
谢谢
我有以下代码:
public class Test1 {
private static long value = 0;
public static void main(String[] args) {
Thread1 k = new Thread1();
Thread1 t = new Thread1();
k.start();
t.start();
while (k.isAlive() & t.isAlive());
System.out.println(value);
}
public static void addOne() {
long temp = value;
temp = temp + 1;
value = temp;
}
}
class Thread1 extends Thread {
public void run() {
for (int i=0; i<100; i++)
Test1.addOne();
}
Run Code Online (Sandbox Code Playgroud)
}
通常当我运行它时,我得到200的输出,但很少有我得到100和151的输出.是什么原因造成的?
java ×6
syntax ×4
arraylist ×1
boolean ×1
generics ×1
java-8 ×1
java-9 ×1
java-platform-module-system ×1
java-stream ×1
logic ×1