12 2020 档案

摘要:当 JVM 内存严重不足时,就会抛出 java.lang.OutOfMemoryError 错误。本文总结了常见的 OOM 原因及其解决方法,如下图所示。如有遗漏或错误,欢迎补充指正。 1、Java heap space 当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出 ja 阅读全文
posted @ 2020-12-29 17:08 link_ed 阅读(319) 评论(0) 推荐(0) 编辑
摘要:(一)Spring IOC容器 对象循环依赖 1. 什么是循环依赖? what? (1)循环依赖-->循环引用。 >即2个或以上bean 互相持有对方,最终形成闭环。 eg:A依赖B,B依赖C,C又依赖A。【注意:这里不是函数的循环调用【是个死循环,除非有终结条件】,是对象相互依赖关系】 2. Sp 阅读全文
posted @ 2020-12-29 17:07 link_ed 阅读(116) 评论(0) 推荐(0) 编辑
摘要:nginx正向代理 server { listen 8090; server_name www.gps.com; location / { resolver 218.85.157.99 218.85.152.99; resolver_timeout 30s; proxy_pass http://$h 阅读全文
posted @ 2020-12-22 23:00 link_ed 阅读(197) 评论(0) 推荐(0) 编辑
摘要:简介 基于java开发,高可用 应用场景 1、应用解耦 2、流量销峰 3、异步处理 4、消息分发(邮件、短信、日志、数据处理) 延时队列场景:需要延时单次延迟执行的场景,比如订单取消 常见问题 1、如何保证高可用 集群部署 2、如何保证消息不丢失(消息的可靠性传输) 生产者丢失数据 开启生产者确认模 阅读全文
posted @ 2020-12-22 14:32 link_ed 阅读(102) 评论(0) 推荐(0) 编辑
摘要:运行时栈帧结构 局部变量表 操作数栈 动态连接 方法返回地址 附加信息 java虚拟机的运行时数据区域: 之前我们已经了解了有这么个区域,而且已经知道有栈帧这么一个结构,那我们就从方法执行的角度来剖析栈帧。 栈帧也叫过程活动记录,是编译器用来进行方法调用和方法执行的一种数据结构,它是虚拟机运行时数据 阅读全文
posted @ 2020-12-22 10:23 link_ed 阅读(76) 评论(0) 推荐(0) 编辑
摘要:概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制 相当于懒加载机制 OSGI 就是通过类的加载机制实现的 类加载时机 加载: 连接: 初始化: 在以下情况才会进行初始化 1、遇到new、gets 阅读全文
posted @ 2020-12-22 10:21 link_ed 阅读(147) 评论(0) 推荐(0) 编辑
摘要:简介 java虚拟机的指令是由一个字节长度的,代表着某种特定操作含义的数字,称之为操作码,以及跟随其后的零至多个代表此操作所需参数的操作数而构成 操作码的长度为1个字节,因此最大只有256条 基于栈的指令集架构 (还有一种是基于寄存器的) 字节码与数据类型 i l f d a代表引用类型 加载和存储 阅读全文
posted @ 2020-12-22 10:18 link_ed 阅读(188) 评论(0) 推荐(0) 编辑
摘要:Class文件简介和发展历史 class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在class文件之中,中间没有添加任何分隔符,整个class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在 当遇到8位字节以上的空间数据项时,则会按照高位在前的方式分割成若 阅读全文
posted @ 2020-12-22 10:14 link_ed 阅读(74) 评论(0) 推荐(0) 编辑
摘要:知识 工具 数据 经验 案例1 问题:经常有用户反馈长时间出现卡顿的现象 处理思路: 偶发,所以不会是sql问题 监控cpu 监控内存 发现fullGC频繁,每次需要20-30s,停顿时间过长 总结: 大对象过多,jvm内存设置的过大,老年代经常占满触发fullgc,老年代内存过大每次fullgc时 阅读全文
posted @ 2020-12-22 09:45 link_ed 阅读(103) 评论(0) 推荐(0) 编辑
摘要:jdk安装包bin目录下的.exe 命令行工具都是依赖于tools.jar 命令行工具 jps 列出当前运行的jvm进程 usage: jps [-help] jps [-q] [-mlvV] [<hostid>] Definitions: <hostid>: <hostname>[:<port>] 阅读全文
posted @ 2020-12-22 09:43 link_ed 阅读(88) 评论(0) 推荐(0) 编辑
摘要:内存分配策略 优先分配到Eden -XX:+UseSerialGc 指定SerialGc垃圾收集器 jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代) jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel 阅读全文
posted @ 2020-12-22 09:38 link_ed 阅读(73) 评论(0) 推荐(0) 编辑
摘要:https://docs.oracle.com/javase/7/docs/ JDK java de JRE java runtime environment JVM java virtual machine 内存溢出模拟 java.lang.OutOfMemoryError: java heap 阅读全文
posted @ 2020-12-21 12:48 link_ed 阅读(70) 评论(0) 推荐(0) 编辑
摘要:垃圾回收 如何判定对象为垃圾对象 引用计数法 在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器+1,当引用失效时,引用计数器-1。引用计数器为零时认为失效 这种方法解决不了相互引用的情况 虚拟机一般不用 可达性分析法 定义GCRoot(根节点),从GCRoot往下寻找,对象与gcr 阅读全文
posted @ 2020-12-21 12:46 link_ed 阅读(60) 评论(0) 推荐(0) 编辑
摘要:Elasticsearch脑裂问题详细分析以及解决方案 什么是脑裂问题脑裂问题其实就是同一个集群的不同节点对于整个集群的状态有不同的理解,导致操作错乱,类似于精神分裂 怎么发现集群产生脑裂问题吧 1.Elasticsearch出现查询非常缓慢的情况 2.通过命令查看集群的状态 3.curl -XGE 阅读全文
posted @ 2020-12-21 00:16 link_ed 阅读(1907) 评论(0) 推荐(0) 编辑
摘要:在java的多线程模块中,ThreadLocal是经常被提问到的一个知识点,提问的方式有很多种,可能是循序渐进也可能是就像我的题目那样,因此只有理解透彻了,不管怎么问,都能游刃有余。 这篇文章主要从以下几个角度来分析理解 1、ThreadLocal是什么 2、ThreadLocal怎么用 3、Thr 阅读全文
posted @ 2020-12-20 10:26 link_ed 阅读(138) 评论(0) 推荐(0) 编辑
摘要:分布式事务产生背景 数据库拆分 单库单表支撑不了业务时需要对数据库进行水平拆分。分库分表后,原来在一个数据库上就能完成的写操作,可能会跨多个数据库,就产生了跨数据库事务问题 业务服务化拆分 业务拆分后,一个完整的业务逻辑可能会涉及多个服务,多个服务之间存在跨服务事务问题 分布式事务理论基础 两阶段提 阅读全文
posted @ 2020-12-19 23:54 link_ed 阅读(313) 评论(0) 推荐(0) 编辑
摘要:在说说Java里有equals(上) 这篇文章里,文末我们提到了String底层是char数组来实现的,好多人当年上学时被二维数组,三维数组吓哭了吧。我们今天来讲讲数组,数组非常的重要,很多常用类,比如String等底层都是用数组来实现的,后续我们会一一讲到,多少人很久没用数组了?是否都在用Arra 阅读全文
posted @ 2020-12-16 00:53 link_ed 阅读(89) 评论(0) 推荐(0) 编辑