Java特性和优势
- 简单性
- 面向对象
- 可移植性(最重要的优势)write once, run anywhere
- 高性能
- 分布式
- 动态性
- 多线程
- 安全性
- 健壮性
Java三大版本
- JavaSE: 标准版(桌面程序,控制台开发……)(基础)
- JavaME: 嵌入式开发(手机,小家电……)
- JavaEE: E企业级开发(web端,服务器开发……)(进阶)
JDK JRE JVM
- JDK: Java Development Kit
- JRE: Java Runtime Environment
- JVM: Java Virtual Machine
卸载JDK
- 控制面板>>程序卸载>>卸载JDK
- 删除JDK的安装目录
- 删除JAVA_HOME
- 删除path下关于Java的目录
- 检查JDK是否删除(java -version)
安装JDK
JDK8或者JDK1.8是由于自从JDK1.5/JDK5命名方式改变后遗留的新旧命令方式问题。所以JDK8或者JDK1.8也是同一个东西
- 搜索JDK,找到下载地址
- 下载电脑对应版本
- 双击安装JDK
- 记住安装路径
- 配置环境变量(配置环境变量的目的是为了使java.exe 和 javac.exe 等可执行文件在任意路径下都可以执行,而不只是只能在JDK的安装目录下执行)
- 开始右键>>系统>>高级系统设置>>环境变量
- 新建JAVA_HOME(Java安装路径)
- 配置path变量(%JAVA%\bin %JAVA%\jre\bin) 在Java8之后在安装jdk时便不再提供jre的安装,而是让我们根据自己的需要自行的安装
- 以管理员身份打开Java的安装目录
- 输入命令:bin\jlink.exe –module-path jmods –add-modules java.desktop –output jre(实际上这是在运行bin目录中的jlink.exe程序,我们进入bin目录再运行:jlink.exe –module-path jmods –add-modules java.desktop –output jre 指令,效果也是一样的)
- 回车后指令执行,我们就会在安装目录下得到一个jre文件夹了
安装jdk时为什么会有两个jre文件
安装jdk时安装目录中会有两个jre文件,其中一个在jdk内部,另一个在jdk外部,这就是所谓的专用JRE和公用JRE
专用JRE
- 安装jdk时,会安装一个专用JRE,并且可以选择安装一个公共副本(即公共JRE)。
- 运行jdk中包含的工具需要专用JRE。
- 专用JRE没有注册表设置,并且完全包含在仅对jdk已知的Java目录位置中。
公共JRE
- 公共JRE可由其他Java应用程序使用,并且包含在jdk外部。
- 公共JRE会注册到Windows注册表中。
- 公共JRE可以使用”添加/删除程序”进行删除,并且还会注册到浏览器。
运行Java程序时,只需要合适的JRE就能够运行,而并不需要使用JDK中的开发工具(如javac、java等等)。公共JRE就是为运行加载到计算机中的Java程序来提供运行环境的。也就是说,如果并不需要开发Java程序时,而仅仅是运行他人的已有的Java程序的时候,仅仅安装这个在JDK外部的JRE文件就足够了。
但是如果需要开发Java程序,那么就必须安装jdk,jdk中包含专用JRE和开发工具,这些开发工具需要专用JRE才能够使用,也就是说专用JRE是为开发Java程序准备的。
同时要注意,这两个JRE文件中的内容是有区别的,所以不能够简单的进行替换。
注意平时所说的”Java自动更新”根本不是所安装的JDK版本的更新,它指的是这个公用JRE运行时环境的更新,这个更新为的是让你的计算机能够使用最新版本正常的运行一些网站或者Web应用等等当中的Java程序,如果不及时更新的话,可能在浏览一些网站或者Web应用时,不能够正常的交互和显示,这与JDK没有任何关系。所以如果想要升级JDK版本,只能够从官网中下载最新版本JDK,重新安装。
编译型和解释型
计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机械语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机械码。
编译型语言(compile)
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机械码,并包装成该平台所能识别的可执行性程序的格式。
特点
在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机械语言的文件,如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。
总结
- 一次性编译成平台相关的机械语言文件,运行时脱离开发环境,运行效率高。
- 与特定平台相关,一般无法移植到其他平台。
- 现有的C、C++、Objective等都属于编译型语言。
解释型语言
使用专门的解释器对源代码逐步解释成特定平台的机械码并立即执行。
特点
解释型语言不需要事先编译,其直接将源代码解释成机械码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。
总结
- 解释型语言每次运行都需要将源代码解释成机器码并执行,效率较低。
- 只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植。
- Python等属于解释型语言。
Java程序运行机制
Original: https://www.cnblogs.com/ylfmax-blog/p/14292587.html
Author: 不不不巧
Title: Java入门
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573608/
转载文章受原作者版权保护。转载请注明原作者出处!