visualvm是jdk自带的一款监控工具.它提供了一个可视界面,用于查看 Java 虚拟机上运行的基于 Java 技术的程序的详细信息.VisualVM 对 Java Development Kit (JDK) 工具所检索的 JVM 软件相关数据进行组织,并通过一种使您可以快速查看有关多个 Java 应用程序的数据的方式提供该信息.您可以查看本地应用程序以及远程主机上运行的应用程序的相关数据 #安装visualVM: windows安装完jdk后,在jdk的安装目录bin目录下有可执行文件:j…
VisualVM是什么? VisualVM是JDK自带的一个用于Java程序性能分析的工具,JDK安装完毕后就有啦,在JDK安装目录的bin文件夹下能找到名称为jvisualvm.exe. 要使用VisualVM分析您的应用性能,首先得让VisualVM识别出您的应用.Eclipse有个插件名叫"VisualVM Launcher for Eclipse",可以帮助我们做到这一点. Eclipse VisualVM Launcher的安装和配置 1. 从下面的链接下载VisualVM…
使用JDK自带的visualvm进行性能监测和调优   1.关于VisualVm工具  VisualVM 提供在 Java 虚拟机 (Java Virutal Machine, JVM) 上运行的 Java 应用程序的详细信息.在 VisualVM 的图形用户界面中,您可以方便.快捷地查看多个 Java 应用程序的相关信息. 入门指南(中文版)地址:http://visualvm.java.net/zh_CN/gettingstarted.html 在进行性能监测前,先安装好相关的插件 2.监控…
请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 Github · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] 带你建立核心竞争力. 前言 大家好,我是小彭. 过去两年,我们在掘金平台上发布过一些文章,小彭也受到了大家的意见和鼓励.最近,小彭会陆续搬运到公众号上. 学习路线图: 1. 认识服务发现? 1.1 什么是服务发现 服务发现(Service Provider Interface,SPI)是一个服务的注…
利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码. 二.如何启动JConsole 如果是从命令行启动,使 JDK 在 PATH 上,运行 jconsole…
最近看到了大量关于java性能调优.故障排查的文章,自己也写了一篇Java调优经验谈.接着此篇文章,其实一直打算写写一些常用调优工具以及它们的惯常用法的.后来在http://java-performance.info这个站点上看到了类似的一篇博文,自我感觉很有指导意义.于是决定翻译+重组织一下此篇文章:Java server application troubleshooting using JDK tools. 引言 在Java世界中,我们的很多开发工作从编码.调试到调优都在使用GUI工具.我…
最近看到了大量关于java性能调优.故障排查的文章,自己也写了一篇< Java调优经验谈 >.接着此篇文章,其实一直打算写写一些常用调优工具以及它们的惯常用法的.后来在http://java-performance.info这个站点上看到了类似的一篇博文,自我感觉很有指导意义.于是决定翻译+重组织一下此篇文章:Java server application troubleshooting using JDK tools. 引言 在Java世界中,我们的很多开发工作从编码.调试到调优都在使用GU…
有时候碰到服务器CPU飙升或者程序卡死之类的问题,一般都不太好定位.这类bug一般都隐藏的比较深并且还可能是偶发性的,比较棘手. 对于此类问题,一般我们都有固定的分析流程.借助于JDK自带的一些分析工具,比如jstack.jmap.jstat一类的命令行工具,除此之外,还有jconsole.mat.jvisualvm这些图形界面分析工具. 这篇文章基于JDK8,操作系统是macOS 12.0.1 1.一些命令行分析工具 这些命令行分析工具都在jdk/bin目录下 解压jdk/lib/tool.j…
前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具:keytool,外加看了同事的心得体会,自己总结了一下具体的使用方法和使用过程中发现的问题及解决办法. 1:什么是HTTPS? HTTPS其实是有两部分组成:HTTP + SSL / TLS, 也就是在HTTP上又加了一层处理加密信息的模块,并且会进行身份的验证. 问题: Firebug和postm…
前言 总的结论就是:不推荐使用JDK自带的观察者API,而是自定义实现,但是可以借鉴其好的思想. java.util.Observer 接口源码分析 该接口十分简单,是各个观察者需要实现的接口 package java.util; public interface Observer { void update(Observable o, Object arg); }  借鉴 JDK 封装方法的过多参数的方案 也十分直接,就是使用顶级父类 Object 做参数类型,然后自己可以定义一个参数封装的类…
本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 开发时间久了,难免会写出一些一些死锁的代码,自己明明调用该方法可该方法就是不执行.不进该方法.日志也不打印! 这里我们模拟一段死锁的代码,使用jdk自带的管理工具来排查是不是死锁了! //死锁代码 public class DeadLockDemo implements Runnable{ public int flag = 1; //静态对象是类的所有对象共享的 private static Obj…
  一.概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id   jstack 查看Java线程      jstack -l pid; 做thread dump,直接打印在串口     jstack pid>> ./threaddumps  输出到指定文件分析   jmap 查看Java内存使用情况         jmap -histo:live pid 对象占用内存排名     jmap -dump:file=memroydumps pid 把h…
该篇文章,主要是工具普及,告诉大家有这么两款工具,可帮助我们进行JVM调优,及时看到JVM的变化. 不过建议,最好还是对于JVM相关的知识点,有一定的基础和熟悉. JDK自带jconsole.exe和jvisualvm.exe这两款JVM分析工具.就跟平时打开eclipse.exe文件一样,双击即可 1.jconsole.exe进去后,如图: 内存: 线程: 类: 概要: MBean 2.java VisualVm 总的来说,这两款工具,使用方式基本没有什么区别,都能帮助你用于JVM分析.…
版权声明:本文为Jaiky_杰哥原创,转载请注明出处.This blog is written by Jaiky, reproduced please indicate. https://blog.csdn.net/jaikydota163/article/details/52783588 关于Logger 最近放假在家无聊,研究一个开源框架时发现它频繁运用到了一个叫Logger的相关类来进行日志记录,作为log4j的忠实粉丝,在大多数项目上都看到的是log4j和commons-logging,…
监控小程序的配置 生产环境tomcat的配置 编辑应用所在的tomcat服务器下的bin目录下的catalina.sh文件,修改如下: 配置如下内容: export JAVA_OPTS="-Xms256m -Xmx512m -Xss256m -XX:PermSize=512m -XX:MaxPermSize=1024m  -Djava.rmi.server.hostname=136.64.45.24 -Dcom.sun.management.jmxremote.port=9315 -Dcom.s…
一.初识 ReentrantLock出身自jdk1.5,中文名:可重入锁 是Java JDK自带独占锁的唯一实现,是synchronized的升级版 1.我们之间有个synchronized 我们已经认识了synchronized了,知道他能把我们实现线程同步提供原子性语义,同时又有可重入性 同时我们也已经知道可重入性是什么意思,也知道公平性的含义 可以通过阅读 ReentrantLock 的源码,来加深对sychronized一些特性的理解 2.升级版,体现在哪些方面 前面说了Reentran…
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/ 1.问题描述 在做S3下载压力测试,需要对服务器进行性能监测,由于时间问题就使用JDK自带工具来监测. 2.操作方法 1.启动命令 1.Linux启动jar命令 java -Djava.rmi.server.hostname=替换成服务所在ip -Dcom.sun.manageme…
一.概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id   jstack 查看Java线程      jstack -l pid; 做thread dump,直接打印在串口     jstack pid>> ./threaddumps  输出到指定文件分析   jmap 查看Java内存使用情况         jmap -histo:live pid 对象占用内存排名     jmap -dump:file=memroydumps pid 把hea…
一.JDK的命令行工具 1.jps(JVM Process Status Tools):虚拟机进程状况工具 jps -l 2.jinfo(Configuration Info for java):Java配置信息工具 jinfo [option] pid 3.jmap(Memory Map for java):java内存映像工具 用于生成堆转储快照,即dump文件 jmap -dump:format=b,file=eclipse.bin 3500 #3500是通过jps命令拿到的LVMID 4…
1,建立自己的java项目my_service 2,建立包,com.hjg.service 3,创建类: IMyService.java package com.hjg.service; import javax.jws.WebService; @WebService public interface IMyService { int add(int a, int b); int minus(int a,int b); } 加上@Webservice注解JAX-WS注解,表示java api x…
有时候在MyEclipse中,文件只能保存为“ISO-8859-1”的类型,而这种类型的文件时无法保存中文数据的,那么我们只能将中文数据经过Unicode编码才能往文件中保存,这里可以使用JDK自带的工具——native2ascii. 使用命令行窗口,输入“native2ascii”,如下图所示: 输完回车后,光标会另起一行,这时候就可以输入中文了,按回车结束,对应的Unicode码会在下一行显示:…
package com.stone.dp.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; /** * jdk自带的动态代理:必须实现了某个接口:<br> */ public class JdkProxy implements InvocationHandler { private Object obj; publ…
使用JDK自带的MessageDigest计算消息摘要 上代码 /** * 使用JDK自带MessageDigest */ public class MessageDigestUtils { /** * 计算消息摘要 * @param algorithm 消息摘要算法 * @param in 数据流 * @return 消息摘要 * @throws IOException * @throws NoSuchAlgorithmException */ public static byte[] dig…
OK,现在我们来研究下JDK自带的日志Logger. 从jdk1.4起,JDK开始自带一套日志系统.JDK Logger最大的优点就是不需要任何类库的支持,只要有Java的运行环境就可以使用. 相对于其他的日志空间,JDK自带的日志可谓是鸡肋,无论易用性,功能还是扩展性都要稍逊一筹,所以在商业系统中很好直接使用. 我们现在整理到日志系列了,所以这里只是做一个简单的介绍就好了,比较实际编码中也不会写到这部分代码. JDK Logging把日志分为如下几个级别,等级依次升高. all→finest→…
package com.tools.util; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher;…
Jvisualvm:jdk自带的监控工具(JDK1.6+) 在终端中输入Jvisualvm回车出现如下界面:…
1 代码如下 public class LRULinkedHashMap<K, V> extends LinkedHashMap<K, V> { private final int maxCapacity; private static final float DEFAULT_LOAD_FACTOR = 0.75f; private final Lock lock = new ReentrantLock(); public LRULinkedHashMap(int maxCapac…
转自:http://blog.csdn.net/huangxinyu_it/article/details/41693633 有关http与https的区别请看<浅谈http与https的区别(转)> 目前我们看到的很多网站采用的都是http协议,信息是明文传输的,很容易被黑客或是有恶意行为的人截获,所以对于安全系数比较高的系统(如:银行等)不能直接采用http协议,需要采用https协议.使用https协议需要购买ca认证,本示例我们采用jdk自带的keytool工具生成证书,但是实际项目中…
1.何为注解? 概念:注解(Annotation),也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次.它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来对这些元素进行说明,注释.          如下所示,我们在编程中经常遇到的@Override等等都是注解. 2.注解的分类 2.1 按照运行机制  (往后会讲) 源码注解:       注解只在源码中存在,编译成.class文件就不存在了. 编译时注解:       注解在…
对于处于运行状态中的Java进程,JDK自带了很多工具,允许Java开发人员监控运行进程中的各种状态,比如该进程内部创建了多少个对象实例,消耗了多少内存,等等. 本文基于JDK1.8而写成. 我下面写了一个最简单的Java类,包含了一个无限循环,每隔5秒增加一个计数器的值. package jmap; class Tool{ private int count = 0; public void Run() throws InterruptedException{ while(true){ Sys…