随笔分类 -  Java提升

摘要:一、 使用 jps 命令查看配置了JVM的服务 jps 红框标记的是进程号 二、查看某个进程JVM的GC使用情况 jstat -gc 进程号 S0C:年轻代中第一个survivor(幸存区)的容量 (字节) S1C:年轻代中第二个survivor(幸存区)的容量 (字节) S0U:年轻代中第一个su 阅读全文
posted @ 2020-11-26 11:07 MoreThinking 阅读(17182) 评论(0) 推荐(3)
摘要:最近在项目中,使用到了WebSocket来实时推送服务器的数据到客户端,今天来记录总结一下。 想要使用WebSocket来实时推送数据,首先需要服务器与客户端直接建立连接,也就是握手(HTTP协议) 每5秒钟发生一个心跳 @Scheduled(cron = "0/5 * * * * ? ") pub 阅读全文
posted @ 2020-09-11 16:37 MoreThinking 阅读(504) 评论(0) 推荐(0)
摘要:在SpringBoot中,基于Mybatis多数据源操作,需要以下配置: 1、在项目的pom.xml 文件中配置多个数据库的连接配置信息 2、根据数据源的数量编写多个数据库的配置文件xxxxConfig 导入的包: import com.alibaba.druid.pool.DruidDataSou 阅读全文
posted @ 2020-09-11 15:42 MoreThinking 阅读(216) 评论(0) 推荐(0)
摘要:反射机制 Java语言提供的一种基础功能,通过反射,我们可以操作这个类或对象,比如获取这个类中的方法、属性和构造方法等。 动态代理:分为JDK动态代理、cglib动态代理(spring中的动态代理)。 静态代理 预先(编译期间)确定了代理者与被代理者之间的关系,也就是说,若代理类在程序运行前就已经存 阅读全文
posted @ 2019-01-23 17:20 MoreThinking 阅读(2136) 评论(0) 推荐(1)
摘要:在介绍垃圾回收算法之前,我们需要先了解一个词“stop the world”,stop the world会在执行某一个垃圾回收算法的时候产生,JVM为了执行垃圾回收,会暂时java应用程序的执行,等垃圾回收完成后,再继续运行。如果你使用JMeter测试过java程序,你可能会发现在测试过程中,ja 阅读全文
posted @ 2018-11-05 11:08 MoreThinking 阅读(617) 评论(0) 推荐(1)
摘要:JVM配置参数分为三类参数:跟踪参数、堆分配参数、栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存。 跟踪参数 跟踪参数用户跟踪监控JVM,往往被开发人员用于JVM调优以及故障排查。 1、当发生GC时,打印GC简要信息 使用-XX:+PrintGC或-verbose:gc参 阅读全文
posted @ 2018-11-01 16:18 MoreThinking 阅读(1515) 评论(1) 推荐(1)
摘要:这篇文章我们将根据JVM的内存模型探索java当中变量的可见性以及不同的java指令在并发时可能发生的指令重排序的情况。来聊聊java线程对一个变量的更新怎么通知另一个线程,及volatile的作用和指令重排序的问题。 内存模型 首先我们思考一下一个java线程要向另外一个线程进行通信,应该怎么做呢 阅读全文
posted @ 2018-10-31 17:38 MoreThinking 阅读(573) 评论(0) 推荐(1)
摘要:我们知道我们编写的java代码,会经过编译器编译成字节码(class文件),再把字节码文件装载到JVM中,最后映射到各个内存区域中,我们的程序就可以在内存中运行了。那么问题来了,这些字节码文件是怎么装载到JVM中去的呢。中间经过了哪些步骤?我们常说的双亲派模式又是怎么回事?本文就来说说这些问题。 类 阅读全文
posted @ 2018-10-30 14:20 MoreThinking 阅读(413) 评论(0) 推荐(1)
摘要:学过java知识和技术人,都应该听说过jvm,jvm一直是java知识里面晋级阶段的重要部分,如果想要在java技术领域更深入一步,jvm是必须需要明白的知识点。 本篇来讲解jvm的基础原理,先来熟悉一下大致的流程: JVM运行流程: 我们都知道java一直宣传的口号:一次编译,到处运行。也是它的跨 阅读全文
posted @ 2018-10-18 16:23 MoreThinking 阅读(556) 评论(0) 推荐(1)