- 博客(24)
- 资源 (20)
- 收藏
- 关注
原创 java 之常量池
常量池是为了避免频繁的创建和销毁对象而影响系统性能,其实现了对象的共享。Java中的常量池,实际上分为两种形态:静态常量池和运行时常量池。结构存储:常量池都存在堆中,Double,Float不是常量并没有常量池,凡是new 一个对象就不是常量在java中 ==表示引用地址比较,equals表示值的比较常量池例子:String s1 = "Hello";String s2 = "H...
2019-12-29 19:57:05 208 1
原创 java之并发工具类屏障(CyclicBarrier )以及CountDownLatch 、Semaphore之间区别
1、CountDownLatch :能够使一个或多个线程等待其他线程完成各自的工作后再执行2、CyclicBarrier : 让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。3、Semaphore : 用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理地使用公共资源4、Exchanger: 用于线程间...
2019-12-29 15:11:50 520 1
原创 java之并发工具类计数器(CountDownLatch)
java并发工具类1、CountDownLatch :能够使一个或多个线程等待其他线程完成各自的工作后再执行2、CyclicBarrier : 让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。3、Semaphore : 用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理地使用公共资源4、Exchanger...
2019-12-29 14:44:40 2294 1
原创 springcloud之微服务Hystrix 组件原理实现
springcloud常用组件1、服务注册与发现:Eureka2、服务网关: Zuul3、服务负载均衡:Ribbon4、服务之间调用:Feign5、服务熔断:Hystrix---因官网不继续维护,可以使用阿里提供的Alibaba Sentinel轻量级的流量控制、熔断降级 Java 库6、配置中心:config---如果不想自己维护,可以使用阿里云nacos作为配置中...
2019-12-25 20:42:14 844 1
原创 限流之漏桶算法和令牌桶算法实现区别
问题描述?某天A君突然发现自己的接口请求量突然涨到之前的10倍,没多久该接口几乎不可使用,并引发连锁反应导致整个系统崩溃。如何应对这种情况呢?生活给了我们答案:比如老式电闸都安装了保险丝,一旦有人使用超大功率的设备,保险丝就会烧断以保护各个电器不被强电流给烧坏。同理我们的接口也需要安装上“保险丝”,以防止非预期的请求对系统压力过大而引起的系统瘫痪,当流量过大时,可以采取拒绝或者引流等机制。1、漏...
2019-12-24 20:02:03 1457
原创 springcloud之微服务zuul/GateWay组件实现
springcloud常用组件1、服务注册与发现:Eureka2、服务网关: Zuul3、服务负载均衡:Ribbon4、服务之间调用:Feign5、服务熔断:Hystrix---因官网不继续维护,可以使用阿里提供的Alibaba Sentinel轻量级的流量控制、熔断降级 Java 库6、配置中心:config---如果不想自己维护,可以使用阿里云nacos作为配置中...
2019-12-24 17:57:58 1005 1
原创 springcloud之微服务Fegin组件原理实现
springcloud常用组件1、服务注册与发现:Eureka2、服务网关: Zuul3、服务负载均衡:Ribbon4、服务之间调用:Feign5、服务熔断:Hystrix---因官网不继续维护,可以使用阿里提供的Alibaba Sentinel轻量级的流量控制、熔断降级 Java 库6、配置中心:config---如果不想自己维护,可以使用阿里云nacos作为配置中心...
2019-12-22 20:41:06 1102
原创 springcloud之微服务Eureka组件原理实现
springcloud常用组件1、服务注册与发现:Eureka2、服务网关: Zuul3、服务负载均衡:Ribbon4、服务之间调用:Feign5、服务熔断:Hystrix ---因官网不继续维护,可以使用阿里提供的Alibaba Sentinel轻量级的流量控制、熔断降级 Java 库6、配置中心:config ---如果不想自己维护,可以使用阿里云nacos作为配置中心1...
2019-12-21 20:42:58 700 1
原创 java之并发工具类信号量(Semaphore)
java并发工具类1、CountDownLatch :能够使一个或多个线程等待其他线程完成各自的工作后再执行2、CyclicBarrier : 让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。3、Semaphore : 用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理地使用公共资源4、Exchange...
2019-12-21 17:11:12 266
原创 spring 基础知识
1.控制反转(IOC): 在传统的开发模式下,我们都是采用直接 new 一个对象的方式来创建对象,也就是说你依赖的对象直接由你自己控制,但是有了 IOC 容器后,则直接由 IoC 容器来控制。所以“谁控制谁”,当然是 IoC 容器控制对象。为何是反转:没有 IoC 的时候我们都是在自己对象中主动去创建被依赖的对象,这是正转。但是有了 IoC 后,所依赖的对象直接由 IoC 容器创建后注入到被注入的...
2019-12-20 16:08:13 432 1
原创 mybatis 底层原理
https://blog.csdn.net/qq_41737716/article/details/83552103https://blog.csdn.net/qq_30125555/article/details/87954347后期补充
2019-12-14 16:39:54 120
原创 java之ConcurrentHashMap在jdk1.7和jdk1.8中的不同
1.底层结构发生变化jdk 1.7底层结构是:数组(Segment)+ 链表(HashEntry节点)组成使用分段锁技术,将整个数据结构分段(默认为16段)进行存储,将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问,能够实现真正的并发访问。如下图是ConcurrentHashMap的内部结构图:从上面的结构我们可以了...
2019-12-14 14:58:11 1194
原创 java之jdk 1.8版本HashMap
首先讲一下,数据结构中常见的时间复杂度 及大小排序Ο(1)<Ο(logn)<Ο(n)<Ο(nlogn)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!) //查询一个数据从简单到复杂HashMap 1.7和HashMap 1.8的区别1、hashMap的时间复杂度jdk 1.8之前版本由于HashMap底层是通过 数组加链表 的方式实现的,要找到数组对应的下标,只需要进行...
2019-12-11 20:42:05 426
原创 java之jdk 1.8版本之前的HashMap
1. HashMap的数据结构数据结构中有数组、链表来实现对数据的存储,接下来讲解HashMap数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表...
2019-12-11 17:16:22 305
原创 java spring嵌套事务详情和事务传播类型
一个有事务的方法,去调用另一个有事务的方法,会怎么样?一个没有事务的方法,去调用一个有事务的方法,会怎么样?多事务嵌套问题解答1、在同一个类中,一个无事务方法调用另一个有事务注解方法(比如@Async,@Transational)的方法,注解事务是不会生效的2、在同一个类中,一个有事务方法调用另一个有事务注解方法(比如@Async,@Transational)的方法,只有外层事务有效,...
2019-12-08 19:18:57 383
原创 java Spring的AOP理解和动态代理
什么是代理?主要有什么用?为其他对象提供一种代理来控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户和目标对象之间起到中介的作用。代理好处是:通过代理类获取目标对象,并且对类中方法进行的增强(就是切面,在方法执行前和方法执行后可以写自己逻辑,这就是AOP切面编程来源),这也就设计到一个代理模式概念代理模式在我们日常中很常见,生活处处有代理:...
2019-12-08 15:13:48 855 2
原创 MYSQL数据库的四大特征和四种隔离级别以及锁类型
事务四大隔离级别脏读解决方法:RC(read committed),并且默认就好,数据库默认状态已经解决可重复读和幻读解决方法是:间歇锁数据库默认隔离级别: mysql ---repeatable + MVCC多版本实现, oracle,sql server ---read commited四个隔离级别:https://blog.csdn.net/sinat_15805929/a...
2019-12-08 13:19:18 592
原创 redis持久化两种方式RDB和AOF原理以及优缺点
1、两者区别:RDB持久化:是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储,文件名是dump.rdb。提醒内容:Redis 调用forks。同时拥有父进程和子进程,子进程负责备份,父进程负责继续服务AOF持久化:每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会...
2019-12-07 16:39:53 2067
原创 mysql索引回表
mysql索引回表概念:(1)先通过普通索引(普通索引,唯一索引,组合索引)定位到主键值;(2)在通过聚集索引定位到行记录;这就是所谓的回表查询,先定位主键值,再定位行记录,然后根据行记录数主键id扫描索引数,查询出数据,它的性能较扫一遍索引树更低举例说明:当有一个表有四个字段,分别是id、name,age、address四个字段,将id设置为主键索引,将name和age设置为组合索引查...
2019-12-07 15:13:38 835
原创 redis的使用
1、redis的好处:(1)、速度快;因为数据存在内存中,类似于hashmap,而且是单线程,减少了竞争,避免多线程上下文切换造成的开销;完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中 数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的; 采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗; 使用多路I/O复用模型,非阻塞IO
2019-12-05 17:50:08 1443 2
原创 mysql 优化方案以及性能优化
sql优化方案1、应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将导致引擎放弃使用索引而进行全表扫描。SQL中,不等于操作符会限制索引,引起全表扫描,即使比较的字段上有索引。2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:3、为列选择合适的数据类型,而且要避免隐式类型转换能用TINYINT...
2019-12-01 15:45:34 431
原创 mysql存储结构索引讲解
索引是什么?索引是帮助MySQL高效获取数据的数据结构。索引能干什么?提高数据查询的效率。索引:排好序的快速查找数据结构!索引会影响where后面的查找,和order by 后面的排序。首先讲解一下数据结构类型1、hash:无规则、不能排序、仅支持"=","IN"和"<=>"精确查询并且检索效率高,但不能使用范围查询2、二叉树:解决hash索引不能排序问题,但是...
2019-12-01 14:04:20 1539
项目进度计划表------》根据开始时间和结束时间自动显示开发周期甘特图
2022-10-07
rabbitmq_delayed_message_exchange-3.8.0 延迟队列插件
2022-05-30
elasticsearch-head 可视化界面
2020-12-04
nice_server_homeedu_prod.sh
2020-09-13
ossimport-2.2.1.zip
2020-08-12
nginx_log_script.sh(切记,下载后将文件命名成nginx_log_script.sh,目前英文字母写错了)
2020-07-29
linux 用户任务定时器配置 crontab -e 编辑的文本
2020-05-14
current_prod.sh
2020-05-12
linux 执行java项目脚本 dev.sh
2020-05-12
chromedriver_linux64.zip
2020-05-05
nginx 配置成服务
2019-04-25
mongoDB配置文件
2019-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人