摘要: HashMap数据结构图 HashMap的数据结构是通过数组加链表实现的。数组是HashMap的主体,链表是为了解决Hash碰撞问题。 HashMap的Put方法 1、 在put的时候首先判断key值是不是null,如果是null,则处理null值为key所放的位置 2、 如果key值不为null, 阅读全文
posted @ 2017-08-19 20:37 一步一步学 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 当线程执行请求synchronized方法或块时,monitor会设置几个虚拟逻辑数据结构来管理这些多线程。 请求的线程会首先被加入到线程排队队列中,线程阻塞,当某个拥有线程锁的线程unlock之后,则排队队列里的线程竞争上岗(synchronized是不公平竞争锁),如果运行的线程调用对象wait 阅读全文
posted @ 2017-08-19 15:53 一步一步学 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 上网查看了很多篇ThreadLocal的原理的博客,上来都是文字一大堆,费劲看了半天,大脑中也没有一个模型,想着要是能够有一张图明确表示出来ThreadLocal的设计该多好,所以就自己看了源码,画了一张图出来,立刻清晰不少。 根据源码代码理清ThreadLocal结构 通过上面的代码可以看出来,在 阅读全文
posted @ 2017-08-17 21:42 一步一步学 阅读(659) 评论(0) 推荐(1) 编辑
摘要: 在执行定时任务的时候可以用Timer来实现,现在小编对学到的进行一次总结,先来看一个demo 这段代码的意思是,先建一个Timer,Timer开始执行的时间是” 2017-08-17 11:18:00”。 Timer重复执行 上述代码Timer只会执行一次,如果我们想让定时任务每隔一段时间就执行呢? 阅读全文
posted @ 2017-08-17 15:37 一步一步学 阅读(856) 评论(1) 推荐(0) 编辑
摘要: Record Lock Record Lock表示在单个记录行上加锁,Record Lock总是会锁住索引记录,如果InnoDB存储引擎表在建立的时候没有设置任何一个索引,那么这是InnoDB存储引擎会使用隐式的主键来进行锁定。 Gap Lock 间隙锁,锁定一个范围,但不包含记录本身。 Next- 阅读全文
posted @ 2017-08-14 11:53 一步一步学 阅读(725) 评论(0) 推荐(0) 编辑
摘要: 一致性非锁定读(consistent nonlocking read) 一致性非锁定读是值InnoDB存储引擎通过多版本控制(multi versioning)的方式来读取当前执行时间数据库中的数据。如果被读的数据行被加了排他锁,在读取这行数据的时候并不会等待锁释放,而是读取该行的一个快照数据。 之 阅读全文
posted @ 2017-08-14 11:08 一步一步学 阅读(820) 评论(0) 推荐(0) 编辑
摘要: 错误日志 错误日志不用多说,记录了mysql运行过程中的错误信息,当出现问题时,我们可以通过错误日志查找线索。 慢查询日志 可以通过参数long_query_time来设置时间,当sql语句执行超过指定的时间,就会被记录下来,用来进行sql调优。 还有一个参数log_queries_not_usin 阅读全文
posted @ 2017-08-12 16:33 一步一步学 阅读(582) 评论(3) 推荐(1) 编辑
摘要: 程序计数器(Program Counter Register) 像我们平时读书一样,当我们在去做别的事情之前,我们会对我们读到什么地方了做一个标记,方便我们再回来的时候接着重新读。如果这本书有很多人读呢?那么每个人都会对自己读到了哪里做一个标记。(标记都是个人自己保存) 那么程序计数器也是一样的,同 阅读全文
posted @ 2017-08-12 11:52 一步一步学 阅读(111) 评论(0) 推荐(0) 编辑