logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

JVMTI 实现统计Java类对象实例个数

上述回调函数的第三个参数class_tag可以用来进行对Class进行分组,相同的class_tag对应相同的类对象,从而在FollowReferences的回调函数中完成Class对象实例个数的累加和所占用空间大小的计算。Java没有提供很直接优雅的方式让我们能够去轻易的去获取类对象的实例的数量,也许是出于性能的考虑,也许是这种事情本身没有显示出多大的价值,毕竟不那么常用。当Class参数值为空

#jvm#c++#java
Java代理agent实践

比如我们常用的开发工具idea就可以通过在jvm虚拟机参数中加入了 -javaagent 选项来实现破解,因为idea启动的时候装载了一个jvm进程,这也是破解的前提。这个包功能非常强大,jdk常用的工具在这个包中都有对应的实现,比如javac,jinfo,jar等。这两个方法参数时一致的,在调用loadAgent或者命令行参数指定-javaagent的时候jvm会将控制权转移到这两个方法,在这里

#java#开发语言
windows下c/c++创建Java虚拟机加载可执行jar包

一般的,我们使用java.exe或者javaw.exe来执行我们的java应用程序。但是实际上这两个可执行程序只是java虚拟机的启动器,使用java.exe将会创建一个控制台窗口用于输出,而javaw则不会创建控制台窗口。如果你讨厌黑乎乎的控制台窗口,那么就使用javaw.exe去加载。java虚拟机的主要实现包含在 java.dll 和 jvm.dll这两个动态链接库之中。我们以jdk1.8.

#java#jar
使用javassist改写类实现拦截sql语句输出实操

众所周知,javassist能够在字节码层面去重新构建一个已经存在的类,同时结合java虚拟机代理Instrumentation 根据类的字节码重定义类的能力。我们可以去动态改写一个类的方法,这个粒度可以精确到代码行。一般我们重定义类,可能希望增加或者减少字段,增加或者减少方法。但是结合我们常用的hotspot虚拟机具体实现,只对重写方法体逻辑生效,也就是我们只能重构类里面已经存在的方法。虽然虚拟

#java#mysql#sql
Java中使用webview内嵌vue页面

技术服务于业务,在什么情况下我们需要使用webview去内嵌vue页面呢。众所周知webview作为一个组件,可以看成是一个微型浏览器内核。那么如果在我们的程序中集成webview,那么我们的程序是不是也可以看成是一个定制版本的微型浏览器呢。如果只是纯粹的web应用也就是不需要参与过多的与本地化资源交互,我们只需要在浏览器中使用前端就可以了。虽说B/S模式已经大行其道但是毕竟还是得益于浏览器本身丰

#webview#vue.js#javascript
谷歌浏览器调试vue项目

众所周知,在项目过程中我们常常遇到的一个问题就是本地调试的时候没问题但是发布到线上的时候就不行了。在时间充裕的情况下,我们当然可以慢慢调试,但是那是不可能的。选择完文件夹之后右键点击已打开的test.html标头 选择 "save for overrides" 将test.html保存到我们选的文件夹中。它能够实现 在不改动源码且不用重新打包发布就能改变前端脚本的执行逻辑,这样就大大减少了排错的时

#前端#html5#javascript +1
Java中使用webview内嵌vue页面

技术服务于业务,在什么情况下我们需要使用webview去内嵌vue页面呢。众所周知webview作为一个组件,可以看成是一个微型浏览器内核。那么如果在我们的程序中集成webview,那么我们的程序是不是也可以看成是一个定制版本的微型浏览器呢。如果只是纯粹的web应用也就是不需要参与过多的与本地化资源交互,我们只需要在浏览器中使用前端就可以了。虽说B/S模式已经大行其道但是毕竟还是得益于浏览器本身丰

#webview#vue.js#javascript
jdk工具jvisualvm的使用

它通过集成一系列可视化的插件来实现强大的功能并支持拓展。选中一个java.io.File对象进入详细页面,可以查看该对象的所有字段信息和该对象的引用关系,“字段”区域包括java.io.File类以及其所有父类的字段以及对应字段的值,"引用"区域包括引用该File对象的对象。使用jvisualvm对java进程数据的监控,能够帮助我们提升排查Bug的效率。我们可以通过堆dump功能来判断一个类对象

文章图片
#html#前端
ProcessMonitor实现进程文件和注册表监控

对于文件、网络等监控亦是如此,进程的启动和执行离不开对于文件的读写,,相信很多人都碰到DLL文件找不到但是却又不知道DLL放在哪个路径的问题,而这个工具能捕获进程的所有文件读写信息,正好解决了这种问题。一般我们监控指定进程可以使用processName和PID,以谷歌浏览器为例,它的进程名是chrome.exe,那么就可以根据 "processName is chrome.exe"来监控所有的ch

文章图片
#运维#bug
到底了