学习笔记 : IDEA为何多处设置JDK,有什么区别呢 ?

设置编译器的版本

编译器的版本,既生成class文件的jdk版本 : Settings > Build,Execution,Deployment > Complier > Java Compiler

设置Modules中的SDK和language level版本

这里选择Modules中的SDK和language level的默认版本 : Project Structure > Project Settings > Project

注意 : Language Level为限定项目编译检查时最低要求的 JDK 特性

设置项目实际的Language Level版本

Project Structure > Project Settings > Modules > Sources

设置项目实际的SDK版本

相比整个工程设置语言级别可以更加地精确控制 : Project Structure > Project Settings > Modules > Dependencies

❓ IDEA为何多处设置JDK,有什么区别 ?

project SDK : 表示开发环境使用什么JDK来编译
language level : 表示项目最低可以使用什么版本的JDK通过

至于说两者之间的区别,让我来给你举个例子 :若设置project SDK为1.8,language level设置为1.7,此时若使用lambda表达式,IDEA则会帮你标红并提醒你若这么写,项目未来可就不能使用1.7版本的JDK编译啦 ( languang level用来保证代码最低可以被什么级别的 JDK 编译 ) ,尽管你使用的是SDK1.8 · · ·