用@Value注解直接注入properties中的值

有两种方式可以实现用@Value注解直接将properties中的值注入变量,一种是@Value("${key}"),一种是@Value("#{beanName[key]}"),他们本质上是实现了不同的类 一、@Value("${key}&quo...

2019-07-25 11:22:06

阅读数 38

评论数 0

basic paxos协议——分布式一致性协议初探

1、什么是paxos协议? 定义:Paxos算法是在多个成员之间对某个值(提议)达成一致的协议。这个值可以是任何东西。比如多个成员之间进行选主,那么这个值就是主的身份。在应用到日志同步中时,这个值就是一条日志。通过多次Paxos的执行就可确定出一个日志的序列,保证在主备服务器上看到相同的日志顺序...

2019-05-06 22:30:01

阅读数 60

评论数 0

集合框架——LinkedHashMap实现原理详解

我们已经讲解了HashMap的实现原理,LinkedHashMap是HashMap的子类,在其基础上实现了元素的排序功能,接下来对LinkedHashMap的实现进行一个了解。 目录 底层数据结构 查询操作get() 插入操作put()/putAll() 删除remove()方法 ...

2019-04-18 15:41:10

阅读数 34

评论数 0

集合框架——HashMap实现原理详解

目录 一、HashMap实现原理 1、底层数据结构 2、put方法: 3、扩容resize()方法 4、删除remove()方法: 二、关于HashMap的几个问题 1、为什么HashMap不是线程安全的 2、HashMap为什么不直接使用hashCode()处理后的哈希值直接作为...

2019-04-17 21:48:39

阅读数 55

评论数 0

集合框架——hashCode算法实现

目录 一、hashCode算法实现 二、HashMap中为什么数组的长度为2的幂次方 三、HashMap 在计算bucket位置时,为什么使用 & 与运算代替模运算? 四、自定义 HashMap 容量最好是多少? 五、如何解决Hash冲突 hashcode事一个int类...

2019-04-16 17:12:02

阅读数 68

评论数 0

集合框架——集合元素的排序

目录 一、哪些实现类有排序功能 二、list排序的实现 三、set和map的排序实现 1、set的排序 2、map的排序 、哪些实现类有排序功能 集合框架的几个主要接口List、Set、Queue和Map中,只有list的实现类都有sort方法(实现了RadomAccess随机访...

2019-04-11 22:35:09

阅读数 42

评论数 0

Spring单元测试总结

之前自己跟着网上做项目的时候,因为是从下到上都是自己开发的,测试也是从下到上一层层的集成测试,一直没有理解单元测试的精华,实习以后接手的都是一些基于其他项目的小需求,如果会用单元测试就会轻量很多,方便很多,这里主要总结了单元测试常用的东西,以后如果用深入了或许还会添加一些。单元测试最主要的是创建m...

2018-07-31 15:13:31

阅读数 134

评论数 0

git入门操作总结

实习一个月,从git入门到使用多次后一点点理解,再总结一次发现收获良多,本文尽量从日常使用和简单的角度来描述git操作,仅作记录,也希望对大家有所帮助  git 常用 add,commit status:查看文件状态 文件的状态总的来说只有traced和untraced,一个文件被创建...

2018-07-24 15:43:48

阅读数 129

评论数 0

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误原因分析

一般的原因 Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上。 按以下步骤一一执行: 1、检查xml文件所在的package名称是否和interface对应的package名称一一对应 2、检查xml文件的namespace是否和x...

2018-07-12 11:37:43

阅读数 1389

评论数 0

git的ssh连接问题:git@github.com: Permission denied (publickey)

首先根据点击打开链接来获取公钥并配置连接,但是在最后一步出现了git@github.com: Permission denied (publickey)问题,查找很久,基本的解决方案在点击打开链接但是都没有解决我的问题,后来发现检查是否连接上时,不是只能用命令:ssh -T git@github....

2018-06-25 19:29:53

阅读数 2120

评论数 0

springMVC中@Rquestmapping注释在类上资源路径出错的问题

做秒杀项目的时候不知道为啥注解在类上的requestmapping会加到资源路径上,就是这样:然后资源路径就变成:在jsp页面中的路径也是seckillId的值会加到资源路径前面,导致资源找不到,报404错误:解决方案:在WEB-INF前面加/...

2018-06-08 21:46:27

阅读数 986

评论数 2

深入理解MySQL索引原理和实现——为什么索引可以加速查询?

说到索引,很多人都知道“索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址,在数据十分庞大的时候,索引可以大大加快查询的速度,这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。” 但是索引是怎么实现的...

2018-04-12 09:48:26

阅读数 50134

评论数 39

Java并发——关于Java内存模型(JMM),你需要知道什么?

一、JMM采用的什么内存模型?我们这个内存模型看起来是怎么样的?并发编程中有两个主要的问题,一个是不同的线程之间怎么通信;二个是如何保证不同线程之间的同步。如果一个模型能够解决这两个问题,那么就可以用来描述并发编程模型。在命令式编程中,线程之间通信的方式有两种,一种是通过共享内存在实现通信,称为共...

2018-03-22 22:50:01

阅读数 156

评论数 0

Java并发——Synchronized关键字和锁升级,详细分析偏向锁和轻量级锁的升级

目录 一、Synchronized使用场景 二、Synchronized实现原理 三、锁的优化 1、锁升级 2、锁粗化 3、锁消除 一、Synchronized使用场景 Synchronized是一个同步关键字,在某些多线程场景下,如果不进行同步会导致数据不安全,而Synchron...

2018-03-22 17:01:42

阅读数 6322

评论数 5

Java并发——Executor框架详解(Executor框架结构与框架成员)

一、什么是Executor框架?我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1.5开始,为了把工作单元与执行机制分离开,Executor框架诞生了,他是一个用于统一创建与运行的接...

2018-03-20 21:58:27

阅读数 2387

评论数 0

Java并发——深入理解Executor框架FutureTask类

一、什么是Future和FutureTask一直以来都对FutureTask这个“Future”不理解,为什么叫做“未来的任务呢”?这个“Future”体现在哪里呢?现在终于明白,FutureTask的Future就源自于它的异步工作机制,如果我们在主线程中直接写一个函数来执行任务,这是同步的任务...

2018-03-20 21:56:33

阅读数 591

评论数 0

Java并发——Executor框架ScheduledThreadPoolExecutor详解

ScheduledThreadPoolExecutor类继承了ThreadPoolExecutor并实现了ScheduledExecutorService接口。主要用于在给定的延迟后执行任务或者定期执行任务。作用类似于java.util包下的Timer类,但是比Timer功能更强大、更灵活,因为T...

2018-03-20 16:22:06

阅读数 245

评论数 0

Java并发——Executor框架ThreadPoolExecutor详解

ThreadPoolExecutor是Executor接口的一个重要的实现类,是线程池的具体实现,用来执行被提交的任务。一、ThreadPoolExecutor的创建:直接创建ThreadPoolExecutor的实例对象,这样需要自己配置ThreadPoolExecutor中的每一个参数:Thr...

2018-03-20 14:25:41

阅读数 560

评论数 0

Java并发——线程池工作原理及使用

一、什么是线程池?为什么要使用线程池?线程池的优点?1、什么是线程池?线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建一个线程。线程池中线程的数量通常完全取决于可用内存数量和应用程序的需求。然而,增加可用线程数量是可能的。线程池中的每个线程...

2018-03-18 20:44:09

阅读数 228

评论数 0

Java并发——Java中的并发类工具

在JDK的并发包里面提供了几个非常有用的工具类:CountDwonLatch、CyclicBarrier、Semaphore、Exchanger。其中CountDwonLatch、CyclicBarrier、Semaphore工具类提供了一种并发流程控制的手段,Exchanger提供了一种在线程间...

2018-03-18 14:32:15

阅读数 1509

评论数 0

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