- 博客(8)
- 收藏
- 关注
原创 Redis速通!!!!
我们都知道 Redis 提供了丰富的数据类型,常见的有五种:String(字符串)Hash(哈希)List(列表)Set(集合)Zset(有序集合)随着 Redis 版本的更新,后面又支持了四种数据类型: BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增)。
2025-02-18 23:28:21
648
原创 Spring
即控制反转的意思,它是一种创建和获取对象的技术思想,依赖注入(DI)是实现这种技术的一种方式。传统开发过程中,我们需要通过new关键字来创建对象。使用IoC思想开发方式的话,我们不通过new关键字创建对象,而是通过IoC容器来帮我们实例化对象。通过IoC的方式,可以大大降低对象之间的耦合度。
2025-02-18 12:20:01
686
原创 synchronized,reentrantlock和Volatile
synchronized之后,会在编译之后在同步的代码块前后加上monitorenter和monitorexit字节码指令。执行monitorenter指令时会尝试获取对象锁,如果对象没有被锁定或者已经获得了锁,锁的计数器+1。此时其他竞争锁的线程则会进入等待队列中。执行monitorexit指令时则会把计数器-1,当计数器值为0时,则锁释放,处于等待队列中的线程再继续竞争锁。如果再深入到源码来说,synchronized实际上有两个队列waitSet和entryList。
2025-02-17 11:36:21
651
原创 Java并发编程
如果设置为true,则表示如果任务已经开始执行,那么允许中断任务;如果设置为false,任务已经开始执行则不会被中断。每个线程都一个与之关联的布尔属性来表示其中断状态,中断状态的初始值为false,当一个线程被其它线程调用Thread.interrupt()方法中断时,会根据实际情况做出响应。可以,当向线程池提交任务时,会得到一个Future对象。这个Future对象提供了几种方法来管理任务的执行,包括取消任务。└─ 已达最大线程数 → 执行拒绝策略。├─ 未达最大线程数 → 执行任务。
2025-02-15 16:41:54
2209
原创 MYSQL(事务)
select》 与 《insert》,《update》,《delete》这三者的区别,select 是快照读,后三者是当前读,也就是在执行后面三种操作的时候,获取的是数据库中最新的数据(最新的意思是说,别的事务已经提交的数据)脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据;不可重复读:多个事务对数据进行操作,读到了别的事务提交修改后的数据,和一开始读到的数据不一样;默认的隔离级别是可重复读;
2025-02-14 09:00:00
1641
原创 MYSQL(索引)
在实际的应用当中, d 值是大于100的,可以使高度一直维持在3,4层,二叉树的搜索复杂度为 O(logN),因此二叉树检索到目标数据所经历的磁盘 I/O 次数要更多。非主键索引的根结点存放的是主键值,如果查询的数据能在二级索引里查询的到,那么就不需要回表,这个过程就是覆盖索引。如果查询的数据不在二级索引里,就会先检索二级索引,找到对应的叶子节点,获取到主键值后,然后再检索主键索引,这个过程就是回表。再来,就是不要使用 count(字段) 来统计记录个数,因为它的效率是最差的,会采用全表扫描的方式来统计。
2025-02-13 00:51:30
655
原创 MYSQL(1)
select查询的时候去查询缓存( Query Cache )里查找缓存数据,看看之前有没有执行过这一条命令,这个查询缓存是以 key-value 形式保存在内存中的,key 为 SQL 查询语句,value 为 SQL 语句查询的结果,对于更新比较频繁的表,查询缓存的命中率很低。长连接:在长连接模式下,应用程序与MySQL数据库建立一次连接后,保持连接处于打开状态,直到显式关闭连接。短连接:短连接模式下,应用程序执行完一个查询或更新操作后,立即关闭连接。下次需要再次操作数据库时,重新建立一个新的连接。
2025-02-12 23:50:04
274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅