排序:
默认
按更新时间
按访问量

Synchronized和ReentrantLock的区别

昨天面试,面试官问了自己一个synchronized和ReentrantLock的区别,感觉自己回答的并不是特别好,今天在翻书学习总结一下,毕竟书读百遍其义自见。开始进入正题 两者的共同点: 1)协调多线程对共享对象、变量的访问 2)可重入,同一线程可以多次获得同一个锁 3)都保证了可见性...

2017-12-08 19:28:54

阅读数:165

评论数:0

解决困扰自己已久的InnoDB存储引擎行级锁问题

在事务中执行select…for update,update,delete会引起锁,对于事务的修改,事务中会使用X锁,X锁是行级锁,InnDB行锁是通过给索引上的索引项加锁实现的(只有通过索引条件检索数据(即explain sql语句,type=index或range),InnoDB才使用行级锁,...

2017-12-07 23:17:29

阅读数:139

评论数:0

HashMap1.8中多线程扩容引起的死循环问题

最近在学习并发,看到书上写到hashmap在并发执行put操作时会引起死循环,因为在put中会引起扩容操作,使链表形成环形的数据结构,不是很明白,然后在网上看了一些博客,但是博客都是jdk1.7版本的,而1.8版本中的扩容操作已经和1.7版本中大不一样了,于是自己开始研究,看源码的时候,觉得jdk...

2017-12-07 09:32:29

阅读数:1088

评论数:1

java并发中的CAS

CAS(Compare And Swap)简单介绍 CAS实现原子方式操作。java中锁可以分为两大类,乐观锁和悲观锁。乐观锁不是指哪种锁,而是一种实现线程安全的不加锁策略。而CAS实现了这个策略,先进行操作,如果没有其他线程争用共享数据,那操作就成功了,如果共享数据有争用,产生冲突,则采取其他...

2017-11-25 20:11:07

阅读数:110

评论数:0

RDB持久化和AOF持久化

为什么需要持久化 因为Redis是内存数据库,服务器进程退出,服务器中的数据库状态也会消失RDB持久化 将内存中的数据库状态保存到磁盘文件里,防止数据丢失1)生成RDB文件命令:SAVE、BGSAVE SAVE命令: 由服务器进程去执行持久化的过程,会造成阻塞,在生成RDB文件的过程中,服...

2017-11-25 17:42:18

阅读数:84

评论数:0

mysql查询性能优化

mysql执行查询的过程如图: 1)客户端首先通过客户端/服务器通信协议与mysql服务器建立起连接 2)客户端发送一条sql语句 判断是否为查询语句,如果是查询语句,则先在查询缓存区哈希查找对应sql的数据,如果未找到,则需要调用解析器解析、预处理、再由优化器生成对应的查询执行计划 3)...

2017-11-24 20:14:03

阅读数:113

评论数:0

synchronized的实现原理及jvm对其优化

synchronized的使用方式 1)在普通方法前面加锁,锁是当前实例对象,即调用该方法的对象 2)在静态方法前面加锁,锁是当前类的Class对象 3)同步代码块中,锁是synchronized括号里配置的对象jvm对其实现的原理 jvm基于进入和退出monitor对象来实现方法同步和代...

2017-11-23 21:09:23

阅读数:57

评论数:0

聚簇索引、二级索引、覆盖索引

(一)聚簇索引 覆盖索引不是一种单独的索引类型(索引类型大致分为B-Tree索引、Hash索引、全文索引、空间数据索引、其他索引我们不是特别见到的这几大类),是一种数据存储方式,在索引存储结构结构上保存数据。InnoDB的聚簇索引实际上是在同一个结构中保存了B-Tree索引和数据行。 每一个表...

2017-11-21 22:34:18

阅读数:142

评论数:0

java并发中的volatile的关键字

volitale简单介绍: 轻量级synchronized,保证了在多处理器中共享变量的可见性volatile实现的内存语义: 当一个线程对一个volatile变量进行写操作时,写操作完后必须立刻刷回内存,并且其他线程缓存区中的值将无效,若对值进行修改必须重新从系统内存中读取。 volati...

2017-11-21 19:08:36

阅读数:49

评论数:0

分页结果做缓存报java.lang.Integer cannot be cast to java.lang.String错误

今天测试redis做的缓存分页报错java.lang.Integer cannot be cast to java.lang.String。类型转化出错。我的controller层中的方法 @RequestMapping(value = "/queryNewsByPage", ...

2017-11-19 17:03:25

阅读数:4555

评论数:0

优化分页查询

我们一般使用分页都是使用limit来完成的,如果数据量小的话还可以,但是当数据量非常大的时候,不建立索引,通过全表查询,将会非常耗时,性能将受到很大的影响。第一种优化方式 在索引上完成排序分页的操作,最后根据主键关联回原表查询所需要的其他列内容例:我想对我之前的分页进行优化,没有优化前的sql语...

2017-11-19 14:20:13

阅读数:59

评论数:0

常用SQL优化

这里的优化是针对InnoDB存储引擎的 (一)优化大批量插入,针对load 顺序导入(待补充) (二)优化insert语句 1)如果同时从同一个客户端插入多行,应尽量使用多个值表的insert语句。这种方式将大大缩减客户端与数据库之间的连接、关闭等消耗。例:insert into test...

2017-11-18 22:42:36

阅读数:52

评论数:0

MySQL定位慢查询以及索引优化

(一)定位慢查询 1.通过explain,可以查看sql语句的执行情况(比如查询的表,使用的索引以及mysql在表中找到所需行的方式等),一般情况下,基本可以通过explain,主要是通过其查找行的方式和查找行数确定问题,因为全表扫描很浪费时间,占用cpu。2.通过show profiles查找...

2017-11-18 19:32:42

阅读数:76

评论数:0

配置redis缓存失效时间

最近想利用redis缓存做一个简陋版的类似腾讯新闻这样的查看新闻的网页。用了缓存以后,添加新闻缓存没有更新,想使用缓存的失效时间做到数据库缓存一致性。刚开始做的时候认为使用@CachePut注解会起到更新缓存的作用,设置了cacheName和key都和查找方法中的@Cacheable中的key和c...

2017-11-11 18:22:54

阅读数:5224

评论数:0

java虚拟机常见面试题整理

-1.JVM的内存模型 1)程序计数器 2)java虚拟机栈 -2.垃圾回收的时候如何判断一个对象需要回收 判断一个对象是否需要回收,即判断是否存活,有两种算法。jvm采用的是第二种算法 1)引用计数算法 假设每个对象都有一个引入计数器,每当引用一个对象进行加1操作,不再引用时计数器减...

2017-11-07 23:03:04

阅读数:99

评论数:0

java中实例变量和类变量的区别

最近在学习java虚拟机,有点搞不清实例变量和类变量的区别,特此记录一下实例变量 个人理解有点像成员变量,在构造函数的时候进行初始化 1.实例变量声明在一个类中,但在方法、构造方法和语句块之外; 2.当一个对象被实例化之后,每个实例变量的值就跟着确定; 3.实例变量在对象创建的时候创建,在...

2017-11-06 16:40:52

阅读数:106

评论数:0

java变量初始化顺序

在类的内部,变量定义的先后顺序决定了初始化顺序,即使变量定义分散在方法定义之外,它们依旧会在任何方法(包括构造器)被调用之前得到初始化其中初始化的顺序先是静态对象,其后是非静态对象例如:class Cat{ private Dog dog1=new Dog(1); static p...

2017-11-05 22:45:46

阅读数:48

评论数:0

对Linux学习的看法

1.Linux是一个文件系统,所以首先最重要是先搞清楚它的目录,它的目录配置是有标准的。也就几个比较重要的目录,先从根节点谈起,根节点是系统中最重要的一个目录,根节点下有与开机、还原、系统修复等操作有关的文件。/usr也很重要,因为它有点类似与windows下的C盘,一般推荐按将自己下载的软件安装...

2017-11-04 22:21:08

阅读数:86

评论数:0

java并发中的原子类

什么是原子类 java并法包中提供很多了几种原子类,如AtomicInteger、AtomicLong、AtomicReference等。原子类可以保证操作的不可分割,要么都操作完,要么都不操作。以AtomicInteger为例讲解源码 主要成员变量:private volatile long...

2017-10-30 21:33:22

阅读数:76

评论数:0

Linux服务器上搭建FTP服务

安装 VSFTPD0 使用 yum 安装 vsftpdyum install vsftpd -y 启动 VSFTPD0 安装完成后,启动 FTP 服务:service vsftpd start 启动后,可以看到系统已经监听了 21 端口: netstat -nltp | grep 2...

2017-10-28 20:33:21

阅读数:161

评论数:0

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