JavaSE前期准备1


历史(建议了解即可)

一、1990年,美国Sun公司的“Stealth计划”(后改名为“Green计划”)目标设置在家用电器等小型系统的程序语言,准备应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信

二、1996年5月23日,JDK1.0开始发行(前期Java的版本只有两个)

三、2005年6月,Java One大会中,J2SE正式更名为JavaSE(其余二者也更名)

版本 应用场景 支持操作 特性
JavaSE 开发和部署在桌面、服务器、嵌入式环境、实时环境 支持Javaweb服务开发的类 为JavaEE,JavaME提供基础,其中包含Java的核心应用编程接口API(Application Programming Interface)
JavaEE 开发和部署在服务器端Java应用程序 可以实现企业级的面向服务体系结构(SOA)、web2.0应用程序 提供web服务、组件模型、管理和通信API
JavaME 为移动设备、嵌入式设备(手机、PDA、电视机顶盒、打印机)上运行的应用程序提供环境 其中包括用户界面、安全模型、内置的网络协议、对动态下载的连网和离线应用程序的丰富支持  

四、2009年4月20日,Oracle(甲骨文)公司以74亿美元价格收购Sun公司

详细:Java(计算机编程语言)_百度百科 (baidu.com)

API + JVM = JRE + 开发工具 = JDK (建议后期深入学习时学习更深层的内容)

一、Java应用的运行环境下会执行的代码安全性检查机制

1、加载代码:类加载器

2、检查代码:字节码检验器

(1)4遍检查后未出现报错后保护

  • 类符合JVM规范的类文件格式
  • 无访问限制违例
  • 代码未引起操作栈上溢或下溢
  • 所有操作代码的参数类型将总是正确
  • 无非法数据转换发生
  • 对象域访问是合法的

3、执行代码:运行时的解释器(采用沙箱模式:Java程序的的代码和数据都限制在一定内存空间里执行,不允许程序访问该内存外的内存(Applet程序:还不允许程序访问客户端机器的文件系统

JVM

Java Virtual Machine:Java虚拟机,即软件模拟的计算机

包含Java编译器(Javac.exe)和Java解释器(Java.exe)(Java解释器只是一个基于JVM平台的程序,不能单独执行,必须依赖于JVM)

一、包含及生成

1、本身具有的机器码:部分常用的代码,是CPU可直接解读的数据,保存在.class文件中

2、字节码文件(扩展名为.class的文件):Java源码经过编译器编译后产生的文件

(1)在一定程度上解决了解释性语言执行效率低的问题,又保留了解释性语言可移植的特点

(2)Java程序运行高效的原因:“一次编译,多次运行”,即可以在任何具有JVM的计算机或者电子设备上运行(不同的平台有适合自己平台的虚拟机)

3、字节码:与平台无关的二进制码,不面向特定的处理器,只面向虚拟机

(1)机器码与字节码加载的前后顺序:先编译器将Java源码编译成字节码,后解释器将字节码转译为机器码(本文JVM三中有详解)

二、解释器

1、编译与解释并存的解释(Java的特点之一):

(1)运行过程

  • Java源文件经编译器编译后形成JVM可运行的字节码文件
  • 运行解释器将JVM上运行的字节码解释为具体平台的机器码,就可以运行该Java源文件形成的程序

(2)可移植性:由运行过程可知任何一台终端只要配备了Java解释器,就可以跨平台运行这个程序,不管这种字节码是在何种平台上生成的

2、执行操作:.Java(源文件)—编译—>.class(字节码文件)

JRE

Java Runtime Environment:Java运行环境,即运行Java程序所必须的环境的集合

包含JVM标准实现、Java核心类库(API)及支持文件,不包含开发工具(编译器、调试器等)

JDK

Java Development Kit:Java程序开发的工具包,是整个Java的核心,即Java的SDK

Java Software Development Kit:Java软件开发包,是厂商提供的集成封装的库(library),辅助开发Java及其相关软件的相关文档、范例和工具的集合

可以认为JDK是SDK的一个子集(JDK是开发Java程序的一个平台,开发其他程序的SDK可以不使用JDK)

包括了Java的开发环境和运行环境(JRE)以及一堆Java工具(tools.jar等)和Java基础的类库(rt.jar等)等

  区别 联系
JDK  开发工具包,用来开发Java程序,是面对Java的程序开发人员 参考Java源文件的编译和执行过程
JER 运行环境,面向的是Java程序的使用者(也就是说,要使用Java开发程序,则必须安装JDK,只想运行Java程序,那只需安装JRE

一、安装后的目录结构:

1、JDK安装目录及其子目录分析

(1)如:JDK根目录为:C:/Program Files/java/jdk1.6.0_16(下面以jdk代替)

介绍相关目录:

  • jdk:jdk根目录,包含版权、许可及 README 文件以及Java核心平台API的源文件归档(src.zip)
  • —jdk/bin:jdk开发工具可执行文件目录,里面包含有Javac.exe(编译器)、Java.exe等可执行程序
  • —jdk/lib:jdk开发工具使用的类库目录,主要包括tools.jar和dt.jar
  • —jdk/Jre:jdk开发工具所使用的Java运行时环境的根目录,除了文档外,它与可部署的JRE完全相同
  • —jdk/demo:jdk自带的一些例子,含有源代码的程序示例
  • —jdk/include:c的头文件,用与支持native-code库使用JVM Debugger接口
  • —jdk/src.zip:jdk所提供的的类库的源代码文件

注:tar.exe(打包器)

(2)jdk/jre/下的一些子目录:

  • jdk/jre/:Java运行环境存放目录
  • —jdk/jre/bin:jre执行文件及DLL库,可执行文件与jdk/bin相同,不必将该目录放在PATH环境变量中
  • —jdk/jre/bin/client:Java client VM and DLL
  • —jdk/jre/bin/server:Java servlet VM and DLL
  • —jdk/jre/lib: Java程序运行时环境使用的代码库、属性设置和资源文件,主要包括:
  •   * rt.jar:系统引导库(构成Java平台核心API的RunTime 类)
  •   * charsets.jar:字符转换类及其它与国际化和本地化有关的类
  • —jdk/jre/lib/ext:Java平台扩展类库的缺省安装目录,如JavaHelp jar 就可以放在此目录下
  • —jdk/jre/lib/security:包含用于安全管理的文件,这些文件包括安全策略 (Java.policy) 和安全属性 (Java.security) 文件
  • —jdk/jre/lib/applet:对applet支持的一些资源文件
  • —jdk/jre/lib/fonts:TrueType 字体文件

3、Java目录中存在两个Jre目录以及三个lib目录

(1)、两个Jre目录,分别为:

  • C:/Program Files/java/jre6:可部署的JRE,执行Java程序
  • C:/Program Files/java/jdk1.6.0_16/jre:JDK中自带并使用的JRE,开发Java程序

总体来说,两个JRE文件夹内容基本相同,区别主要体现在工作职责上,也就是不同的JRE负责不同的工作范围

如:使用Javac.exe来编译Java程序时,系统会优先使用jdk/bin下的可执行文件,使用的运行环境也是jdk下的jre

(2)、三个lib目录,分别为:

  • C:/Program Files/Java/jre6/lib:jre下的,只是运行Java程序的jar包,是为JVM运行时候用的,包括所有的标准类库和扩展类等
  • C:/Program Files/Java/jdk1.6.0_16/lib:jdk下的,包括Java开发环境的jar包,是给JDK用的,例如JDK下有一些工具,可能要用该目录中的文件,如编译器等
  • C:/Program Files/Java/jdk1.6.0_16/jre/lib:jdk/jre下的,是开发环境中运行时需要的Jar包,最典型的是导入的外部驱动Jar包,因为编译时,系统找的是Jdk下的Jre,而不是最外层的Jre

原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/244373.html

(0)
上一篇 2022年4月17日
下一篇 2022年4月17日

相关推荐

发表回复

登录后才能评论