Java并发实践仍然有效吗?我想知道书中描述的思想、概念和实现是否仍然符合最新的Java版本。
我这么问是因为最新的版本是2006年完成的。
Java并发实践仍然有效吗?我想知道书中描述的思想、概念和实现是否仍然符合最新的Java版本。
我这么问是因为最新的版本是2006年完成的。
我如何从Java 7中的String对象创建Java .nio.file. path对象?
I.e.
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
在哪里?是缺少的使用textPath的代码。
我已经安装了从oracle网站下载的JDK 7u7。但是安装完成后,终端仍然显示java版本6
$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
你知道为什么Java 7没有出现吗?
答: 好的,问题已经解决了。以下是答案: 我发现我的终端有一个.bash_profile, java主变量被设置为1.6
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
所以这就是每次我打开新终端窗口时导致问题的行。 只要去掉这条线就能解决问题。您仍然需要遵循@aleroot所说的,但如果这对您不起作用,请检查.bash_profile(或.bashrc)设置文件,以查看您之前是否导出过任何java版本。
java 7中的diamond操作符允许如下代码:
List<String> list = new LinkedList<>();
然而在Java 5/6中,我可以简单地写:
List<String> list = new LinkedList();
我对类型擦除的理解是它们是完全相同的。(无论如何泛型都会在运行时被删除)。
为什么要为钻石费心呢?它允许哪些新的功能/类型安全?如果它没有产生任何新的功能,他们为什么要把它作为一个特性来提及呢?我对这个概念的理解有缺陷吗?
我正在使用m2eclipse在Eclipse中编译一个项目。我在Eclipse中设置JDK路径,如下所示:
Windows-->preferences-->installed jres--> jdk1.7.xx path
但是这显示了一个错误
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?