先来介绍三个概念:

JVM----JAVA virtual machine

       java虚拟机:对字节码提供相同的接口,对操作系统提供不同的接口,以适应各个OS

JRE----JAVA runtime environment

java运行时环境

JDK----java SE Development kit

java 标准版开发包

这是学习java最基础的三个概念,他们的关系如下

    JDK(开发必备) -|-----JAVA 类库    
   |-----JAVA编译器    
   |-----JRE(运行Java必装) -|-----JVM  
     |-----类加载器 -|
     |-----字节码校验器  |---运行java程序的其它环境支持
     |-----基础类库 _|
       

如图,平常跑跑java 程序 安装对应的JRE即可,如果需要开发 则需要jkd,单纯的jvm是没意义的(官方也没有对应的下载)

java从代码到运行:

java源文件(.java 文件)----->java编译器(使用javac编译)----->字节码文件(.class文件)---|

             特定平台的机器码(OS可以运行的)<--  java虚拟机运行(使用java解释执行)<---|

java编译器生成的是与各个平台无关的字节码,这些字节码不面向任何的平台,他们只面向JVM,与此同时不同平台的JVM都是不同的,但是他们都提供了相同的接口来处理字节码,于此同时产生不同的接口对应不同的平台(linux/win)JVM可以说就是一个转换器。

   另外jar包:

    我们还会遇到.jar包。  jar (Java Archive File 译为java 存档文件)。直白点说就是一个压缩.class的zip包,但是由于他里边包含一个文件

META-INF/MANIFEST.MF(生成jar包时就有),使得里边的.class文件之间具有一定的结构。我们的程序就可以直接引用这些jar包(这里有点像C#中的dll文件),或者直接运行这个jar包

      此处要注意

(1).java文件的名字是随意起的,但是倘若java 文件中有public 类,则.java文件的名字必须与这个类名保持一致,所以最多只能有一个public class。

(2)1、命名时大小写是敏感的(同时请记住,所有的关键字都是小写)。

2、默认的路径(jdk默认的路径)是 program files 中间有空格,最好选择无空格的路径(以及不要有中文字符,以免莫名其妙的错误)


环境变量:

    为什么要设置环境变量呢?

     在我们装好jdk后,如果不设置:在我们敲入java 或者javac命令时会提示:java、javac不是内部或外部命令,也不是可以运行的程序或批处理文件。这是因为:虽然我们已经在计算机上安装了JDK,而且JDK的路径下野有java和javac 这两个命令,但是计算机并不知道去哪里找这两个命令(换句话说计算机并不知道自己有这两个功能),所以我们需要设置一个指引(路径),告诉OS可以去这里看看。

Path:java编译运行工具的目录

ClassPath:java调用需要工具类所在的地址

JAVA_Home java安装目录的公有名字(就是JDK的安装目录)


java的内存回收机制(GC)

这个与C#的大同小异,这里就不多加赘述。只简单提下

(1)不及时回收内存--->可以用内存的数量空间就会变小--->回收的频率就会变高--->性能下降

(2)java始终都无法强制回收内存,只能建议jvm回收。

java运行环境和运行机制的更多相关文章

  1. 【转】如何配置EditPlus中Java运行环境,运行Java程序

    如何配置EditPlus中Java运行环境,运行Java程序 http://jingyan.baidu.com/article/86112f13725e2e2736978711.html 分步阅读 E ...

  2. 安装多JDK后,java编译环境和运行环境版本(JDK版本) 不一致解决:

    由于之前安装过JDK1.7 ,现在一个项目是JDK1.5的,那么需要更改了环境变量了,此处不再赘述如何设置JDK 的环境变量了.然后网上找来方法: 在安装多个jdk后,出现了java -version ...

  3. 在Eclipse下配置算法(第四版)运行环境

    第一步:配置Eclipse运行环境 Eclipse运行环境配置过程是很简单的,用过Eclipse进行java开发或学习的同学应该都很熟悉这个过程了. 配置过程: (1)系统环境:Windows7 64 ...

  4. NodeJs>------->>第二章:Node.js中交互式运行环境--------REL

    第二章:Node.js中交互式运行环境--------REL 一:REPL运行环境概述 C:\Users\junliu>node > foo = 'bar' ; 'bar' > 二: ...

  5. Win8操作系统下IIS如何配置asp.net的运行环境(win7同样)

    一.把鼠标放在电脑屏幕的左下角然后右击,弹出如下图菜单,选择“程序和功能”(快捷键win+X).(win7点击电脑左下角的“开始”,然后点击“控制面板”打开程序与功能界面): 二.进入程序与功能界面后 ...

  6. Python学习笔记:open函数和with临时运行环境(文件操作)

    open函数 1.open函数: file=open(filename, encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件 ...

  7. Java运行时环境---ClassLoader类加载机制

    背景:听说ClassLoader类加载机制是进入BAT的必经之路. ClassLoader总述: 普通的Java开发其实用到ClassLoader的地方并不多,但是理解透彻ClassLoader类的加 ...

  8. 定制化Azure站点Java运行环境(3)

    定制化Azure Website提供的默认的Tomcat和JDK环境 在我们之前的测试中,如果你访问你的WEB站点URL时不加任何上下文,实际上你看到的web界面是系统自带的测试页面index.jsp ...

  9. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

随机推荐

  1. 【BZOJ1180】: [CROATIAN2009]OTOCI & 2843: 极地旅行社 LCT

    竟然卡了我....忘记在push_down先下传父亲的信息了....还有splay里for():卡了我10min,但是双倍经验还是挺爽的,什么都不用改. 感觉做的全是模板题,太水啦,不能这么水了... ...

  2. EaseMode

    The following graphs demonstrate the different values of EasingMode, where f(t) represents the anima ...

  3. Tomcat启动后,从spring容器中获取Bean和ServletContext

    public static Object getBean(String beanName){ ApplicationContext context = ContextLoader.getCurrent ...

  4. win7下wndows virtual pc 2007 装xp比新版本的 Windows virtual pc 好用

    2007下装xp虚拟机启动快,支持拖放.

  5. Ubuntu ./configure 半途终止 导致没有生成makefile文件 解决方法

    在安装thrift的时候,解压包进入目录,执行命令: ./configure 之后,发现某些包没有安装,导致configure到一半的时候退出,接着make发现没有makefile文件.估计是我系统安 ...

  6. Yii源码阅读笔记(三十五)

    Container,用于动态地创建.注入依赖单元,映射依赖关系等功能,减少了许多代码量,降低代码耦合程度,提高项目的可维护性. namespace yii\di; use ReflectionClas ...

  7. Linux用过的命令

    -上传sudo -u b2b rz--创建文件夹sudo -u b2b mkdir--copysudo -u b2b cp /b2b/apache-tomcat-7.0.64/matt/DqN017S ...

  8. iOS10新特性

    1.Siri API 的开放自然是 iOS 10 SDK 中最激动人心也是亮眼的特性.Apple 加入了一套全新的框架 Intents.framework 来表示 Siri 获取并解析的结果. 在 i ...

  9. 最新版CKEditor在线编辑器的配置方法

    下载地址: http://ckeditor.com/download 使用方法: 在页面<head>中引入ckeditor核心文件ckeditor.js <script type=& ...

  10. 基于Redis的爬虫平台的实现

    一.需求: 1.数据抓取:目标数据的下载.解析.入库功能. 2.数据服务:黑名单.灰名单等查询服务. 3.平台监控:平台各个模块的数据实时监控. 二.WEB端效果展示: 三.架构设计 下载器.解析器. ...