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
JavaSE前期准备1的更多相关文章
- Hadoop集群搭建-01前期准备
Hadoop集群搭建-05安装配置YARN Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hado ...
- 用大白话聊聊JavaSE -- 如何理解Java Bean(一)
首先,在开始本章之前,先说一个总的概念:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,很多初学者,包括当年的我自己,总是被这些专 ...
- javaSE基础07
javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- javaSE基础05
javaSE基础05:面向对象 一.数组 数组的内存管理 : 一块连续的空间来存储元素. Int [ ] arr = new int[ ]; 创建一个int类型的数组,arr只是一个变量,只是数组的一 ...
- javaSE基础04
javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...
- javaSE基础03
javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...
- Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备四)
接下来,分析uilib.h中的WinImplBase.h和UIManager.h: WinImplBase.h:窗口实现基类,已实现大部分的工作,基本上窗口类均可直接继承该类,可发现该类继承于多个类, ...
- Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备一)
上节中提到在遍历创建控件树后,执行了以下操作: 1. CDialogBuilder构建各控件对象并形成控件树,并返回第一个控件对象pRoot: 2. m_pm.AttachDialo ...
随机推荐
- ArcMap连接oracle、oracle配置
服务器:Oracle 11g 客户端:arcgis desktop 10.4.1.oracle 11g 32位客户端 客户端:arcgis server 10.4.1.oracle 11g 64位客户 ...
- 除了增删改查你对MySQL还了解多少?
目录 除了增删改查你对MySQL还了解多少? MySQL授权远程连接 创建用户.授权 客户端与服务器连接的过程 TCP/IP 命名管道和共享内存 Unix域套接字文件 查询优化 MySQL中走与不走索 ...
- 14图像边缘检测的sobel_ctrl控制模块
一设计功能 计算得到的dxy,再通过和阈值比较大小,输出po_sum作为VGA的输入,在显示器器上显示图像的轮廓. 二设计思路 根据前一篇博客对sobel算法的介绍,先通过FIFO的双流水线操作采集到 ...
- vue&uniapp环境搭建以及项目创建(webstorm)
以下是针对webstorm用户上手uniapp框架的学习 vue环境搭建以及配置(脚手架搭建) 首先要明确三样东西 npm:node.js的包管理器 webpack:主要用途是通过CommonJS 的 ...
- java 队列
Java中的list和set有什么区别 list与set方法的区别有:list可以允许重复对象和插入多个null值,而set不允许:list容器是有序的,而set容器是无序的等等 Java中的集合 ...
- springboot服务引入外部jar包在windows运行正常,在linux环境上无法加载到引入jar包的类
一.问题描述 最近开发了一个springboot程序,需要依赖第三方jar包,这个jar包无法直接通过pom远程仓库下载,需要从自己本地引入,于是配置pom文件如下:将本地jar包引入工程,syste ...
- 如何从https://developer.mozilla.org上查询对象的属性、方法、事件使用说明和示例
在https://developer.mozilla.org搜索要在前面加上指令 搜索之后点进去 进入之后就是这样的 在页面左边你可以选择自己要查询的对象 里面就是会有属性.方法.事件使用说明和示例.
- Cookie与HttpSession对象
Cookie与HttpSession对象的作用 维护客户端浏览器与服务端会话状态的两个对象. 由于HTTP协议是一个无状态的协议,因此服务端不会记录当前客户端浏览器的访问状态 有些时候需要服务端能够记 ...
- 12 Web Development Trends That Will Dominate 2022
12 Web Development Trends That Will Dominate 2022 (mindinventory.com) Progressive Web Apps (PWAs) An ...
- 技术架构:IT生存之道
Technical architecture: What IT does for a living (cio.com) Technical architecture: What IT does for ...