【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

🌱
博主简介
是瑶瑶子啦
,一名大一计科生,目前在努力学习C进阶、数据结构、算法、JavaSE。热爱写博客~正在努力成为一个厉害的开发程序媛!


📜
所属专栏:
Java基础



往期博文回顾:
【Git篇】一文带你快速弄懂:Git、gitee、github简介、区别、关系,以及什么是版本管理?


🕵️‍♂️
近期目标:成为百粉小博主。持续输出JavaSE、C进阶、数据结构、算法相关的优质博客,


🙇‍♀️
写博客理念:力求用自己的语言加上自己的理解去阐述知识知识、技术(费曼学习法)。喜欢画图、思维导图去描述过程和知识之间的联系。


🎡
您的
点赞

关注

收藏

评论
,是对我最大的激励和支持!!!


🌺
:“再牛的程序员也是从小白开始,既然开始了,就全身心投入去学习技术”

什么是程序?

个人认为:语言是用于沟通的,而高级程序语言就是用于人和计算机来进行沟通的(但又是间接沟通的)。用高级语言编写的程序(理解为人给计算机布置的一个任务),我们能看得懂每一句话什么意思,但是计算机看不懂。所以这个任务,也只能叫做一个任务,当经过编译之类的行为后(把这个任务用机器能看懂的语言翻译一下),生成了可执行程序,其实就是叫做:计算能够完成的任务。

Java的4个重要特性:

  • 面向对象(oop:object oriented programing)

  • 封装(encapsulation)–隐藏对象的内部属性和行为,但提供相应的方法,让其他的对象来访问/改变/获取它内部的数据/行为。

  1. 好处1:隐藏对象的属性,所以保护对象内部的状态

  1. 好处2:提高代码的可用性和可维护性(改起来比较方便):可以单独的去改变、扩展对象的行为(对象具有的方法)

  1. 好处:禁止对象之间不良交互,提高模块化(这个目前还没有太get到)

  • 继承(inheritance)–给对象从基类(父类)获取字段(属性)和方法(行为)的能力。提供了代码的重用性(也可以理解为简化了书写),在不修改类的情况下,给目前有的类,添加新的特性。

  • 多态(polymorphism)

  • 抽象(abstraction)–由具体抽取而来。(比如接口的创建,就是抽象的体现。目的是,分离类的行为和具体的实现细节

  • 健壮性:强类型机制、异常处理、垃圾回收机制

  • 解释型语言:

  • 和C语言不同,编译后的可执行文件可以直接被机器执行。java编译后生成的,class文件不能直接被机器执行,需要被jvm(java virtual machine)中的解释器(interpretor)来执行(虚拟机将.class文件解释给本地系统执行)。但正是这点,也就成就了java的一次编译,随处运行。

  • 跨平台性

  • 根本原因:jvm–做翻译&解释工作

【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量

注意:不同平台所安装的jvm版本不同

JVM介绍–什么是JVM

JVM(java virtual machine)是一台虚拟计算机,
具有指令集,并使用不同的存储区域。包含在JDK(Java Developer’s Kit)

  • 作用:执行指令,管理数据、内存、寄存器。

  • JVM是由c/c++编写而成,所以不同的平台需要安装不同的jvm(c/c++不能跨平台)

  • JVM屏蔽了底层运行平台的差别,实现了”一次编译,随处运行“

JDK介绍–什么是JDK

JDK(Java Developer’s Kit) –java 开发者的工具集。通俗来说,就是
开发人员开发Java程序时所需要用到的工具(比如常见的:javac.exe \ java.exe)
,JDK 包含了JRE(Java Runtime Enviroment)
&&开发工具集
(Toos&Tool APIs)—–编辑Java源码的编辑器-javac、Java程序调试和分析工具(JConsole,Web Services等工具软件)。

  • 作用:

  • JRE:

【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量

来源–网图

JRE介绍–什么是JRE

JRE(Java Rountime Enviroment)–java运行工具,包括:JVM&&Java基础类库(Java SE API)

JDK&&JRE&&JVM

包含关系:

  • JDK=JRE+Tools&Tool APIs(开发者工具)

  • JRE=JVM+Java SE API(Java类库)

使用时的执行流程:

  • 开发者视角(需要开发java程序):需要安装JDK

  1. 首先使用JDK调用Tools&Tool APIs(开发者工具)编写好Java程序–xxx.java

  1. 再次调用Tools&Tool APIs中的javac.exe(编译程序)来编译.java文件(将java文件编译成字节码.class文件)

  1. 调用java.exe来启动JRE

  1. 在JRE上运行JAVA字节码(加载特定的.class文件,调用这个class文件中的main方法(让.class文件跑起来))–JVM解释器解释字节码文件,在解释的同时还要调用Java SE类库,再在虚拟机上执行.

虚拟机运行加载class,需要先找到main函数入口,才会执行后面的程序和功能

  • 使用者视角(不开发,只想直接运行编写好的java程序):只需要安装JRE

a. 同上d

【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量

根据我的理解,画的流程图

JDK-配置环境变量

windows系统下:

  • 为什么要配置环境变量?

使在命令行执行命令时,不管在哪个目录下,jdk相关命令都能生效

在WIn10系统上,如果在当前目录下,执行的程序没有找到,win10系统会在系统已有的一个名为Path的环境变量中去查找,如果仍为找到,则会报错.

  • Windows的环境变量窗口在哪里?

此电脑–>属性–>高级系统设置–>高级–>环境变量

  • 用户变量&系统变量的区别?(通常”环境变量”指的是”系统环境变量”)

  • 用户环境变量:只对当前用户起作用.

  • 系统环境变量:对所有用户起作用

  • 关系:系统一般会先检查用户环境变量,之后再检查系统环境变量.如果有同名变量名,并不会合并.

因为java.exe和javac.exe都在bin目录下,所以环境变量要配到bin目录,方可在任意目录启动java.exe和javac.exe

【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量

【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量

Linux系统下:

因为Linux系统目前用的不多,但是考虑到之后要学习,这里暂记一下

Linux环境变量配置全攻略

🥗今天就先到这儿啦,如果觉得文章有用还请大家
点赞,评论,收藏~

虽然之前匆匆忙忙过了一遍JavaSE但基础肯定没有打牢,这次重新学习的话,对很多知识理解了不少,但

可能在理解方面可能会存在不正确或者理解偏了的情况,还请各位大佬多多指出,我会很高兴去的~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/142467.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!