logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

JVMTI开发教程之一个简单的Agent

概述JVM TI是JDK提供的一套用于开发JVM监控, 问题定位与性能调优工具的通用编程接口(API)。通过JVMTI,我们可以开发各式各样的JVMTI Agent。这个Agent的表现形式是一个以c/c++语言编写的动态共享库。JVMTI Agent原理: java启动或运行时,动态加载一个外部基于JVM TI编写的dynamic module到Java进程内,然后触发JVM源生线程Attach

java agent基础原理

本文重点讲述javaagent的具体实现,因为它面向的是我们java程序员,而且agent都是用java编写的,不需要太多的c/c++编程基础,不过这篇文章里也会讲到JVMTIAgent(c实现的),因为javaagent的运行还是依赖于一个特殊的JVMTIAgent。对于javaagent或许大家都听过,甚至使用过,常见的用法大致如下:java -javaagent:myagent.jar=mo

#java#jvm
对象死亡的过程

在《JVM中判断对象是否存活的方法》这篇博文中,我们了解了主流的Java虚拟机都是通过可达性分析算法判断对象是否存活的。其实,即使在可达性分析算法中被判断为不可达的对象,也并非是“非死不可”的,它们此时处于“缓刑”阶段,要真正宣告一个对象的死亡,至少要经历两次标记过程:如果对象在可达性分析算法中被判断为不可达,即不存在任何GC Roots到这个对象的引用链,那么这个对象会被第一次标记,并进行一次筛

#java#jvm
JVM中判断对象是否存活的方法

Java中几乎所有的对象实例都存放在堆中,在垃圾收集器对堆内存进行回收前,第一件事情就是要确定哪些对象还“存活”,哪些对象已经“死去”(即不可能再通过任何途径被使用)。引用计数算法  首先需要声明,至少主流的Java虚拟机里面都没有选用引用计数算法来管理内存。  什么是引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器值减1.任何时刻计数器值为0

#jvm#java
Docker和虚拟机的区别

这是docker官网的图,可以看到虚拟化技术通过Hypervisor(虚拟机管理系统)为每个app启动一个Guest OS(客户机操作系统),也就是为每个app启动一个虚拟机。比较直观地说,vm通过Hypervisor对硬件资源进行虚拟化,而docker直接使用硬件资源,利用率上来看docker明显更具有优势。  上一组从知乎上看到的图:    可以看到,容器隔离的粒度更加小一点,而且多

#操作系统#虚拟机
Linux下$#,$0,$1,$2,$3,$@,$*,$$,$?代表的含义

$# :传给脚本的参数个数;$0 :脚本名称;$n :n为数字,代表传给脚本的第n个参数;$@ :参数列表;$*:也是显示参数列表,与上一条命令不同的是,当在双引号里面时,”$*”表示一个参数,即”a b c”,而”$@”表示三个参数,即”a” “b” “c”;$$ :执行当前脚本的进程ID;$? :最后一条命令的退出状态,0表示执行成功,非0表示执行失败.示例: 建立一个脚本te

#linux
linux下查看某一端口被哪个进程占用

方法1: lsof命令,即ls open fileslsof -i:端口号例如:方法2: netstat命令netstat -tunpl | grep 端口号例如:

#linux
配置maven环境并在eclipse中搭建第一个maven工程

配置maven环境①首先需要配置好java环境变量。②解压maven核心程序:  将apache-maven-3.3.9-bin.zip解压到一个非中文无空格的目录下。例如:F:\Maven\apache-maven-3.3.9③配置环境变量:  右键计算机 -> 属性 ->高级系统设置 ->环境变量,在用户变量中新建(如果存在则编辑)以下两个变量:  变量名1:M2_HOME

#eclipse#maven
关于配置了数据库方言为MySQLInnoDBDialect后Hibernate不能自动建表的问题

当需要使用支持事务的数据库方言,并且使用了mysql 5.5及以上版本时,需要将数据库方言配置为org.hibernate.dialect.MySQL5InnoDBDialect  注意是MySQL5InnoDBDialect,而不是MySQLInnoDBDialect,否则不能自动建表。  另外附上各种数据库对应的方言:数据库

#数据库#hibernate#mysql
在Eclipse下搭建Hibernate框架

实现在Eclipse中搭建一个Hibernate框架。在这里,我使用的数据库是mysql5.5。1.安装和当前Eclipse版本匹配的Hibernate插件或者JBoss插件:  在Eclipse中点击Help —> Eclipse Marketplace,搜索JBoss Tools,点击install,选择要安装的JBoss插件(我选择了全部),一路默认即可,安装完后重启Eclipse。

#hibernate#eclipse#数据库 +1
    共 11 条
  • 1
  • 2
  • 请选择