自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Java集合常用方法的时间复杂度

ArrayList常用方法时间复杂度ArrayList底层数据结构是:数组增加add(E):尾部添加,时间复杂度O(1)add(index, E): 指定位置添加,时间复杂度O(N);指定位置添加后,需要将指定位置后面的全部元素向后移动一个位置删除remove(E) :删除指定元素,需要先遍历找到指定元素,因此时间复杂度是O(N)remove(index):删除指定位置元素,删除后需要将指定位置后面的元素全部向前移动一个位置,时间复杂度O(N)查询get(index):查询指定位置元素,O

2020-09-04 14:45:34 1315

原创 关于mysql的一些优化建议

概述在使用mysql的过程中积累了一定的Sql优化 经验,比如尽量不要使用Select *、尽量使用索引等,但背后的原因是什么呢?下面对一些常见的优化建议背后的原理进行一个分析。1、为什么尽量不要使用Select *?磁盘IO,mysql的数据是存放在磁盘中,查询的字段越多,和磁盘交互的次数就越大,增大了磁盘IO内存,查询结果需要加载到内存中,字段越多占用的内存越高网络传输/带宽,数据传输量越大占用的网络资源就越多无法高效利用索引,不能使用索引覆盖(不太可能针对所有的字段建立索引),需要进行回

2020-12-31 13:57:49 105

原创 数据库与缓存一致性方案

概述缓存是实现高性能访问的利器,当缓存的数据有变化时应该先更新数据库再更新缓存?还是先更新缓存再更新数据库呢?又或者是其它什么方案?下面针对常用的缓存更新方案进行说明。一、先更新缓存再更新数据库为什么基本上没有人采用这种方案?个人见解如下:更新缓存和更新数据库都有失败的可能,如果更新缓存成功而更新数据库失败,数据库里面存的还是老数据,如果缓存失效之后再从数据库读到的数据仍然是老数据,这会导致更新丢失,风险太大。懒加载的思想。很多时候缓存不是简单从数据库取出来的值,很可能是多表联合查询计算得到的值

2020-11-12 20:01:58 105

原创 分布式锁——Redis分布式锁

概述在高并发环境下,必然会面临多线程对共享资源的竞争问题,如果不进行控制会出现一些异常行为。单机环境下可以使用Synchronized、ReentrantLock等JDK提供的锁来实现多线程对共享资源的互斥访问,但现在的应用大都是集群部署,针对这种跨JVM的情况如何实现来解决互斥访问的问题?这就需要用到分布式锁来进行控制。常见的分布式锁实现方式主要有数据库实现、Redis实现、Zookeeper实现,今天主要对Redis分布式锁进行探究。Redis 分布式锁1、加锁流程SetNX key val

2020-11-11 17:42:10 266

原创 Leetcode 53 最大子序和

题目描述最大子序和:解题思路一:暴力法任何时候看到算法题,如果没有太好的思路,先尝试用暴力法解决一下,后面再针对暴力法中可以优化的点进行优化。题目需要求一个具有最大和的连续子数组,因此可以两层for循环遍历得到所有的子数组,然后对所有的子数组进行累加并比较得到一个最大和。1、代码 public int maxSubArray(int[] nums) { int max = nums[0]; // 外层循环i用来表示每个子数组的起始位置 for

2020-11-04 14:36:53 102

原创 Mysql优化——执行计划

Mysql执行计划(基于5.7版本)执行Explain可以获得Mysql语句的执行信息,通过分析这些信息可以为优化Sql语句的性能带来很大的帮助。Mysql 5.7版本执行explain后会输出以下12列信息。列说明id标识符,表示执行顺序,值越大越先执行,没有子查询或者关联查询值为1,值可以为nullselect_type查询类型table访问到的表的表名partitions使用的哪个分区表,值为null表示不是分区表type访问类型pos

2020-10-28 14:29:14 251

原创 Comparator接口与Comparable接口区别

一、 概述在日常的开发工作中经常会遇到对自定义对象进行比较然后进行排序的场景,对自定义对象进行排序通常有两种实现方式:使用Comparable接口和Comparator接口。两种方式各有优劣,下面结合例子对两种实现方式做一个简单的分析。二、Comparable接口Comparable接口位于java.lang.Comparable,对象实现此接口并重写compareTo方法可以实现自定义的排序,这种方式使得类本身具有排序能力。Jdk文档中指出可以使用 Collection.sort() 和 Array

2020-10-14 10:57:41 134

原创 Java中常见常量池学习笔记

Java的常量池有字符串常量池、Class常量池和运行时常量池等,一想到这么多的常量池头都大了,今天就来梳理一下这些常量池的区别。一、运行时常量池运行时常量池是方法区的一部分,即JDK1.8中的元空间。JVM将类加载到内存中后,会将Class常量池中的内容存放到运行时常量池中。二、Class文件常量池Clas文件中除了有类的版本、字段等描述信息外,还有常量池表(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容在类加载后会存放在方法区中的运行时常量池。常

2020-09-22 21:25:09 137

原创 面试题系列之多线程交替打印ABC

面试题目给定三个线程A、B、C,线程A负责打印A,线程B负责打印B、线程C负责打印C,三个线程依次交替打印,输出格式如ABCABC……,打印10次结束。1、volatile无锁实现思路使用一个volatile变量state来控制三个线程的打印顺序,state为0、1、2则分别打印A、B、C,代码public class NonLockDemo { // 打印次数 private static final int PRINT_TIMES = 10; private volatil

2020-09-12 15:48:06 221

原创 Spring注入方式及优缺点

Spring注入方式Spring依赖注入的方式有:构造器注入,setter方法注入、属性注入、工厂方法注入,官方3.x版本推荐使用setter方法注入,到4.x之后官方推荐使用构造器注入。1、构造器注入通过构造器注入Shop这个Bean到Person中,可以将需要注入的字段声明为final,使其在类实例化期间被初始化。@Componentpublic class Person { private final Shop shop; @Autowired public Per

2020-09-12 15:46:45 2769

原创 JUC系列之AQS

AQS基本概念

2020-09-03 20:04:46 165

翻译 Mysql各关键字的逻辑执行顺序

Mysql各关键字的逻辑执行顺序下面的执行顺序只是一种逻辑顺序,由于Mysql优化器的作用,实际情况可能略有不同。使用explain语句可以分析sql语句的执行顺序,但也不保证准确性。(8) SELECT (9) DISTINCT<select_list>(1) FROM <left_table>(3) <join_type> JOIN <right_table>(2) ON <join_condition&gt

2020-09-01 16:16:40 229

原创 一致性哈希算法的演进史

哈希算法与数据分片哈希算法是一个广义的算法,使用哈希算法可以提高数据的查询效率,查询可实现O(1)的时间复杂度。在项目中不可避免的要用到分布式缓存,谈到缓存必然不能不提一下当下火热的Redis。如果需要缓存的数据量十分巨大,单机由于内存限制无法解决,这个时候如何解决单机瓶颈呢?对数据进行分片使其分布在不同的机器上来解决。分片时可以考虑使用哈希算法来实现,但在对数据进行分片的时候需要考虑哪些问题?通常需要考虑数据均匀、数据稳定和节点异构性这三个方面。数据均匀从数据均匀的角度考虑,假如有40

2020-08-31 10:38:50 369

原创 Spring学习笔记之Spring Bean生命周期

Spring作为Java领域最成功的开发框架,是Java程序员工作和面试都绕不过的一道坎,Spring Bean的生命周期更是重中之重。下面先探索一下Bean的生命周期流程,然后再慢慢庖丁解牛深入研究涉及到的相关接口和类。Spring Bean生命周期流程图  从图中可以看出,Spring Bean的生命周期主要有以下阶段:Bean实例化 Bean属性填充 如果该Bean实现了Aware相关接口,则调用相关的方法 如果该Bean注册了BeanPostProcessor,则调用BeanP

2020-08-25 09:28:10 151

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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