3 登峰小蚁

尚未进行身份认证

我要认证

编程,运动,顺便把钱赚了。

等级
TA的排名 1w+

0050-垃圾回收器

文章目录1. 基础定义1.1 按线程数分1.2 按工作模式分1.3 性能指标2. 垃圾回收器概述3. Serial-串行回收器3.1 Serial3.2 Serial Old4. ParNew-并行回收器5. Parallel-吞吐量优先回收器5.1 Parallel Scavenge5.2 Parallel Old6. CMS-低延迟回收器7. G1-区域化分代式回收器8. GC总结9. GC日志分析1. 基础定义1.1 按线程数分按线程数分,垃圾回收器可以分为串行或者并行(指的是垃圾回收的线程)

2020-06-29 15:31:04

0040-垃圾收集算法

文章目录1. 前言2. 标记算法2.1 引用计数算法2.2 可达性分析算法3. 对象的finalization机制4. 垃圾清除阶段算法4.1 标记-清除(Mark-Sweep)4.2 复制算法(Copying)4.3 标记-压缩算法(Mark-Compact)4.4 三种算法的比较5. 分代收集算法6. 补充算法6.1 增量收集算法6.2 分区算法1. 前言垃圾回收分为两个阶段,首先确认哪些对象是垃圾——标记阶段,其次是垃圾确认以后的回收——回收阶段2. 标记算法2.1 引用计数算法1. 简述

2020-06-29 15:28:35

0036-StringTable

文章目录1. String的基本特性2. String的内存分配3. String的基本操作4. 字符串拼接操作5. intern()的使用1. String的基本特性String的基本特性1. String字符串的定义方式 String s1 = "atguigu";// 字面量定义方式 String s2 = new String("hello"); 2. String声明为final的,不可被继承3. String实现了Serializable接口:表示字符串是支持

2020-06-03 16:15:14

0035-对象实例化步骤,内存布局,访问定位

文章目录1. 实例化步骤2. 内存布局3. 对象访问定位1. 实例化步骤对象创建的方式1. new2. Class的newInstance()3. Contructor的newInstance(xxx)4. 使用clone5. 使用反序列化6. 第三方库Objenesis对象的创建步骤1. 判断对象对应的类是否加载,链接,初始化,没有加载,使用双亲委派机制加载类2. 为对象分配内存 不同的垃圾收集器会导致,内存规整或不规整,不同的内存结构,会有不同的分配方

2020-06-03 16:14:35

0034-方法区

文章目录1. 栈、堆、方法区的交互关系2. 方法区的理解3. 方法区的演进4. 设置方法区大小5. 方法区的内部结构5.1 类型信息5.2 域(Field)信息5.3 方法(Method)信息5.4 类变量5.5 运行时常量池 & 常量池6. 方法区的演进细节7. 方法区的垃圾回收1. 栈、堆、方法区的交互关系线程共享的角度1. 线程共享区域:堆和方法区,两者都会有OutOfMemoryError和GC2. 线程独占区域:虚拟机栈,本地方法栈,程序计数器,两个栈会出现StackOve

2020-06-03 16:14:03

0033-堆

文章目录1. 简述2. 堆空间的设置3. 年轻代与老年代4. 对象的分配过程5. Minor GC/ Major GC/ Full GC6. 堆空间分代思想7. 对象提升规则8. TLAB(Thread Local Allocation Buffer)9. 常用参数总结10. 堆是分配对象的唯一选择吗1. 简述1. 堆是jvm管理的一块最大内存空间,且一个jvm只存在一个堆内存2. 堆空间被所有的线程共享,同时也可以划分线程私有的缓冲区(Thread Local Allocation Buffer,

2020-06-03 16:13:10

0032-虚拟机栈

文章目录1 简介2 栈配置3 栈帧3.1 局部变量表(local variables)3.2 操作数栈(Operand Stack)3.3 动态链接(Dynamic Linking)3.4 方法返回地址(Return Address)3.5 一些附加信息4. 栈的相关面试题1 简介java虚拟机栈,早期也称为java栈,每个线程在创建时,都会创建一个虚拟机栈,其内部包含一个个栈帧(Stack Frame),对应一次次的方法调用,虚拟机栈是线程私有的,没有GC,有可能会出现StackOverFlowErr

2020-06-03 16:12:30

0031-程序计数器

文章目录1 简介2 作用3 举例4 常见问题1 简介1. 存储空间很小的内存空间,运行速度最快的存储区域2. 程序计数器是线程私有的,生命周期与线程的生命周期一致3. 任何一个线程同一个时间节点都只有一个方法执行,这个方法称为当前方法,程序计数器会存储当前正在执行java方法的jvm指令地址,如果是native方法,则是未指定值(undefined)4. 它是唯一一个在java虚拟机中没有规定任何OutOfMemoryError的情况2 作用程序计数器会存储当前正在执行java方法的

2020-06-03 16:02:33

0030-内存概述

文章目录概览图1. 内存角色1.1 方法区1.2 堆区1.3 虚拟机栈1.4 程序计数器1.5 本地方法栈2. 线程共享性概览图1. 内存角色内存中主要涉及到的角色有方法区,堆,虚拟机栈,程序计数器,本地方法栈1.1 方法区方法区主要存储加载的class类元数据,包括类型信息,运行时常量池(不包含字符串常量),域信息,方法信息等1.2 堆区堆区又分为新生代和老年代,新生代又分为Eden,s0,s1区,是垃圾回收的重点区域,主要存储new出来的对象,还有几个特殊的对象,Class对象及内部的

2020-06-03 16:01:47

0020-类的加载

文章目录1. 内存结构概述2. 类的加载过程2.1 类加载器的作用2.2 类加载器角色2.3 类的加载过程1. 加载2. 链接3. 初始化3. 类加载器的分类3.1 引导类加载器(Bootstrap ClassLoader)3.2 自定义类加载器(User-Defined ClassLoader)3.2.1 扩展类加载器(Extention ClassLoader)3.2.2 应用程序类加载器(Application ClassLoader)3.2.3 自定义加载器4. ClassLoader的使用说明5.

2020-06-03 16:01:02

wechat_0010-企业微信,把自己的项目接入企业微信

1、一个可以公网访问的接入项目2、需要一个企业微信账号 企业微信官网:https://work.weixin.qq.com/3、策略文件 报illegal key size异常时见 博客:http://www.cnblogs.com/shirui/p/7411735.html4、微信的加密解密包 下载链接:http://qydev.weixin.qq.com/java.zip5、企业微信api 链接:https://work.weixin.qq.com...

2018-05-04 19:56:50

0000-SpringCloud微服务搭建

1. 前言这篇文章整理的是SpringCloud的全家桶中的技术Demo采用的是SpringCloud F版所有的Dmeo代码在GitHup上都有 传送门SpringCloud目前很多项目已经停更,但这里不会出现替代技术解决方案2. 目录1. Eureka 0010-Eureka理论知识 0011-Eureka服务端和客户端单节点搭建 0012-Eureka Server集群...

2020-04-17 09:13:29

0083-Zipkin耗时分析

文章目录1. 搭建Zipkin Server2. 微服务改造2.1 pom依赖添加2.2 yml配置2.3 测试1. 搭建Zipkin ServerSpringCloud F版以后可以直接下载Server不需要自己搭建了下载地址下载jar即可启动java -jar zipkin-server-2.12.9-exec.jar 2. 微服务改造2.1 pom依赖添加为每个需...

2020-04-13 09:29:02

0082-整合ELK统一存储与查询

文章目录1. 背景2. ELK组成3. 日志架构4. 搭建4.1 统一日志输出4.1.1 pom依赖4.1.2 logback.xml配置4.1.3 redis日志查看4.2 ElasticSearch安装4.2.1 下载路径4.2.2 配置环境变量4.2.3 启动4.3 Kibana安装4.3.1 下载路径4.3.2 配置环境变量4.3.3 启动4.4 Logstash安装4.4.1 下载路径4...

2020-04-13 09:28:28

0081-开启Sleuth链路追踪

文章目录1. pom依赖2. 打印日志3. 日志信息1. pom依赖从网关开始,在每个微服务节点添加Sleuth依赖<!--链路追踪--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starte...

2020-04-13 09:27:55

0080-Sleuth链路追踪理论

文章目录1. 背景2. 术语3. 链路追踪的几个步骤3.1 开启链路追踪3.2 日志查询与分析3.3 耗时分析1. 背景复杂的微服务架构,每一个前端请求都会形成复杂的分布式调用链路,每个环节调用失败或者延时过高都有可能导致请求失败,所以监控全链路的调用的就变得额外重要,这可以帮我们实现快速定位失败和性能分析2. 术语TraceID: 一次前端请求的发起会产生一个TraceIDSpanI...

2020-04-13 09:26:46

0071-Bus实现方式-RabbitMQ

文章目录1. 启动Rabbit队列2. 增加Rabbit依赖3. yml配置3. 主启动类4. 测试5. 配置方式5.1 刷新在微服务上5.2 刷新在Config Server上6. 刷新范围1. 启动Rabbit队列2. 增加Rabbit依赖<dependencies> <dependency> <groupId>org.spri...

2020-04-13 09:25:59

0070-Bus理论

文章目录1. 什么是消息总线2. 实现方式1. 什么是消息总线在微服务架构钟,我们通常会使用轻量级的消息代理来构建一个共用的消息主题让系统钟所有微服务实例都连接上来,由于该主题中长生的消息会被所有实例监听和消费,所以我们称它为消息总线。在总线上的各个实例都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息,例如配置信息的变更或者其他一些管理操作等。由于消息总线在微服务架构中被...

2020-04-13 09:24:40

0063-Conifg Server集群搭建

文章目录1. 前言2. Config Server集群搭建2.1 pom依赖2.2 yml配置2.3 主启动类2.4 测试3. Config Client搭建3.1 pom依赖3.2 bootstrap.yml配置3.3 主启动类3.4 测试1. 前言所有的微服务提供者都是Config Client,都需要从Config Server获取配置,所以Config Server的访问压力会很大,需...

2020-04-13 09:23:39

0062-Config Client搭建

文章目录1. 前言2. Client端搭建2.1 pom依赖2.2 bootstrap.yml配置文件2.3 主启动类3. 测试1. 前言上一节Config Server已经获取到远程的配置文件,Client端需要连上Server端,从Server端获取配置,真实环境中所有的微服务都是Client端。2. Client端搭建2.1 pom依赖<dependencies> ...

2020-04-13 09:23:02

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享达人
    分享达人
    成功上传6个资源即可获取