上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 49 下一页

2020年12月15日

JVM - 怎么判断对象是否可以被回收? GC Roots?

摘要: 一般有两种方法来判断: 引用计数器:为每个对象创建一个引用计数,有对象引用时计数器 +1,引用被释放时计数 -1,当计数器为 0 时就可以被回收。它有一个缺点不能解决循环引用的问题; 可达性分析:从 GC Roots 开始向下搜索,搜索所走过的路径称为引用链。当一个对象到 GC Roots 没有任何 阅读全文

posted @ 2020-12-15 22:11 frank_cui 阅读(307) 评论(0) 推荐(0)

JVM - 栈上分配 + 逃逸分析 + 标量替换

摘要: 栈上分配 虚拟机提供的一种优化技术,基本思想是,对于线程私有的对象,将它打散分配在栈上,而不分配在堆上。好处是对象跟着方法调用自行销毁,不需要进行垃圾回收,可以提高性能。栈上分配需要的技术基础,逃逸分析。逃逸分析的目的是判断对象的作用域是否会逃逸出方法体。注意,任何可以在多个线程之间共享的对象,一定 阅读全文

posted @ 2020-12-15 21:30 frank_cui 阅读(813) 评论(0) 推荐(0)

JVM - 方法调用方式(静态分配,动态分配)

摘要: 总结 静态分配,用于方法的重载 动态分配,用于方法的多态 请看蓝色的标记部分: 当通过h1, h2去调用共同的接口方法时,就是常见的多态应用。这时是动态分配,看“实际类型 Actual Type”。 当把h1, h2作为参数传给“重载的方法”时,这时是静态分配,要看“静态类型 Static Type 阅读全文

posted @ 2020-12-15 20:42 frank_cui 阅读(333) 评论(0) 推荐(0)

JVM - native方法

摘要: 阅读全文

posted @ 2020-12-15 12:39 frank_cui 阅读(104) 评论(0) 推荐(0)

JVM - 类加载机制

摘要: 总结 1. 加载阶段 (Loading) 简单描述: 在Java程序运行之前JVM会把编译完成的.class二进制文件加载到内存,后续提供程序使用,这里用到的就是类加载器ClassLoader(JVM - 双亲委派机制 Parent-Delegation Model)。 详细描述: 虚拟机需要完成以 阅读全文

posted @ 2020-12-15 00:36 frank_cui 阅读(59) 评论(0) 推荐(0)

JVM - 类加载器 ClassLoader + 双亲委派机制 Parent-Delegation Model

摘要: 1. 双亲委派模型 不是继承关系,而是委托关系。 从Java虚拟机的角度来讲,只存在两种不同的类加载器: 一种是启动类加载器(Bootstrap ClassLoader),仅按照文件名识别,如rt.jar,名字不符合的类库即使放在lib目录中也不会被加载。这个类加载器使用C++语言实现,是虚拟机自身 阅读全文

posted @ 2020-12-15 00:27 frank_cui 阅读(176) 评论(0) 推荐(0)

2020年12月14日

JVM - 运行时数据区(Runtime Data Area)

摘要: 1. 各版本之间的变化 黄色的模块是线程私有的;绿色的模块是线程共有的。 JVM的优化,都集中在线程共有的区域(99%都是堆) jdk 1.6 jdk 1.7 jdk 1.8 2. 运行时数据区 各部分的作用 程序计数器 program counter register Java栈 java sta 阅读全文

posted @ 2020-12-14 22:04 frank_cui 阅读(260) 评论(0) 推荐(0)

2020年12月12日

SpringCloud Config - 分布式配置(实现远程读取配置)

摘要: 1. 什么是SpringCloud config分布式配置 1.1 springcloud config的本质(重要) 客户端config-client要通调用服务端config-server,获取git上的配置文件。这样,客户端config-client和服务端config-server的配置文件 阅读全文

posted @ 2020-12-12 16:14 frank_cui 阅读(865) 评论(0) 推荐(0)

SpringCloud - Zuul 路由网关,前端调用后端的统一入口

摘要: 总结 参考文献:https://juejin.cn/post/6844903705553174541?utm_source=tuicool&utm_medium=referral%3Futm_source%3Dtuicool&utm_medium=referral Zuul:如果前端、移动端要调用后 阅读全文

posted @ 2020-12-12 13:35 frank_cui 阅读(1182) 评论(0) 推荐(0)

Hystrix - 服务降级(基于@HystrixCommand + 基于@FeignClient)

摘要: 前言 通常情况下的Hystrix是通过注解@HystrixCommand的fallbackMethod属性实现回调的。 在Feign中,由于Feign是用借口实现的声明式Rest,所以Hystrix的通用方法在这里就不适用于Feign了。 一、服务降级 - 通过@HystrixCommand (fa 阅读全文

posted @ 2020-12-12 12:28 frank_cui 阅读(767) 评论(0) 推荐(0)

2020年12月11日

SpringCloud - Ribbon 客户端负载均衡工具

摘要: 1. Ribbon是什么? 多个“微服务提供者”在eureka集群里注册服务,然后消费者要调用服务时,通过ribbon从eureka集群里查询到可用的服务列表(分别有8001,8002,8003) 然后根据ribbon的load balance算法,选择一个进行调用 2. Ribbon能干嘛? 3. 阅读全文

posted @ 2020-12-11 22:02 frank_cui 阅读(147) 评论(0) 推荐(0)

SpringCloud - Eureka 服务注册与发现,Eureka集群,Eureka vs ZooKeeper

摘要: 1. 什么是Eureka Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。 Eureka包含两个组件:Eureka Server和Eureka Client Eureka 阅读全文

posted @ 2020-12-11 00:55 frank_cui 阅读(205) 评论(0) 推荐(0)

2020年12月9日

传统web项目的架构

摘要: 阅读全文

posted @ 2020-12-09 23:46 frank_cui 阅读(219) 评论(0) 推荐(0)

Maven - <packaging>

摘要: <packaging>常见的取值: jar: 默认是jar类型。如果只是内部调用或者是作服务使用,则推荐打包成jar类型 war: 如果是需要部署的项目,则需要打包成war类型。 pom: 项目里没有java代码,也不执行任何代码,只是为了聚合工程或传递依赖用的.一般用于父级项目。 阅读全文

posted @ 2020-12-09 22:18 frank_cui 阅读(128) 评论(0) 推荐(0)

Maven - 父模块 vs 子模块 与 <dependencyManagement> vs <dependencies>

摘要: 父模块 vs 子模块 多模块开发中,使用父模块对子模块的管理非常方便。 父模块pom中的<properties>属性会被子模块继承 父模块pom中,在<dependencyManagement>中可以进行子模块依赖的版本管理,子模块继承父模块之后,提供作用:锁定版本 + 子模块不用再写 versio 阅读全文

posted @ 2020-12-09 22:07 frank_cui 阅读(483) 评论(0) 推荐(0)

SpringCloud - 什么是SpringCloud?与SpringBoot的区别?

摘要: 1. 什么是SpringCloud 2. SpringCloud与SpringBoot的关系 3. SpringCloud版本号的故事 阅读全文

posted @ 2020-12-09 21:55 frank_cui 阅读(317) 评论(0) 推荐(0)

SpringCloud - 什么是微服务架构? 四大技术点+解决方案

摘要: 1. 微服务架构 1.1 微服务架构的四大问题 本质: 1.2 要解决的四大技术点(重点) 上面的四大问题,翻译成技术点,就是以下4点: 1.3 解决方案 2. 微服务 2.0 单体应用架构 vs 微服务 https://www.cnblogs.com/frankcui/p/14088145.htm 阅读全文

posted @ 2020-12-09 20:48 frank_cui 阅读(413) 评论(0) 推荐(0)

Dubbo - 什么是Dubbo (RPC框架) + ZooKeeper(注册中心)

摘要: 1. 什么是分布式系统? 2. RPC 2.1 什么是RPC 2.2 RPC基本原理 3. Dubbo 3.1 什么是Dubbo? 3.2 Dubbo架构原理(重要) zookeeper是下图中,“Registry”那一部分用到的。 3.3 安装Dubbo和zookeeper https://www 阅读全文

posted @ 2020-12-09 01:07 frank_cui 阅读(274) 评论(0) 推荐(0)

2020年12月8日

SpringBoot - 异步操作,邮件操作,定时操作

摘要: 1. 异步操作 主函数,添加@EnableAsync注解 具体方法上,加上@Async标签 2. 邮件操作 2.1 导入包 2.2 去QQ 邮箱开启POP3/SMTP服务 这里的授权码,待会会替代真正的密码,写在application.properties里面 2.3 在application.pr 阅读全文

posted @ 2020-12-08 21:55 frank_cui 阅读(96) 评论(0) 推荐(0)

SpringBoot - Swagger (API文档实时更新工具)

摘要: 总结 创建SpringBoot项目,导入Swagger依赖 Swagger2 Swagger-ui 创建Swagger配置类 添加@Configuration注解,标识配置类 添加@EnableSwagger2注解开启Swagger 配置Swagger的Docket的Bean实例 配置Swagger 阅读全文

posted @ 2020-12-08 00:41 frank_cui 阅读(1511) 评论(0) 推荐(0)

上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 49 下一页

导航

levels of contents