当从eclipse切换到IDEA的时候,添加SDK让我懵逼了一下。
SDK是什么鬼东西,用eclipse的时候配置的都是jdk,那就还配jdk吧,可以用。
说来惭愧,写了很长时间的代码,概念性的东西还搞不清楚,索性从头再过一下。
SDK:soft development kit 的简称,软件开发包,我们在说sdk时,一定要在前面加上一个定语,那就是谁谁的sdk,比如在安卓开发中就是android sdk,java程序员用的是jdk。
JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。(读者可以考虑下为啥安装JDK之后会有两个jre的目录?)
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。
JVM :Java Virtual Machine的简称,就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。(Java程序为什么能跨平台执行?)
Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。主要做一般的java应用, 比如, 应用软件/ QQ之类的通信软件等等。
Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。主要面向嵌入式等设备应用的开发, 比如手机游戏等。
Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。主要做企业应用, 比如公司网站, 企业解决方案等。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。(API和接口(interface)有哪些不同。)
Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java API、Java编程语言及许多第三方框架(如Spring、Struts等)构成。要成为强大的程序员,调度这些东西得像去菜市场买菜算账一样熟练才行。