手机版
热门标签
站点地图
我要投稿
广告合作
联系我们
搜 索
广告位招租
广告位招租
切换导航
首页
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
人工智能
栏目导航
▸ 编程语言
▸ 前端开发
▸ 移动开发
▸ 开发工具
▸ 程序设计
▸ 行业应用
▸ 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、线程三态:就绪态、运行态、阻塞态 2、JVM中的六种状态 NEW(新建状态):一个尚未启动的线程所处的状态。 RUNNABLE(可运行状态):可运行线程的线程状态,可能正在运行,也可能在等待处理器资源。 BLOCKED(锁阻塞):被阻塞等待监视器锁定的线程所处的状态。 使用:当一个线程试图获取锁,但锁此时被其他线程持有,该线程进入BLOCKED状态,当线程拿到锁则进入RUNNABLE状态。 W
作者:编程之家 时间:2020-09-12
深入浅出jvm
jvm内存模型 主要包含类加载器、jvm内存、字节码执行引擎、GC; 类加载器 类加载器主要包含:应用程序加载器、扩展类加载器、启动类加载器。 启动类加载器:主要进行加载java核心类,例如:rt.jar包下的类。 扩展类加载器:主要进行加载java中ext包下的类。 应用程序类加载器:主要加载我们自己写的java类。 类加载机制:双亲委派机制和全盘负
作者:编程之家 时间:2020-09-12
JVM内存分配策略,及垃圾回收算法
本人免费整理了Java高级资料,一共30G,需要自己领取; 传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q 说起垃圾收集(Garbage Collection, GC),想必大家都不陌生,它是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如Scala等)程序员在提升开发效率
作者:编程之家 时间:2020-09-12
一张图看懂JVM
JVM结构示意图 JVM总体概述 JVM总体上是由类装载子系统(ClassLoader)、运行时数据区、执行引擎、内存回收这四个部分组成。其中我们最为关注的运行时数据区,也就是JVM的内存部分则是由方法区(Method Area)、JAVA堆(Heap)、虚拟机栈(Stack)、程序计数器、本地方法栈这几部分组成;除此以外,在概念中还有一个直接内存的概念,事实上这部分内存并不属于虚拟机规范
作者:编程之家 时间:2020-09-12
JVM8自适应导致内存居高不下
YOUNG GC jvm年轻代分为eden区和survivor区,对象被创建后首先在eden区,如果一次young gc没有将其回收的话,会到survivor区。从survivor区到old generation需要了解下动态年龄判断 动态年龄判断: 1.对象超过15次没有被回收,可以通过MaxTenuringThreshold设置 2.相同年龄
作者:编程之家 时间:2020-09-12
Micronaut 教程:如何使用基于 JVM 的框架构建微服务?
本文要点: Micronaut 是一种基于 jvm 的现代化全栈框架,用于构建模块化且易于测试的微服务应用程序。Micronaut 提供完全的编译时、反射无关的依赖注入和 AOP。该框架的开发团队和 Grails 框架的开发团队是同一个。Micronaut 框架集成了云技术,服务发现、分布式跟踪、断路器等微服务模式也内置到了框架中。在本教程中,你将使用不同的语言创建三个微服务:Java、Kotli
作者:编程之家 时间:2020-09-12
JVM类加载机制
类从被加载到虚拟机内存中开始,到卸载出内存开始,它的整个生命周期如下 加载 连接初始化 验证 准备 解析 使用 卸载 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班的开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。注意,按部就班地“开始”,而不是按部就班的“进行”或“
作者:编程之家 时间:2020-09-12
Jvm Stack栈五
1、Stack栈 栈也叫栈内存,主管Java程序的运行,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束该栈就Over,生命周期和线程一致,是线程私有的。8种基本类型的变量+对象的引用变量+实例方法都是在函数的栈内存种分配。 2、栈存储什么? 栈帧中主要保存3类数据: 本地变量(Local Variables
作者:编程之家 时间:2020-09-12
gc算法与内存分析jvm
参考资料:GC算法分类-https://zhuanlan.zhihu.com/p/41666328 《深入理解java虚拟机》第三章垃圾收集器与内存分配策略 一:GC分代--新生代跟老年代 gc活动空间为堆区域,堆按gc处理方式也可以分为新生代跟老年代。 对象内存分配跟使用的垃圾收集器有关,默认是在新生代的Eden区上。 复制算法在新生代中,复制多次后还在就会移到老年代去(在Hotspot中当
作者:编程之家 时间:2020-09-12
探索JVM底层奥秘ClassLoader源码分析
1、JVM基本结构: *.java--------javac编译------>*.class-----ClassLoad加载---->运行时数据区------->执行引擎,接口库------>本地方法库 2、JVM运行流程: public class Dome { private static int tem=1; static { tem=2; System.out.println(tem)
作者:编程之家 时间:2020-09-12
java JVM-类加载静态初始化块调用顺序
测试类加载的全过程 public class Have { static { System.out.println("加载Have");//先加载Have再调用main方法 } public static void main(String[] args) throws Exception { System.out.println("main方法"); //先调main方法
作者:编程之家 时间:2020-09-12
java JVM-自定义类加载器
自定义文件系统类加载器 public class Loader extends ClassLoader{ private String rootDir; public Loader(String rootDir) { this.rootDir=rootDir; } //重写父类方法 protected Class<?> findClass(String name) throws
作者:编程之家 时间:2020-09-13
java JVM-自定义类加载器从零到有
自定义文件系统类加载器 public class Loader extends ClassLoader{ private String dir; public Loader(String dir) { this.dir=dir; } @Override protected Class<?> findClass(String name)
作者:编程之家 时间:2020-09-13
java JVM-自定加密和解密类加载器
简单加密解密(取反)操作 int a=3; //00000011 //^异或操作,相同为1,0xff,表示一个十六进制数,表示a和1111 1111 进行异或操作,结果为1111 1100 System.out.println(Integer.toBinaryString(a^0xff)); //对二进制取反,转换成二进制字符串 //ff表示1111 1111,f=15 public class
作者:编程之家 时间:2020-09-13
JDK性能分析工具-引用于深入理解JVM
1.jps(JVM Process Status Tool) 列出正在运行的虚拟机进程。 2.jstat(JVM Statistics Monitoring Tool) 显示运行状态信息。 3.jinfo(Configuration Info for Java) 查看和调整虚拟机各项参数。 4.jmap(Memery Map for Java) 用于生成的堆转储快
作者:编程之家 时间:2020-09-13
JVM垃圾回收?看这一篇就够了!
深入理解JVM垃圾回收机制 1、垃圾回收需要解决的问题及解决的办法总览 1、如何判定对象为垃圾对象 引用计数法 可达性分析法 2、如何回收 回收策略 标记-清除算法 复制算法 标记-整理算法 分带收集算法 垃圾回收器 serial parnew Cms G1 3、何时回收 下面就是如何判定对象为垃圾对象 *** 2、引用计数法 在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用技术器得值
作者:编程之家 时间:2020-09-13
深入理解JVM内存分配策略
理解JVM内存分配策略 三大原则+担保机制 JVM分配内存机制有三大原则和担保机制 具体如下所示: 优先分配到eden区 大对象,直接进入到老年代 长期存活的对象分配到老年代 空间分配担保 对象优先在Eden上分配 如何验证对象优先在Eden上分配呢,我们进行如下实验。 打印内存分配信息 首先代码如下所示: public class A { public static void m
作者:编程之家 时间:2020-09-13
jvm 垃圾收集算法
经过上篇如何判断对象是否死亡,那么jvm要对死亡的对象进行垃圾回收,垃圾回收的算法主要有以下几种: 一、标记-清楚算法 该算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带来两个明显的问题: 一个是效率问题,标记和清除两个过程的效率都不高 一个是空间问题,标记清除之后会产
作者:编程之家 时间:2020-09-13
java – JVM向OS发回内存
参见英文答案 > Does GC release back memory to OS? 5个 我有一个关于JVM内存管理的问题(至少对于SUN的内存管理问题). 我想知道如何控制JVM将未使用的内存发送回OS(在我的情况下为Windows)这一事实. 我写了一个简单的java程序来说明我的期望. 使用-Dcom.sun.mana
作者:编程之家 时间:2020-09-13
JDK、JRE、JVM详解
JDK、JRE、JVM详解 从包含的关系上讲 JDK>JRE>JVM。 从概念上讲JDK是JAVA开发工具,用它来开发JAVA程序。 JRE是JAVA运行环境,开发出来的JAVA程序只要有JRE就能运行。 JVM是JAVA虚拟机,是JRE的一部分,对于JAVA类的操作基本上都是在JVM上完成的。 JDK JDK(Java Development Kit) 是整个JAVA的核
作者:编程之家 时间:2020-09-15
JVM虚拟机运行机制
JVM虚拟机运行机制 什么是JVM?虚拟机是物理机器的软件实现。Java是用在VM上运行的WORA(Write Once Run Anywhere)概念而开发的。编译器将Java文件编译为Java .class文件,然后将.class文件输入到JVM中,JVM会加载并执行类文件。JVM基本概念(1)基本概念:JVM是可运行Java代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃
作者:编程之家 时间:2020-09-15
JVM 线上故障排查基本操作
#前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢? 首先,出现问题,肯定要先定位问题所在,然后分析问题原因,再然后解决问题,最后进行总结,防止下次再次出现。 今天的文章,就如我们的题目一样,讲的是基本操作,也就是一些排查线上问题的基本方法。
作者:编程之家 时间:2020-09-15
jstat命令查看jvm的GC情况
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意!!!:使用的jdk版本是jdk8. 类加载统计: Loaded:加载class的数量 Bytes:所占用空间大小 Unloaded:未加载数量 Bytes:未加载占用空间 Time:时间 编译统计 Compil
作者:编程之家 时间:2020-09-15
一文学会JVM配置参数与工具使用
经过前面的各种分析,我们知道了关于JVM很多的知识,比如版本信息,类加载,堆,方法区,垃圾回收等,但是总觉得心里不踏实,原因是没看到实际的一些东西。 所以这在本文,咱们就好好来聊一聊关于怎么将这些内容进行直观地展示在我们面前,包括怎么进行相应的一些设置。OK,let‘s go! 8.1 JVM参数 8.1.1 标准参数 -version -help -server -cp 8.1.2 -X参数 非
作者:编程之家 时间:2020-09-15
JVM:Hotspot虚拟机中的对象
在HotSpot虚拟机中,对象在内存中存储的布局可以被分为3个区域:对象头(Header)、实例数据(Instance data)和对齐填充(Padding).对象头包括两部分信息,第一部分存储自身的运行时数据,如哈希值、GC分代年龄、锁状态标志、线程持有的锁、偏向锁ID、偏向时间戳等,这部分数据的长度在32位和64位的虚拟机中(未开启压缩指针)分别为32bit和64bit,官方称它为 Mark
作者:编程之家 时间:2020-09-16
JVM:垃圾收集器与对象的"存活"问题
垃圾收集器 垃圾收集(Garbage Collection,GC)。当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统更高并发量的瓶颈时,我们需要去了解GC和内存分配。 检查对象的"存活"状态 引用计数法:每当有一个地方引用对象时,计数器加1;当引用值失效,减1;任何时刻计数器为0,则表示对象不可能再被使用。缺点就是很难解决对象之间相互循环引用的问题。(如a.instance=b;b.in
作者:编程之家 时间:2020-09-16
【JVM】(四) :垃圾回收机制GC
垃圾的标准 对象被判定为垃圾的标准: 没有被其他对象引用 判断对象是否为垃圾的算法: 引用计数算法 可达性分析算法 引用计数算法 判断对象的引用数量: 通过判断对象的引用数量来决定对象是否可以被回收 每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1 任何引用计数 为0的对象实例可以被当作垃圾收集 代码示例 public void ReferenceQuoteCounterPr
作者:编程之家 时间:2020-09-16
JVM 参数查看与设置
JVM(Java虚拟机) 简单介绍一下JVM,JVM本质上是一个程序,用来执行字节码文件(.class) JVM的参数查看 https://www.jianshu.com/p/c6a04c88900a 在控制台输入 jps 打印当前运行的虚拟机进程 //监视虚拟机运行状态 jstat -<option> <pid> //生产堆存储快照 jmap -<option> <pid> //
作者:编程之家 时间:2020-09-16
JVM 指令集
指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 0x03 iconst_0 将int型0推送至栈顶 0x04 iconst_1 将int型1推送至栈顶 0x05 iconst_2 将int型2推送至栈顶 0x06 iconst_3 将int型3推送至栈顶 0x07 iconst_4
作者:编程之家 时间:2020-09-16
prometheus 监控jvm-tomcat
1.prometheus的配置 - job_name: ‘java01‘ #按照这个来分组 scrape_interval: 10s static_configs: - targets: [‘192.168.1.44:6060‘] labels: instance: jvm44 2. jmx-exporter/simple-c
作者:编程之家 时间:2020-09-16
上一页
109
110
111
112
113
114
115
116
下一页
小编推荐
热门标签
更多
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