- 博客(11)
- 收藏
- 关注
原创 杭州实在智能java实习面经
hashtable与hashmap的区别。springboot自动装配原理。hashmap线程不安全具体体现。如何设计一个管理系统,表结构。hashmap是否线程安全。问了几种情况是否为重载。什么map是线程安全的。如何检测链表是否有环。
2024-09-14 10:00:32 236
原创 AQS
AQS 是 Java 并发框架中实现锁、信号量等同步工具的基础框架,通过维护同步状态、等待队列和提供独占与共享两种模式,实现了对线程的阻塞和唤醒控制。它极大简化了同步器的实现,使得Semaphore等工具类变得更加灵活和高效。
2024-09-11 15:50:28 742
原创 阻塞队列学习
阻塞队列在并发编程中发挥了重要作用,尤其适合生产者-消费者模型。:适合需要有限资源的场景。:适合大规模并发的数据交换。:适合需要优先级处理的任务。:适合直接传递任务的场景。DelayQueue:适合延时任务调度。合理使用阻塞队列可以极大地简化并发程序的实现,提升系统性能和安全性。
2024-09-11 15:08:07 564
原创 线程池学习
线程池是管理和复用线程的机制,它在Java并发编程中非常重要。通过线程池,我们可以避免频繁地创建和销毁线程,减少系统开销,提升性能。线程池的主要作用是控制线程的数量,重用已创建的线程,并提供任务队列进行任务管理。
2024-09-11 13:33:48 808
原创 力扣146.LRU缓存
LRU策略是当一定容量存满时将最不常用的数据淘汰掉(最久没用的数据),如下题,让我们设计一个LRUCache类实现LRU缓存约束的数据结构。当存取数据时,将数据放入LinkedHashMap末尾,则LinkedHashMap的头就是最不常用数据,当容量不够时淘汰。因为淘汰的是最久不用的数据,我们可以用java集合提供的LinkedHashMap类帮我们解决。
2024-09-10 23:13:09 197
原创 mysql事务
MySQL 事务通过 ACID 特性确保了数据库操作的可靠性。不同的隔离级别在性能和数据一致性之间做了权衡,开发者应根据具体场景选择适合的事务隔离级别。在事务处理中,掌握回滚、保存点和并发控制等机制是确保数据一致性和完整性的关键。
2024-09-10 15:16:23 1327
原创 redis淘汰策略
在 Redis 中,缓存淘汰策略已经内置并且可以通过简单配置来启用。在选择合适的策略时,应该结合业务场景,例如如果业务中所有键都有过期时间,可以选择或,而如果没有过期时间且想控制整体缓存大小,可以选择或。
2024-09-10 15:06:00 625
原创 Java中atomic原子类型
通过CAS无锁算法即Unsafe类中的compareAndSetInt方法实现原子性,保证数据修改时的线程安全。原子类型提供了一种在多线程环境中执行线程安全操作的机制,它们通过底层硬件指令来实现原子操作(不可中断)。原子类型是 Java 中用于支持多线程并发编程的类型,属于。关键字或手动管理锁,简化了多线程操作。
2024-09-09 14:40:48 168
原创 数据库索引分类以及底层数据结构
常见索引结构:B+树结构是大多数关系型数据库索引的主要实现方式,广泛应用于主键索引、唯一索引和普通索引。它支持快速的查找、插入、删除操作,且能够高效处理范围查询。其他结构:哈希索引适用于等值查询,倒排索引适合全文搜索,R树则处理空间数据查询,而位图索引擅长组合查询但不适合频繁更新。性能权衡:每种索引结构都有其特定的应用场景,合理选择合适的索引类型和结构可以显著提升数据库的查询性能,同时也要平衡插入、更新操作的开销。
2024-09-09 10:29:39 747
原创 InnoDB中的redo log和undo log机制
Redo Log 是数据库系统(尤其是 MySQL 的 InnoDB 存储引擎)中用于实现事务持久性的重要机制。它记录了事务对数据库所做的修改,确保即使数据库发生崩溃,事务的提交仍然不会丢失。
2024-09-09 10:04:33 1022
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人