Java学习前,需要掌握的一些基础知识
- JDKJREJVM区别与联系
- 安装JDK时为什么有两个JRE
- 细说JDK目录结构
在学习Java之前,对于一些基础知识的总结:
在学习java之前,第一件事便是搭建Java开发环境。JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。
JDK、JRE、JVM区别与联系
JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
JRE : Java Runtime Enviromental(java运行时环境)。也就是我们说的JAVA平台,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。
JVM:Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。
下图很好的表面了JDK,JRE,JVM三者间的关系:
安装JDK时为什么有两个JRE
安装JDK后,安装目录中出现两个版本的JRE文件,其中之一在JDK外部,一个在JDK内部,这是所谓的专用JRE和公用JRE;
- 专用JRE
专用JRE是给JDK中包含的工具工具提供运行环境;专用JR没有注册表设置,并且完全包含在仅对JDK已知的Java目录位置; - 公用JRE
公用JRE可由其他Java应用程序使用(如浏览器插件或者Swing界面的客户端),并且包含在JDK外部,公共JRE会注册到Windows注册表(位于 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft)中,公共JRE可以使用“添加/删除程序”进行删除,并且还会注册到浏览器;换句话说,公共JRE就是为运行加载到计算机中的JAVA程序来提供运行环境的;
细说JDK目录结构
装好JDK后,我们要先明白JDK里面都包含了写什么东西,主要有什么作用!下图为JDK8的安装目录:
bin:这是存放java启动命令以及其他开发工具命令(如javac)的,该目录应当保存到PATH变量中。
- javac : 编译器,将源程序转成字节码
- jar : 打包工具,将相关的类文件打包成一个文件
- javadoc : 文档生成器,从源码注释中提取文档
- jdb : debugger,查错工具
- java : 运行编译后的java程序(.class后缀的)
- appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
- Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
- Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
- Jconsole: Java进行系统调试和监控的工具
lib:是JDK工具用到的类库及其他文件。tools.jar就包含了对开发工具的支持功能库;dt.jar就是所谓DesignTime的东西,估计是给JavaBean和IDE用的;jconsole.jar自然是给jconsole工具用的了;htmlconverter.jar是用来把用applet的HTML转成所谓Java Plug-In的,即标签改为。
include:包含C语言头文件,用于编写JNI程序和JVMDI(Debugger Interface)的程序时用到,好像还有JVMTI。
jre:这就是JDK自含JRE的根目录了,这是系统属性java.home所指向的目录。下图为JRE的目录结构:
- jre/bin:包含执行文件和dll等库文件,是JVM需要的,可执行文件和jdk/bin是一样,本目录不需要被PATH所包含。
- jre/bin/client:包含用Client模式的VM时需要的dll库。
- jre/bin/server:包含用Server模式的VM时需要的dll库。
- jre/lib:包含核心代码库(Java平台的core API),如rt.jar是所谓的bootstrap的类库,还有很多其他需要的子目录和资源文件等等。注意这个lib目录和jdk/lib是不一样的。
- jre/lib/ext:是Extension Class Loader装入jar类库的地方,如localdata.jar包含的是java.text和java.util需要的东西。
- jre/lib/security:包含JVM安全需要的设置文件,JVM信任的证书也在这里。
- jre/lib/applets:用于applet需要用到的jar库文件,Applet类通过Applet Class Loader从本地文件系统中预加载,这样为减小大型 Applet 的启动时间提供了一些方式,好像从网上已经下载完成了一样。
- jre/lib/fonts:字体文件。
- jre/bin:包含执行文件和dll等库文件,是JVM需要的,可执行文件和jdk/bin是一样,本目录不需要被PATH所包含。
不积跬步,无以至千里!!!
Java学习前,需要掌握的一些基础知识相关推荐
- Kotlin学习(一):Kotlin基础知识
Kotlin学习(一):Kotlin基础知识 定义变量常量 在Kotlin中,定义变量时有以下几点与java不同: 位置不同:在 Kotlin 中,数据类型要放到变量后面,并且用冒号(:)分隔,这正好 ...
- java爬虫面试题_Java 网络爬虫基础知识入门解析
前言 说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做 ...
- pwn学习总结(四)—— 堆基础知识(持续更新)
pwn学习总结(四)-- 堆基础知识(持续更新) 前言 chunk 使用中(分配后) 空闲中(释放后) 堆块大小 空间复用 bins fastbin unsorted bin small bin 前言 ...
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备...
相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结. 所以下面给大家分享一下我的经验: 第一部分 介绍微信公众号的一些简单 ...
- 3D视觉学习计划之PCL库的基础知识
3D视觉学习计划之PCL库的基础知识 一.PCL库的概述 PCL是一个大型跨平台开源C++编程库,它在吸收了前人点云相关研究基础上建立起来,实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取. ...
- 从零开始学习VIO笔记 --- 第一讲:基础知识(四元数,李代数)
从零开始学习VIO笔记 --- 第一讲:基础知识(四元数,李代数) 一. 向量的内积与外积 二. 旋转与平移 2.1 旋转表示 --- 旋转矩阵R 2.2 平移向量 2.3 变换矩阵T与齐次坐标 2. ...
- Java学习笔记系列-入门篇-计算机基础
Java学习笔记 Java学习笔记是一个持续更新的系列,工作多年,抽个空对自身知识做一个梳理和总结归纳,温故而知新,同时也希望能帮助到更多正在学习Java 的同学们. 本系列目录: 入门篇 计算机基础 ...
- 学习游戏软件开发需要哪些基础知识
随着互联网技术的不断进步,游戏动画产业得到了大众的接受和尊重,现已发展成为最受欢迎的产业之一.许多游戏开发公司也变得越来越繁荣.许多游戏玩家开始转向游戏开发,学习游戏开发.他们必须了解游戏开发的基础需 ...
- 【超全汇总】学习数据结构与算法,计算机基础知识,看这篇就够了【ZT帅地】2020-3-7
https://blog.csdn.net/m0_37907797/article/details/104029002 由于文章有点多,并且发的文章也不是一个系列一个系列发的,不过我的文章大部分都是围 ...
最新文章
- 关系抽取论文整理,核方法、远程监督的重点都在这里
- 视频检测分割--Deep Feature Flow for Video Recognition
- 2_初学者快速掌握主流深度学习框架Tensorflow、Keras、Pytorch学习代码(20181211)
- 匿名函数、冒泡排序,二分法, 递归
- 2017.10.25 书柜的尺寸 失败总结
- 软件维护复杂度的因素
- OLAP-druid-大数据Week13-DAY2-druid
- 【通讯录】Excel通讯录导入手机详细教程
- 小米的服务器地址怎么修改,小米无线路由器IP地址怎么修改
- 抗体链接InP/ZnS量子点|量子点InP/ZnS表面修饰抗体偶联服务-齐岳生物
- 秦小明 第六讲 投融资,资产运作
- wordpress网站添加百度导航地图
- font-style 属性 oblique 是什么意思
- 1. 从键盘输入一系列字符(以回车符结束,字符的个数不超过 200 个),统计输入字符串中数字与非数字字符的个数,并将计数结果输出。
- Magica Cloth服装模拟插件分享
- 第三方SDK开发入门
- 王者nba服务器维护,王者NBA新手常用问题FAQ大全
- css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
- Android 9 P静默安装/卸载App适配终极指南
- 原生JavaScript实现对象的完全深度拷贝
热门文章
- monkeyrunner API接口文档内容
- powerdesigner 生成实体代码 附加生成xml
- 机器学习 —— 概率图模型(推理:采样算法)
- Access“INSERT INTO 语句的语法错误”解决办法
- Java实现邮箱找回密码
- OpenCV3学习(11.7) BRISK特征检测器及BRISK描述符
- cad图形如何导入到奥维地图_【详细教程】奥维地图上查看项目的线路图或平面图...
- Type(类型判断)
- L1-069 胎压监测 (15 分)
- 计算机网络系统由什么系统组成,从资源构成上看计算机网络系统由什么构成