前世
java的历史来源背景
背景在网上百度随便都能找的到就不细说了,作为一个之前学习C++的程序员来说,学习java尽量对比学习,理解可以更加透彻。 首先:java相对C++摒弃了哪些特性,又增加了哪些特性?
java的包、jdk、jar包、jre
包(package)
package 特点
- 程序中如果有package语句,该语句一定是源文件中的第一条可执行语句;
- package语句的前面只能有注释或空行;
- 一个文件中最多只能有一条package语句;
- 包的名字有层次关系,各层之间以点分隔(上例中的“czf.abc.aaa”)
- 包层次必须与Java开发系统的文件系统结构相同;
- 通常包名中全部用小写字母;
- 当使用包说明时,程序中无需再引用(import)同一个包或该包的任何元素;
- import语句只用来将其他包中的类引入当前名字空间中。而当前包总是处于当前名字空间中.
package使用注意
- 同一个源文件中的类,都在同一个包中,同一个包中的内容互相访问,不用导包;
- 导包的时候 以下两句:
import czf.*;
import cn.Info;
这两句,只在编译的时候有后者稍快一点,在运行的时候没有任何区别。
- 如果要设置classpath ,要设置到最外层的文件夹所在的目录上,比如:
package czf.abc;
set classpath=cn的所在的文件夹名称
- 对于父包和子包,在使用上没有任何关系,只要不在一个包中,引用的时候就必须导入包;
JDK(Java Development Kit)简单理解就是Java开发工具包
JAR包
JAR(Java ARchive,Java 归档)是一种与平台无关的文件格式,可将多个文件合成一个文件。用户可将多个 Java applet 及其所需组件(.class 文件、图像和声音)绑定到 JAR 文件中,而后作为单个的简单 HTTP(Hypertext Tranfer Protocal,超文本传输协议)事务下载到浏览器中,从而大大提高下载速度。JAR格式也支持压缩,从而减小了文件的大小,进一步缩短下载时间。另外,applet编写者也可在 JAR 文件中用数字签名的方式签写各项以确认其来源。它用 Java 编写,可与现有的 applet 代码完全向后兼容且可充分扩展。
jar包的作用
- 发布和使用类库
- 作为应用程序和扩展的构建单元
- 作为组件、applet 或者插件程序的部署单位
- 用于打包与组件相关联的辅助资源
使用JAR文件有以下好处
- 安全。能够对JAR文件进行数字签名,只让能够识别数字签名的用户使用里面的东西。
- 加快下载速度。在网上使用applet时,如果存在多个文件而不打包,为了能够把每个文件都下载到客户端,需要为每个文件单独建立一个HTTP连接,这是非常耗时的工作。将这些文件压缩成一个JAR包,只要建立一个http连接就能够一次下载所有的文件。
- 压缩。使文件变小,JAR的压缩机制和zip完全相同
- 包封装。能够让JAR包里面的文件依赖于统一版本的类文件。
- 可一致性。JAR包作为内嵌在Java平台内部处理的标准,能够在各种平台上直接使用。
JRE(Java Runtime Enviroment)是Java的运行环境
包含java程序必须的环境集合,包含了JVM标准实现及java核心类库。它包括了Java虚拟机、Java平台核心类和支持文件。
java的主流IDE
- eclipes
- idea
java虚拟机
JVM(Java虚拟机)是一个抽象机器。它被称为虚拟机,因为它实际上不存在。它是一个规范,提供可以执行Java字节码的运行时环境。它还可以运行那些用其他语言编写并编译为Java字节码的程序。
JVM可用于许多硬件和软件平台。JVM,JRE和JDK是平台相关的,因为每个操作系统的配置彼此不同。但是,Java与平台无关。JVM有三个概念:规范,实现和实例。
JVM主要执行以下任务:
1、加载代码
2、验证代码
3、执行代码
4、提供运行时环境
SDK
soft development kit,软件开发工具包,这是一个大的概念,比如你要开发某一应用,那你可能需要相关的SDK,你开发安卓应用,你就需要android SDK,你开发java应用程序,你可能就要java SDK。
java中jdk、jre、jvm的运行关系
java、jre、jdk区别
JVM是一个规范,提供可以执行Java字节码的运行时环境。
JRE = 运行Java应用程序的JVM +库。
JDK = JRE +开发Java应用程序的工具。
来源:oschina
链接:https://my.oschina.net/u/4380330/blog/3413682