iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java程序运行的机制是什么
  • 947
分享到

Java程序运行的机制是什么

javaava 2023-05-31 03:05:21 947人浏览 八月长安
摘要

本篇文章为大家展示了Java程序运行的机制是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集

本篇文章为大家展示了Java程序运行的机制是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。

       Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。

1.为什么要使用Java虚拟机

      Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编 译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台 相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字 节码时,把字节码解释成具体平台上的机器指令执行。

Java运行机制

Java程序的运行必须经过编写 、编译 、运行 三个步骤。

编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。

编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,这不像C语言那样最终生成可执行文件。

运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果

字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java源文件由Java编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的Java解释器来解释执行,因此Java是一种在编译基础上进行解释运行的语言。

Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此Java程序不能直接运行在现有的操作系统平台上,它必须运行在被称为Java虚拟机的软件平台之上。

Java虚拟机(JVM)是运行Java程序的软件环境,Java解释器就是Java虚拟机的一部分。在运行Java程序时,首先会启动JVM,然 后由它来负责解释执行Java的字节码,并且Java字节码只能运行于JVM之上。这样利用JVM就可以把Java字节码程序和具体的硬件平台以及操作系 统环境分隔开来,只要在不同的计算机上安装了针对于特定具体平台的JVM,Java程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用 考虑字节码文件是在何种平台上生成的。JVM把这种不同软硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM是Java平台 无关的基础,Java的跨平台特性正是通过在JVM中运行Java程序实现的。

Java语言这种“一次编写,到处运行(write once,run anywhere)”的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。

需要注意的是,Java程序通过JVM可以达到跨平台特性,但JVM是不跨平台的。也就是说,不同操作系统之上的JVM是不同的,windows平台之上的JVM不能用在linux上面,反之亦然。

JAVA程序运行错误分析

一般来说,一个已经投入运营的大型项目出现问题的可能最多如下几种情况:

1.异常的CPU使用

1)查看CPU使用率,与目标进程的使用情况,再查看每个内核的使用情况。可以辅助定位是单个线程问题或线程池问题。

2)有时,程序在正常一段时间后,突然CPU垂直升高,那么可能与程序内的有关(如果锁持有的时间很短,不如试试cas+yield来实现自旋锁)

3)死锁,直接导出调用栈,寻找问题解决。

2.异常的内存

1)内存泄漏,没什么好说的,dump出堆栈查找问题

2)频繁的GC也会导致性能不足,在程序经常出现GC的情况下,就要注意了,调高新生代大小如果仍然不能解决则需要定位大量创建临时对象的代码(可以使用对象池技术来避免内存重复申请的情况)

3.某个工作线程的意外终止

4.异常的io

1)查看打开文件,IO操作占用,磁盘使用率。可以使用命令 df iOStat 等

2)查看是否有程序占用监听,网络使用率,可以使用命令 netstat 等

使用工具分析故障

jmap

jmap pid 默认查看JAVA进程中内存使用相关信息

jmap -histo pid 查看内存中活跃的实例数量

jmap -dump:fORMat=b,file=(文件名) pid 完整导出java程序内存。完整分析分三个流程,在程序初始化完毕后执行一次 jmap -dump:format=b,file=a.bin 然后在内存占用开始出现上涨的时候执行一次,最后等达到上限后再执行一次,用JHat或者第三方工具来打开dump文件。

jstack或者JCONSOLE

默认 可以查看进程调用栈信息,用来分析IO超时,死锁,或者其他情况。程序出现异常必须要分析的信息,可以辅助问题的定位和排除。

jstat -gc pid gaptime 查看GC相关信息

jstat -compiler pid 查看实时编译信息

kill -3

同上,适用于没有安装develop工具的服务器,可以输出调用栈信息和部分GC信息

iftop 查看网口
查看网络出入流量与目标服务器之间的流量,可以辅助排查是否由攻击引起的

 pstack 虚拟机堆栈

需要安装gdb,一般用于检查C/C++程序,在某些虚拟机级错误的时候。

上述内容就是Java程序运行的机制是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: Java程序运行的机制是什么

本文链接: https://www.lsjlt.com/news/222996.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java程序运行的机制是什么
    本篇文章为大家展示了Java程序运行的机制是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集...
    99+
    2023-05-31
    java ava
  • web小程序运行机制是什么
    本篇内容介绍了“web小程序运行机制是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!了解小程序的由来在...
    99+
    2022-10-19
  • 微信小程序的运行机制是什么
    今天小编给大家分享一下微信小程序的运行机制是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、本质首先,小程序的逻辑层和...
    99+
    2023-06-30
  • 微信小程序运行机制是什么
    小编给大家分享一下微信小程序运行机制是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!运行机制小程序没有重启的概念当小程序进入后台,客户端会维持一段时间的运行状态,超过一定时间后(目前是5分钟)会被微信主动销毁置顶的小程...
    99+
    2023-06-26
  • java运行机制指的是什么
    这篇文章给大家分享的是有关java运行机制指的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java程序运行时,必须经过编译和运行两个步骤:首先将后缀名为java的源文件进行编译,最终生成后缀名为.clas...
    99+
    2023-06-06
  • java中MyBatis的运行机制是什么
    今天就跟大家聊聊有关java中MyBatis的运行机制是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程...
    99+
    2023-06-14
  • Java程序的运行过程是什么
    本篇内容主要讲解“Java程序的运行过程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java程序的运行过程是什么”吧!Java程序运行过程运行一个Java程序的步骤编辑源代码xxx.ja...
    99+
    2023-07-05
  • java程序的运行环境是什么
    今天小编给大家分享一下java程序的运行环境是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。java程序的运行环境简称为...
    99+
    2023-07-04
  • java程序是怎么运行的
    java程序执行过程分为两步,下图为流程示意图第一步:将java源码(.java文件)通过编译器(javac.exe)编译成JVM文件(.class文件)第二步:将JVM文件通过java.exe执行,输出结果 (推荐学...
    99+
    2019-06-19
    java入门 java
  • Java程序的开发与运行原理是什么
    这篇文章主要介绍“Java程序的开发与运行原理是什么”,在日常操作中,相信很多人在Java程序的开发与运行原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java程序的开发与运行原理是什么”的疑惑有所...
    99+
    2023-06-16
  • JS的运行机制原理是什么
    本篇内容主要讲解“JS的运行机制原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS的运行机制原理是什么”吧!代码块: JS中的代码块是指由<script>标签分割...
    99+
    2023-06-17
  • java程序是怎样运行的
    程序运行流程:先把Java代码编译成字节码,也就是把“.java”类型的文件编译成“.class”类型的文件。这个过程的大致执行流程:Java源代码 -> 词法分析器 -> 语法分析器 -> 语义分析器 -> 字节码生成器 ->最终生成字...
    99+
    2016-04-20
    java入门 java 程序 运行
  • java程序是如何运行的
    本篇文章为大家展示了java程序是如何运行的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有...
    99+
    2023-06-14
  • java程序怎么在手机上运行
    要在手机上运行Java程序,需要先将Java程序编译成可在Android平台上运行的字节码文件。下面是一种常用的方法:1. 安装An...
    99+
    2023-08-23
    Java
  • java的程序怎么运行
    运行一个Java程序的步骤:编辑源代码xxx.java (推荐学习:java课程)编译xxx.java文件生成字节码文件xxx.classJVM中的类加载器加载字节码文件JVM中的执行引擎找到入口方法main(),执行...
    99+
    2021-04-15
    java入门 java
  • php的运行机制和原理是什么
    PHP的运行机制和原理如下: 客户端请求:当用户在浏览器中输入一个URL并发送请求时,服务器会接收到该请求。 Web服务器:...
    99+
    2023-10-28
    php
  • Laravel schedule调度的运行机制是什么
    这篇文章主要介绍“Laravel schedule调度的运行机制是什么”,在日常操作中,相信很多人在Laravel schedule调度的运行机制是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Larav...
    99+
    2023-06-29
  • JavaScript运行机制及原理是什么
    这篇文章主要介绍“JavaScript运行机制及原理是什么”,在日常操作中,相信很多人在JavaScript运行机制及原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • 解析Android应用程序运行机制
    在标准的Windows和Linux桌面操作系统中,同时可以在不同的窗口中运行多个应用程序,每次只有一个应用程序是当前焦点状态,但其他的应用程序都是一个平等的位置。用户可以随时切...
    99+
    2022-06-06
    运行 程序 Android
  • Laravel中schedule调度的运行机制是什么
    本篇内容介绍了“Laravel中schedule调度的运行机制是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Laravel 的 con...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作