手机版
热门标签
站点地图
我要投稿
广告合作
联系我们
搜 索
广告位招租
广告位招租
切换导航
首页
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
人工智能
栏目导航
▸ 编程语言
▸ 前端开发
▸ 移动开发
▸ 开发工具
▸ 程序设计
▸ 行业应用
▸ CMS系统
▸ 服务器
▸ 数据库
公众号推荐
微信公众号搜
"智元新知"
关注
微信扫一扫可直接关注哦!
子栏目导航
Git
GitHub
SVN
Jenkins
Vim
vmware
Hyper-v
SSH
Jmeter
sysTemd
Maven
Webpack
Zookeeper
k8s
Phpstorm
JVM
IDEA
Appium
Cypress
pandas
Eclipse
HBuilder
编程工具
Markdown
Mac
Pytest
Selenium
istio
Gradle
Tensorflow
Homebrew
编程之家
JVM
深扒JVM,对它进行“开膛破肚”式解析!
1. 打怪升级,你绕不开JVM JVM,对Java程序员进阶而言,是一个绝对绕不开,也不能绕开的话题。 在你打怪升级、进阶蜕变的路上,势必会遇到项目上线中各种OOM、GC等问题,此时JVM的功底就至关重要了。 这篇文章,我们将从自己写的代码运行角度出发,将JVM“开膛破肚”。看看我们写的代码,在JVM的各区域都干了些啥? 多说一句,对于Java工程师的面试,JVM也是必问的一环,因此无论从面试还是
作者:编程之家 时间:2020-08-09
java JVM
每一个Java虚拟机都由一个类加载器子系统(class loader subsystem),负责加载程序中的类型(类和接口),并赋予唯一的名字。每一个Java虚拟机都有一个执行引擎(execution engine)负责执行被加载类中包含的指令。 数据区中的一部分是整个程序共有,其他部分被单独的线程控制。每一个Java虚拟机都包含方法区(method area)和堆(heap),他们都被整个程序共
作者:编程之家 时间:2020-08-09
JVM 整体流程介绍
一、 JVM自身的物理结构 从图中可以看出 JVM 的主要组成部分 ClassLoader(类加载器),Runtime Data Area(运行时数据区,内存分区),Execution Engine(执行引擎),Native Method Library(本地库接口) 这四大组成部分可以用文字描述如下。JVM 是执行 Java 程序的虚拟计算机系统,然后我们来看看执行过程:首先需要准备编译好的 J
作者:编程之家 时间:2020-08-09
只需4个步骤,分析解决在生产环境下JVM内存泄露问题
作者:未完成交响曲 发现异常 首先通过我们内部搭建的日志平台发现我们线上环境一个java应用有大量的http接口请求超时,登录linux服务器查看网络环境没有问题,判断是应用自身运行异常,重启应用后发现异常还在,开始查找问题。 初步查找问题 通过指令:jstat -gcutil 查看jvm内存占用和gc情况: 发现老年代内存占用比例过高,并且每次fullGC后并没有有效回收。老年代内存占用百分比变
作者:编程之家 时间:2020-08-09
JVM内存结构
原文:https://www.cnblogs.com/hexinwei1/p/9406239.html 1、程序计数器 PC Register 每个线程都有一个程序计算器,就是一个指针,指向方法区中的方法字节码(下一个将要执行的指令代码),由执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不记。 程序计数器(Program Counter Register)是一块较小的内存空间
作者:编程之家 时间:2020-08-09
JVM讲解
JVM 概述:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上
作者:编程之家 时间:2020-08-09
JVM运行机制及其原理
JVM运行机制及其原理 JVM:JVM是Java Virtual Machine(Java虚拟机)的缩写.Java虚拟机主要由字节码指令集、寄存器、栈、垃圾回收堆和存储方法域等构成。 JVM生命周期:JVM伴随着Java程序的开始而开始,程序的结束而结束,一个Java程序会开启一个JVM进程,一台计算器上可以运行多个JVM进程。 JVM将线程分为两种:守护线程和普通线程。守护线程是JVM 自己使用
作者:编程之家 时间:2020-08-09
java – 由jvm加载的类
我有一个正在运行的jvm进程,我想要一个工具来获取由jvm加载的类,是否有一个? 你可以使用jmap -histo< PID> 它将显示已加载类的直方图,包括类名,实例数,大小等
作者:编程之家 时间:2020-08-12
编译器构造 – 如何创建自己的针对JVM的编程语言?
我想创建自己的针对JVM的编程语言.我不确定该怎么做.我必须创建自己的编译器吗?所有编程语言都有独特的编译器,还是现有的编译器可以调整? 我找到了一些关于定位.NET CLI的信息. 我还在编译器设计上找到了Dragon Book. 是的,每种语言都有自己的编译器.有几种类型的编译器可以编写,每一种都变得更复杂,并建立在前一个: >识别器,只回答输入源是否有效语法, > parser,创建输入源的
作者:编程之家 时间:2020-08-13
什么是适用于每个JVM的最小Java类文件?
我希望对一系列JVM进行一种最小的“冒烟测试”,如果可能的话,它包括JDK 1 – 8,OpenJDK,IBM JDK甚至Microsoft JDK.有没有办法制作一个应该能够测试它的最小 Java类文件? 更新 应该可以运行: java -cp ClassName 并且有输出确认JVM正在正常运行. 此外,对于那些认为JVM始终在运行的人应该知道我在一台机器上使用多达20个JVM的系统,并且某些
作者:编程之家 时间:2020-08-13
JVM / Java是在运行时强制执行的方法可访问性规则吗?
我很好奇JVM是如何工作的. JVM是否确认方法可访问性规则,如“private”受保护或仅在编译时完成? 例如,是否可以在第37行附近进行一些字节码操作并调用受保护的方法,比如test3?通常编译器不会让我调用该方法,因为它被声明为protected.但我很好奇是否在运行时强制执行受保护的规则? u.test1(); //在运行时是否可以通过字节码操作调用’test3′ // @ line37
作者:编程之家 时间:2020-08-13
lucene – 是否可以在一个JVM中运行多个map任务?
我想在Hadoop中为我的地图任务共享大内存静态数据(RAM lucene索引)?有几种map / reduce任务共享同一个JVM的方法吗? 作业可以通过指定作业配置mapred.job.reuse.jvm.num.tasks来重用任务JVM.如果值为1(缺省值),则不重用JVM(即每个JVM 1个任务).如果为-1,则JVM可以运行的任务数量(同一作业)没有限制.也可以使用api指定大于1的某
作者:编程之家 时间:2020-08-15
java – 我对JDK,JRE和JVM的理解
经过深入分析,这是我对JDK,JRE和JVM的理解. 如果我错了请纠正我… > JVM是JRE的子集,JRE是JDK的子集. > JVM用于通过使用JRE将字节代码(* .class)转换为目标代码(机器代码). > JRE具有操作系统(OS)指定DLL,JVM使用该字节代码进行对象代码转换. >如果明天假设任何新操作系统将启动,则当前可用的JRE可能不支持JVM以获取字节代码以进行机器代码转换.
作者:编程之家 时间:2020-08-15
java – 为什么JVM在变量超出范围后不会销毁JFrame对象?
我正处于学习 Java的初级阶段. 在我读过的所有文档中,它都提到Java使用安全引用来访问对象而不是内存指针. 而且当方法返回时,其本地范围的变量符合垃圾收集的条件. 那么为什么在下面的代码中,在createFrame方法返回后,JFrame对象不会随窗口一起被销毁? import javax.swing.*; public class HelloJava { public stati
作者:编程之家 时间:2020-08-18
java – 在Mac OS 7.5下可以运行什么JVM?
我要求签订合同,并且规范初稿中的一个要求是该软件(最终用户的GUI应用程序)应该在Win 2000和Mac OS 7.5上运行.我不知道为什么他们会想要支持这样的古老系统,但是我想它让 Java作为除了原始C之外的唯一选择,或者不是吗? 那么如果它是Java,那么我可以在这些目标上使用哪些Java版本限制? 此外,虽然它不是严格的主题,但我很欣赏有关在两个目标上运行软件的策略的评论.实际上,支持那
作者:编程之家 时间:2020-08-19
Java 6在JDK,JVM或两者中的性能都有所改进吗?
我一直想知道 Java SE 6中吹捧的性能改进 – 它是在编译器还是运行时?换句话说,由JDK 6编译的Java 5应用程序是否会在JSE 5下看到改进运行(表明改进的编译器优化)? JDK 5编译的Java 5应用程序是否会在JSE 6下看到改进运行(表明改进的运行时优化)? 我注意到,在完全相同的代码库下,JDK 6下的编译几乎是JDK 5下的两倍.我希望至少有一些额外的时间花在编译器优化上
作者:编程之家 时间:2020-08-21
如何在没有JVM的情况下运行java程序?
我有简单的 java程序,它只会打印Hello World.Can可以在不使用机器中安装JVM的情况下进行打印吗?但编译器就在那里. 您可以使用以下内容将 Java字节代码编译为机器代码: http://en.wikipedia.org/wiki/GNU_Compiler_for_Java 或者您可以使用任何许多Java到C/C++转换器来制作C/C++版本,并进行编译. (在Google上搜索“
作者:编程之家 时间:2020-08-22
关于JVM内存溢出的原因分析及解决方案探讨
前言:JVM中除了程序计数器,其他的区域都有可能会发生内存溢出。 0.什么是内存溢出 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出。 1.内存泄漏和内存溢出区别与联系 内存泄漏:系统分配的内存没有被回收。 内存溢出:分配的内存空间超过系统内存。 2.内存泄漏的原因分析 jvm由5大块组成:堆,栈,本地方法栈,程序计数器,方法区。
作者:编程之家 时间:2020-08-22
jvm – 为什么我们不能将val属性覆盖为带有get而没有初始化的var?
我刚刚开始学习Kotlin.我想知道为什么我们不能在重写的val属性上使用get()方法作为var而不初始化它.但是当被覆盖为val时,它可以在没有初始化的情况下工作. open class Foo { val y = 21 open val x: Int get() { return 10 * y } } class Bar
作者:编程之家 时间:2020-08-22
我可以使用我的开源工具分发Azul Zulu JVM吗?
我们有一个开源工具,我们希望通过特定的JRE版本提供给用户.由于Oracle如此不清楚并且关闭许可(即使有最新的jlink可能性),并且非官方的openjdk构建很难“跟随”,我们认为Zulu在这里可能是正确的选择.因此我唯一担心的是: 我可以在我的发行版中自由地重新发布这个JVM吗?它只不过是在我的发行版中有一个/ jre目录,并且为提供的JVM而不是系统默认启动了启动程序. Zulu Term
作者:编程之家 时间:2020-08-22
java – 如何预测jvm垃圾收集
我正在研究用 java编写的关键应用程序,它应该避免“停止世界垃圾收集”的影响. 我正在寻找一种可以预测因完整gc而导致长时间暂停的解决方案.可能吗? 您可以做的最好的事情是减少分配和/或使用暂停较少的GC,如Azul的.这将使GC更易于管理. 如果您在关键部分减少了足够的分配(使用指标识别,例如像JMC / JFR这样的分析器),您可以在没有完整集合的情况下全天运行,或者在极端情况下,可以全天运
作者:编程之家 时间:2020-08-24
java – 如何为Play Framework 2.1设置JVM参数-Xmx
运行我的Play应用程序时,我经常会收到以下错误: java.lang.OutOfMemoryError:超出GC开销限制我现在想要增加MaxHeapSize. 首先,我将参数应用于我的启动脚本: cd app_x .../play/play-2.2.1/play clean compile stage app_x/target/universal/stage/bin/app_x -J-Xmx3g
作者:编程之家 时间:2020-08-24
java – 如何设置storm worker的JVM最大堆大小?
我是Storm编程的新手,我有一份工作要对自定义分组方法进行测试,看看它是否更好. 因此,我必须在几种不同的条件下测量风暴的吞吐量,例如不同的工人数量,不同的工人记忆等等 使用conf.setNumWorkers();设置工作人员编号很容易,但我发现很难设置每个工作人员的最大堆大小. 我尝试编辑storm.yaml并补充说 worker.childopts: "-Xmn128m-Xms128m-X
作者:编程之家 时间:2020-08-24
java – 为什么JVM不使用更多堆内存
我尝试像这样增加堆内存: -Xmx9g -Xms8g 说实话,只因为我可以. 现在我想知道,为什么JVM不会使用更多,并且不太频繁地安排GC. 系统: JVM:Java HotSpot(TM)64位服务器VM(24.51-b03,混合模式) Java:版本1.7.0_51,供应商Oracle Corporation 编辑: 我想改进我的建模过程配置(吞吐量击败响应). Java 1.7 separ
作者:编程之家 时间:2020-08-29
java – 将prolog应用程序转换为基于JVM的语言?
我有一个中等大小的传统ISO prolog应用程序,我想转向基于JVM的语言.该应用程序是一个命令行工具,它解析文本文件,执行一些评估/转换,然后导出基于文本的文件. 我的团队主要使用Java开发,因此我们拥有大量现有的Java权限和可重用的组件.然而,Prolog的能力非常低. 我不希望有一个工具需要prolog源代码并将其转换为其他语言.但我试图了解什么是最简单的解决方案.从Java开始,还是
作者:编程之家 时间:2020-08-29
java – JVM如何执行Try catch finally块
根据 Java语言规范, Section §14.20.2 A try statement with a finally block is executed by first executing the try block. Then there is a choice: If execution of the try block completes normally, then the fina
作者:编程之家 时间:2020-08-30
java – 如何为runnable jar添加jvm参数?
对于我正在创建的可运行的jar.它需要xmx1024作为JVM参数.我怎样才能做到这一点 ?或者有其他选择吗? 您可以为程序要运行的每个平台提供启动脚本.例如,在 Linux上,您可以拥有program.sh java -mx1024 -jar lib/artifact.jar arg1 arg2 显然,您必须告诉用户该程序是从启动脚本运行的,因为如果他们尝试手动启动jar,它将失败. 如果VM已
作者:编程之家 时间:2020-08-31
java – JVM如何读取系统属性?
我在System类中找到了这个,但我想知道它是如何实现的. /** * System properties. The following properties are guaranteed to be defined: * <dl> * <dt>java.version <dd>Java version number * <dt>java.v
作者:编程之家 时间:2020-08-31
java – 每个war文件中没有JVM实例?
根据我的理解,每个war文件将有一个jvm实例和一个类加载器层次结构.对?两个问题: – 问题1: – 如果我在war文件中打包我的servlet类和业务类(打包在jar文件中).这里war文件包含jar文件和servlet类.如果我尝试访问业务类中的servlet中声明的静态全局变量,我可以做到正确吗?因为这里只有一个jvm实例和类加载器层次结构 问题2: – 如上所述,如果我将我的servle
作者:编程之家 时间:2020-09-02
Java中的内部块如何访问应该超出范围的局部变量? (JVM如何处理Java中的最终局部变量)
在以下代码中: public class Main { Emp globalEmp; public void aMethod() { final int stackVar = 10; globalEmp = new Emp() { public void doSomeThing()
作者:编程之家 时间:2020-09-02
上一页
107
108
109
110
111
112
113
114
下一页
小编推荐
热门标签
更多
python
JavaScript
java
HTML
reactjs
C#
Android
CSS
Node.js
sql
r
python-3.x
MysqL
jQuery
c++
pandas
Flutter
angular
IOS
django
linux
swift
typescript
路由器
JSON
路由器设置
无线路由器
h3c
华三
华三路由器设置
华三路由器
电脑软件教程
arrays
docker
软件图文教程
C
vue.js
laravel
spring-boot
react-native