java环境配置及原理详解

1.java跨平台的本质

我们谈到java,总是提到跨平台这个词。那么java语言是怎么实现跨平台的呢?

我们编写的java代码不是直接让windows系统读取解析,而是在windows系统中装上java虚拟机(JVM)来读取编写的java软件
所以跨平台的实现原理就是在对应平台上装上相应平台能够识别的java虚拟机,用这JVM来读取解析编写的java软件
所以java程序是跨平台的,但是JVM不是跨平台的

2.jre和jdk的区别

jre: java的运行环境(包括JVM、核心类库)

jdk: java的开发工具包(包括JRE、java的开发工具)

jdk中的目录如下:

bin目录 里面的都是开发时所需要的开发工具
db目录 java数据库,供学习测试使用,开发不建议使用
include目录 用于本地代码的头文件
jre目录 java运行环境
lib目录 相关类库

3.为什么需要配置环境变量?

bin目录中的都是开发时所需要的开发工具,但是只能在当前目录下使用,在其他目录下无法使用。

但是这时候我们会思考,为什么记事本这些工具可以在任何地方打开呢?

这是因为我们敲命令行的执行过程如下:

  1.在当前目录找对应程序

  2.没找到,就到环境变量中的path中去找,找到就执行

  3.没找到就提示没有改程序

所以,如果我们需要在任何地方使用bin目录中的工具的时候,我们就需要配置环境变量,把JDK中bin目录的路径放入path中

备注:shift+右键直接可直接打开当前目录的cmd窗口

java环境配置及原理详解的更多相关文章

  1. Java CAS同步机制 原理详解(为什么并发环境下的COUNT自增操作不安全): Atomic原子类底层用的不是传统意义的锁机制,而是无锁化的CAS机制,通过CAS机制保证多线程修改一个数值的安全性。

    精彩理解:  https://www.jianshu.com/p/21be831e851e ;  https://blog.csdn.net/heyutao007/article/details/19 ...

  2. 【转】Java并发的AQS原理详解

    申明:此篇文章转载自:https://juejin.im/post/5c11d6376fb9a049e82b6253写的真的很棒,感谢老钱的分享. 打通 Java 任督二脉 —— 并发数据结构的基石 ...

  3. Android + Appium 自动化测试完整的环境配置及代码详解

    环境的的搭建 参考大神博客:https://www.cnblogs.com/fnng/p/4540731.html 该博客有一套详细的入门教程,奈何时间有点久远有些东西不能用了,但是参考价值还是有滴. ...

  4. 【Java基础】HashMap原理详解

    哈希表(hash table) 也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中Has ...

  5. Tomcat 端口配置及原理详解

    1. tomcat 文件配置详细说明 tomcat服务器需配置三个端口才能启动,安装时默认启用了这三个端口,当要运行多个tomcat服务时需要修改这三个端口,不能相同.端口配置路径为tomcat\ c ...

  6. Java GC的工作原理详解

    JVM学习笔记之JVM内存管理和JVM垃圾回收的概念,JVM内存结构由堆.栈.本地方法栈.方法区等部分组成,另外JVM分别对新生代下载地址  和旧生代采用不同的垃圾回收机制. 首先来看一下JVM内存结 ...

  7. Java环境配置与编译运行详解

    这篇文章主要为大家详细介绍了Java环境配置与编译运行的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一.开篇 通过对之前Java之路的了解之后,相信初学者们都对Java有了一个比较深印 ...

  8. Java环境配置原理

    Java环境配置原理详解 1.Jdk安装目录文件说明: 一般jdk安装目录及路径 \Java\jdk1.7.0_79\lib,里面主要包含以下文件夹. bin:主要存放的是java工具中常用命令如:j ...

  9. Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理

    Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博 ...

随机推荐

  1. react中组件的渲染

    1.封装props对象 2.调用组件函数,得到返回的react元素 3.ReactDom把React元素转成真实的DOM元素并且插入到目标容器内部

  2. Akka(0):聊聊对Akka的初步了解和想法

    前一段时间一直沉浸在函数式编程模式里,主要目的之一是掌握一套安全可靠的并发程序编程方法(concurrent programming),最终通过开源项目FunDA实现了单机多核CPU上程序的并行运算. ...

  3. linux系统坏了,进不了登陆界面怎么办?

    装oracle时,命令弄错了,结果系统崩溃之后就进不去系统了,启动后光标一直在闪烁,就是不显示登陆界面. 网上查了很多,什么grub引导之类的,完全没办法恢复系统. 系统坏了倒是无所谓,主要是系统上还 ...

  4. cnetos6上实现nfs共享

    利用空余时间,做个nfs共享实验,岂不美滋滋!!! 系统测试环境: 主机ip 系统     主机名(服务) 192.168.241.130    centos6.5    hadoop1(nfs-sr ...

  5. ES6之Array.from()方法

    Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组. 那么什么是类数组对象呢?所谓类数组对象,最基本的要求就是具有length属性的对象. 1.将类数组对象转换为真正数 ...

  6. Flask-WTF

    Flask-WTF 提供了简单地 WTForms 的集成. 官方文档:http://www.pythondoc.com/flask-wtf/index.html 功能 集成 wtforms. 带有 c ...

  7. 剑指offer七之斐波那契数列

    一.题目 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.n<=39. 二.思路 序号:                  0  1   2   3  4   5  ...

  8. Day.js - JavaScript时间处理库

    Day.js简介 在使用JavaScript处理时间方面,使用的时Moment.js,但是它太重了,有200多k,一般项目中可能也只是用了几个api而已,所以,这里推荐一个轻量的时间库 - Day.j ...

  9. echarts初探

    最近经常看到echarts,觉得很有意思,并且这个库是百度开发的,目前来说使用的也很广泛,包括百度.阿里.腾讯.网易.小米.新浪.华为.联想.美团等一大批一线互联网公司在使用,且github上的sta ...

  10. 使用mysql workbench和vscode进行数据库差异比对

    按照如图步骤,导出正式服务器的数据库和测试服务器数据库,并按照指定格式命名. 在vscdoe的文件列表下选中待比较文件1,右键-选择以进行比较. 然后选中第二文件,右键-与已选择文件比较