java
全村少女的梦·
我爱hello 不爱word
展开
-
MySQL 锁机制
本文脑图锁种类Mysql中锁的分类按照不同类型的划分可以分成不同的锁,按照「锁的粒度」划分可以分成:「表锁、页锁、行锁」;按照「使用的方式」划分可以分为:「共享锁」和「排它锁」;按照思想的划分:「乐观锁」和「悲观锁」。下面我们对着这几种划分的锁进行详细的解说和介绍,在了解设计者设计锁的概念的同时,也能深入的理解设计者的设计思想。「表锁」是粒度最大的锁,开销小,加锁快,不会出现死锁,但是由于粒度太大,因此造成锁的冲突几率大,并发性能低。Mysql的「MyISAM储存引擎就支持表锁」,M转载 2020-07-03 23:38:05 · 210 阅读 · 0 评论 -
解读Java 8 中为并发而生的 ConcurrentHashMap
HashMap 是我们日常最常见的一种容器,它以键值对的形式完成对数据的存储,但众所周知,它在高并发的情境下是不安全的。尤其是在 jdk 1.8 之前,rehash 的过程中采用头插法转移结点,高并发下,多个线程同时操作一条链表将直接导致闭链,死循环并占满 CPU。当然,jdk 1.8 以来,对 HashMap 的内部进行了很大的改进,采用数组+链表+红黑树来进行数据的存储。rehash 的过程也进行了改动,基于复制的算法思想,不直接操作原链,而是定义了两条链表分别完成对原链的结点分离操作,即使是多线程转载 2020-07-03 23:33:48 · 190 阅读 · 0 评论 -
Spring Boot 集成 WebSocket 实现服务端推送消息到客户端
假设有这样一个场景:服务端的资源经常在更新,客户端需要尽量及时地了解到这些更新发生后展示给用户,如果是 HTTP 1.1,通常会开启 ajax 请求询问服务端是否有更新,通过定时器反复轮询服务端响应的资源是否有更新。ajax 轮询在长时间不更新的情况下,反复地去询问会对服务器造成很大的压力,对网络也有很大的消耗,如果定时的时间比较大,服务端有更新的话,客户端可能需要等待定时器达到以后才能获知,这个信息也不能很及时地获取到。而有了 WebSocket 协议,就能很好地解决这些问题,WebSoc原创 2020-07-03 23:30:50 · 594 阅读 · 0 评论 -
MYSQL优化随笔
今天记录一下mysql的一些优化建议,应用程序比较慢,原因有很多种。这其中也可能是数据库的原因。那么如何提高数据库SQL的执行速度和性能呢?技巧1、比较运算符能用“=”就不用“<>” "="增加了索引的使用几率。技巧2、明知道只有一条查询结果,那么请用“LIMIT 1” “LIMIT 1”避免扫描全表,只要找到结...原创 2020-01-05 12:38:03 · 125 阅读 · 0 评论 -
JAVA菜鸟学习之旅
今天时间把java SE的基础部分学完了,java的八个基本数据类型,byte short int long float double char boolean 。今天我想记录一下面向对象的一些内容,我个人觉得我对这部分内容不是很熟悉,java的三大特性:封装,继承,多态。我学习了封装后,就感觉封装就是把方法或者类型相同的元素把它放在一起。等下次需i要用的时候呢,就直接调用。我觉得原创 2017-08-01 21:04:18 · 184 阅读 · 0 评论 -
Servlet的知识
这几天我在学习servlet,然后今天我准备把servlet的生命周期写在这里,好久没更新了,还是要坚持,哈哈。servlet的生命周期1.创建servlet实例在默认情况下Servlet实例是在第一个请求到来的时候创建,以后复用。如果有的Servlet需要复杂的操作需要载初始化时完成,比如打开文件、初始化网络连接等,可以通知服务器在启动的时候创建该Servlet的实例。具体配置如原创 2017-10-30 21:30:28 · 181 阅读 · 0 评论