Java
Chihay
奋斗,就是每一天都很难,却一年比一年容易。
展开
-
VisualVM 之 SSL+JMX
JMX虽然可以使用密码来验证用户,但还是不够安全,只要获取到密码,在任何机器上都可以连接JVM。在生产环境这是一种危险的操作,所以需要使用到SSL,SSL需要提供证书才能访问,安全性较高。第一步:制作keystore 和truststore上述提到的证书,主要保存了public key,由于SSL是一个非对称加密协议,因此还有一个private key,在Java里,public key、private key是保存在keystore里面的。下面主要讲下client 和 server..原创 2020-09-07 15:15:47 · 485 阅读 · 1 评论 -
VisualVM 之 JMX
在VisualVM + Jstatd 监控的时候,是Java进程的CPU、线程、MBean信息。如果要获取这些信息那就需要用到JMX方式了。自JAVA6之后,java程序在启动之后都会在JVM内部创建一个JMX Agent,JMX Agent 会启动一个MBean server组件,把MBeans注册到它里面,然后暴露给JMX client。简单来说就Java程序可以通过JMX 暴露给JMX client。而这个JMX client 就是VisualVM。使用JXM在启动Java程序的时候.原创 2020-09-06 18:16:05 · 670 阅读 · 0 评论 -
JDK动态代理缓存——WeakCache
在上一篇文章中分析了JDK动态代理的整体流程,但是并没有分析其中缓存实现。在这里将会对WeakCache进行一次具体分析。WeakCache是一个二级缓存实现。其存储方式主要使用ConcurrentMap。具体机制下面通过代码分析。JDK代理调用地方从代码可以看出,从WeakCache缓存获取的时候,需要两个参数,一个是class loader 和 interface 数组。这两个参数都是用来生成key的。 /** * Generate a proxy class. .原创 2020-05-26 18:20:13 · 495 阅读 · 0 评论 -
synchronized 分析和使用
意义synchronized可以实现一个简单的策略来防止线程互相干扰和内存一致性的错误。如果一个对象对于多个线程是可见的,那么对该对象的读或者写都将使用同步的方式进行。具体体现如下:1、synchronized关键字提供锁的机制,能够确保共享变量的互斥访问,从而达到内存数据的一致性2、synchronized关键字提供monitor enter 和monitor exit两个JVM指令...原创 2020-04-14 12:08:21 · 212 阅读 · 0 评论 -
SimpleDateFormat multiple points异常
SimpleDateFormat是一个线程不安全的类,在多线程下使用的时候特别需要注意。如果在多线程情况下使用,每个线程都需要创建各自的实例,或者需要自行封装成一个线程安全的SimpleDateFormat 类(synchronized/ThreadLocal方式实现),否者会出现java.lang.NumberFormatException: multiple points异常。...原创 2020-04-09 18:01:05 · 255 阅读 · 0 评论