自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除