深入浅出JVM(一)---两种环境

原创 2004年07月06日 18:10:00

如果你想真正掌握JAVA技术,请首先记住它的四个组成部分:JAVA语言,class文件格式,JVM和JAVA API.

如果你说你学过JAVA,那么,你已经知道了,JAVA有两个环境:编译环境和运行环境.好,我们分别讨论.

1)编译环境

编译环境是什么?如果你装了JDK,那么,你的D:/j2sdk1.4.2目录下的所有东西,就是你的JAVA编译环境.

编译环境的工作流程如下:你利用JAVA语言规范,或利用JAVA API,写(或自动生成)了一个.java文件;然后,
你利用JAVA编译环境下的javac.exe文件,编译它;最后,你得到了一个"class文件格式"的文件.

写到这里,你应该已经明白了,编译环境并不等同开发环境,因为,你的.java文件,可能是在运行时动态生成
的(请看我写的<<动态生成JAVA代码>>).请不要称编译环境为开发环境.

2)运行环境
运行环境是什么?你的C:/Program Files/Java/j2re1.4.2目录下的所有东西,就是你的JAVA运行环境.

JAVA运行环境就是JAVA平台.

JAVA平台由JVM和JAVA API组成.

JVM由类装载器和JVM运行引擎组成.

我们再看JAVA技术的四大组成部分:你学习JAVA语言和JAVA API的规范,写出符合规范的代码;用编译环境编译它,
同时判断它是否符合规范,如果符合,得到class文件格式的文件;然后,JVM的类装载器装载这些文件,送给JVM的运行引
擎,引擎开始消费.

版权声明:本文为博主原创文章,未经博主允许不得转载。

深入浅出JVM调优

深入浅出的讲解了java程序的堆空间的构成,及JVM调优的准备工作和如果进行JVM调优,以及如何评判JVM调优的成果。 一、基本概念:        JVM把内存区分为堆区(heap)、栈区(sta...
  • tzszhzx
  • tzszhzx
  • 2015年07月01日 09:35
  • 863

深入浅出java虚拟机系列:(一)jvm 内存区域

1. 概述      java与c++之间有一堵由动态内存分配和垃圾收集技术所谓成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 2. 运行时数据区域      jvm在执行java程序的过...
  • xiaolei1021
  • xiaolei1021
  • 2015年12月05日 18:37
  • 752

JVM深入浅出(一) -- 了解Java虚拟机

看过了一些深入理解JVM的文章,发现里面有些内容描述不完整和描述错误的地方,通过自己的实践,把自己的新的和发现的问题指出来 1.Java虚拟机组成 Java虚拟机由五个部分组成:一组指令集、一组寄...
  • JacXuan
  • JacXuan
  • 2017年04月10日 22:56
  • 31281

深入理解JVM一字节码执行

前言物理机对指令的执行建立在cpu、硬件、指令集、操作系统层面。而虚拟机对指令的执行可以自行实现,JVM Specification中定义了执行引擎这个概念模型作为JVM的统一Facade。通常会有解...
  • lemon89
  • lemon89
  • 2017年04月16日 22:29
  • 552

java成长之路 JVM生产环境参数配置

java application项目(非web项目) 改进前: -Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMar...
  • u014470726
  • u014470726
  • 2015年08月18日 15:47
  • 1178

开发过程中jvm环境设置与查询

在开发过程中,常常由于项目占用的内存空间比较大,在项目启动或运行的过程中常常会抛出 java.lang.OutOfMemoryError java.lang.OutOfMemoryError: Per...
  • puhaiyang
  • puhaiyang
  • 2016年12月28日 14:52
  • 785

Linux环境下使用JVM诊断工具排查问题

刚接手的服务经常间断性的出现CPU突然爆高的情况,正常情况下java应用线程的CPU利用率在200%左右,但是在出问题的时候利用率接近2000%(部署的服务器为单机24核)。开始由于对项目不太熟悉,所...
  • zhanggan1234
  • zhanggan1234
  • 2016年09月21日 15:44
  • 722

jdk、jre与jvm的区别与联系

为了学习数据库,重装了系统,之前前一直在用eclipse,现在准备换成myeclipse,这之前当然需要重新设置环境变量,顺手写下有关jdk、jre与jvm的区别与联系以供交流参考。 首先来说一...
  • u014492609
  • u014492609
  • 2015年01月02日 21:48
  • 3579

关于生产环境出现tomcat的jvm 内存溢出问题的解决

系统生产环境Tomcat系统日志有内存溢出错误。“OutOfMemoryError: Java heap space”  堆内存溢出 问题分析,需要修改tomcat启动脚本配置参数,增大jvm堆栈大...
  • chi7758
  • chi7758
  • 2017年04月20日 00:08
  • 653

51. spring boot属性文件之多环境配置【从零开始学Spring Boot】(

原本这个章节是要介绍《log4j多环境不同日志级别的控制的》但是没有这篇文章做基础的话,学习起来还是有点难度的,所以我们先一起了解下spring boot属性文件之多环境配置,当然文章中也会提到属性文...
  • linxingliang
  • linxingliang
  • 2016年08月26日 09:08
  • 3803
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入浅出JVM(一)---两种环境
举报原因:
原因补充:

(最多只允许输入30个字)