- 博客(11)
- 收藏
- 关注
原创 地图工具类
public class MapsUtil { private static double EARTH_RADIUS = 6378.137;//地球半径 /** * 求两点之间的距离(km) * * @param lng1 A点经度 * @param lat1 A点纬度 * @param lng2 B点经度 * @param lat2 B点纬度 * @return 两点距离 */ public sta.
2021-06-30 16:43:20 246
原创 Spring IOC源码走读
首先进入AbstractApplicationContext 类中,查看refresh()方法做了些什么 1.第一个执行的方法是prepareRefresh(),其主要作用为IOC容器刷新前预处理,具体方法主要有: 1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法; 2)、getEnvironment().validateRequiredProperties();检验属性的合法等 3)、earlyApplicationEvents=...
2021-03-08 17:06:05 163
原创 springAop源码阅读笔记
AOP源码阅读思路:看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么 @EnableAspectJAutoProxy: 该注解为aop切面类上的注解,因此从该注解点进去看发现,其中导入了AspectJAutoProxyRegistrar类文件 其中主要进行的业务逻辑就是:利用AspectJAutoProxyRegistrar自定义给容器中注册bean; 给容器中注册一个AnnotationAwareAspectJAutoProxyCreator; 通过查看Annota.
2021-02-21 16:12:05 129
原创 ReentrantLock源码走读分析
首先,ReentrantLock作为一种常用的锁,可以通过构造方法中穿ture来指定是公平锁,还是非公平锁,因此从源码上来分析公平锁和分公平锁有什么区别: 从构造方法可以看出,公平锁非公平锁的区分主要是看ReentrantLock的一个属性类sync的实现来决定的,当公平锁的时候,实现类是FairSync,非公平锁的时候,实现类是NonfairSync NonfairSync的类继承关系 FairSync的类继承关系 首先从lock方法进入,可以发现,Reentr..
2020-09-30 17:14:19 154
原创 基于netty实现消息服务
一.创建mven项目,引入netty依赖 <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId>
2020-09-25 16:15:05 425
转载 hashmap jdk1.8源码解析笔记
一、HashMap概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。 下图中代表jdk1.8之前的hashmap结构,左边部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的头节...
2020-09-15 10:55:19 114
原创 新建阿里云ecs服务器实例部署
一.配置jdk环境 1.下载jdk yum install java-1.8.0-openjdk.x86_64 检查java版本,已经安装好jdk 进入vim /etc/profile ,配置环境变量 二.配置nginx 使用yum install nginx命令即可 三.配置maven 执行命令yum install maven ...
2020-08-24 20:05:13 251 1
原创 redis分布式锁的简单实现
1.什么是分布式锁 系统部署在不同的机器上就是分布式(运行在不同的jvm中),在分布式环境中,对不同的应用程序共享资源加锁就是分布式锁 2.为什么会有分布式锁 传统的锁机制,如lock锁,其底层原理是通过jdk的一些指令进行加锁操作,而分布式环境中,应用运行在不用的jvm中,因此传统的同步锁机制已经不能够满足 3.什么时候分布式锁,什么时候分布式事务 应用之间的共享资源发生竞争时,需要使用分布式锁,而数据库中需要保持数据一致性的时候,则需要使用分布式事务...
2020-08-19 16:44:16 127
原创 eureka采坑记
1.pom文件引入 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> 报错,miss jar 解决方案:升级cloud的版本 <dependency> <g
2020-07-28 09:44:29 79
转载 关于视图的笔记
什么是视图 通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。 视图的特性 视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变); 可以跟基本表一样,进行增删改查操作(ps:增删改操作有条件限制); 视图的作用 方便操作,特别是查询操作,减...
2019-02-20 19:28:10 190
原创 第一贴:关于多线程syncchronized关键字的笔记
syncchronized缺点: 1.锁对象不能为空 2.不能作用太大的代码块 3.需要避免死锁 如何选择syncchronized和lock: 1.如果可以两个都不用,使用javautil里的各种工具类 2.如果关键字适用,优先适用,减少代码量 3.如果只能lock.那就lock(灵活的加减锁机制) 思考题: 1.多个线程等待同一个syncchronized.jvm如何选择下一个获取锁的线程呢?...
2019-01-16 19:09:54 528
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人