简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
类加载机制概念Java虚拟机把描述类的class文件加载到内存,对其进行校验、转换解析、初始化等操作,最终得到可以被虚拟机直接使用的java类型,这就是虚拟机的加载机制。加载将class文件读入到内存中,并将其放在运行时数据区的方法区内,然后在堆中创建一个java.lang.Class对象,用来封装在方法区的数据结构。在这个阶段,主要完成如下三件事:通过一个类的全限定名获取此类的二进制字节流(Cl
Hotspot JVM的系统线程说明说明:JVM中所使用的线程与原生操作系统线程有着直接的映射关系,这些线程由操作系统统一调度并分配到可用的CPU上当JVM创建线程时其实就是在系统原生上创建线程原生线程初始化完成后会调用java中的run()方法当Java线程结束后,原生线程随之被回收在Hotspot JVM中,后台运行的线程有如下几个:虚拟机线程(VM Thread)这个线程等待JVM到达安全点
Java内存模型(Java Memory Model),简称JMM,定义了JVM(Java虚拟机)在计算机内存(RAM)中的工作方式,目的是定义一个一致的、跨平台的内存模型,是隶属于JVM的。我们先来看看内存模型的组成(Java 8)其中需要注意的几个点:线程私有:私有数据区域其它线程不可见,生命周期随着线程的的启动而创建,线程结束而销毁。线程共享:所有线程可见,生命周期跟随着JVM的启动/关闭而
内存管理参数本参数以JDK1.8为基础进行整理,目前默认参数大概有660个左右,使用java -XX:+PrintFlagsFinal -version可以输出所有参数的名称及默认值名词解释-XX:开头的参数代表虚拟机非稳定参数-XX:+ 开启option参数-XX:- 关闭option参数-XX:= 将option参数的值设置为valueJVM设置经验客户端应用-Xverify:none-XX:
Java堆溢出现象java.lang.OutOfMemoryError: Java heap space原因大量对象没有释放,无法回收解决方案使用内存映像分析工具分析 Dump 出来的堆转储快照,分析对象是是否合理存在,可以排查是内存泄露还是溢出如果内存泄露,工具查看泄漏对象到 GC Root 的引用链,定位出泄漏的位置;如果不存在泄漏,检查虚拟机堆参数(-Xmx 和 -Xms)是否可以调大配置配
why 为什么需要网关?如图可知:在常规没有网关的情况下,无法对多个服务进行统一的处理,比如我需要做统一的鉴权,这时候需要在每个服务上增加鉴权功能来达到目的,工作量大且不好维护在有网关的情况下,可以将所有的流量都达到网关,然后通过网关来对请求做统一的鉴权处理,非常方便what 网关的应用场景降低复杂性,如前台请求多个服务,可以通过网关进行简化鉴权(网关中重点):用户是否合法?有哪些权限可以请求哪些
背景:在gridPane中使用自适应,没有放置ImageView的时候一切都正常的被缩放,但使用之后,ImageView只能被放大,无法缩小。解决方案:最终思路通过再放置一个StackPane,让图片所在的容器StackPane跟随着另一个StackPane比例缩放即可具体的监听代码如下:// 监听尺寸变化bannerContainer.widthProperty().addListener(ev
约定优于配置,这是SpringBoot中的一个很重要特性,此特性让我们可以在几秒中之内完成一个项目的搭建,无需任何配置,本文就通过深入源码的方式来探索下自动配置的实现过程为什么要自动配置手动配置很麻烦且容易出问题构建一个一样的项目耗时长且复杂Overview概括来说,就是借助@Import的支持,收集和注册特定场景相关的bean定义来进行自动配置eg:@EnableAutoConfiguratio
在RocketMQ中,消息存储是由CommitLog和ConsumerQueue配合完成消息存储结构首先我们先来看下整体的消息存储结构基本过程:生产者在生产消息的时候是将消息存储在CommitLog文件中消费者在读取消息时,先读取ConsumeQueue,然后再通过ConsumeQueue中的位置信息读取CommitLog文件中具体的消息数据得到原始消息。这里有两个需要注意的地方,CommitLo
什么是Kafka?Apache Kafka是一个开放源代码的分布式事件流平台,成千上万的公司使用它来实现高性能数据管道,流分析,数据集成和关键任务等相关的应用程序。Kafka的应用场景构造实时流数据管道,它可以在系统或应用之间可靠地获取数据 (相当于message queue),特别是在集群情况下,多个服务器需要建立交流构建实时流式应用程序,对这些流数据进行转换或者影响。 (就是流处理,通过kaf