摘要:数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)。 我们分析问题,一定要有递归的思想,自顶向下,从抽象到具体。你上来就列出这么多,那些都属于「上层建筑」,而数组和链表才是「结构基础」。因为那些多样化的数据结构,究其源头,都是在链表或者数组上的特殊操作,API 不同而已。 DAG:Dir
阅读全文
摘要:CAP理论 CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。 在理论计算机科学中,CAP 定理(CAP theorem)指出对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点
阅读全文
摘要:Spring IOC & AOP 谈谈自己对于 Spring IoC 的了解 IoC(Inverse of Control:控制反转) 是一种设计思想,而不是一个具体的技术实现。IoC 的思想就是将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理。不过, IoC 并非 Spirng
阅读全文
摘要:为什么要用消息队列 异步处理一般都通过回调来进行通知 上面圈住的部分就是kafka持久化机制 kafka 队列模型了解吗?Kafka 的消息模型知道吗? 虽然是发布订阅模型,kafka有多分区机制(和消费者组一起实现负载均衡),组内的所有消费者协调在一起来消费订阅主题(subscribed topi
阅读全文
摘要:学习周阳老师redis讲解视频,B站链接:https://www.bilibili.com/video/BV1oW411u75R?p=1
阅读全文
摘要:mysql执行一条数据库修改语句的执行过程:少了写入undolog和binlog。 注意!! binlog是提交事务后写入的,redo log commit阶段也是事务提交后才有的。 binlog 归档日志 redolog事务日志,保证持久性,崩溃恢复机制。undolog 保证原子性。 除了后台线程
阅读全文
摘要:常见的mysql索引类型:Hash索引、B树、B+树 在 MySQL 中,MyISAM 引擎和 InnoDB 引擎都是使用 B+Tree 作为索引结构,但是,两者的实现方式不太一样。 聚集索引 聚集索引即索引结构和数据一起存放的索引。主键索引属于聚集索引。 非聚集索引 非聚集索引即索引结构和数据分开
阅读全文
摘要:数据库基础知识 数据库三范式: delete表数据后,自增主键会从删除点继续自增。可以用alter将自增起始点改成1 ALTER TABLE `表名` AUTO_INCREMENT =1; 插入:insert into table values update table set where dele
阅读全文
摘要:三者都是io多路复用,epoll还是事件驱动io 综上,在选择select,poll,epoll时要根据具体的使用场合以及这三种方式的自身特点。 1、表面上看epoll的性能最好,但是在连接数少并且连接都十分活跃的情况下,select和poll的性能可能比epoll好,毕竟epoll的通知机制需要很
阅读全文
摘要:为什么必须进行三次握手? TCP首部结构: 4.3 拥塞控制 TLS协议原理以及加密算法 加密算法 https加密演变过程: (2)同时非对称加密加密性能比较低,能加密的数据长度有限。 https使用非对称加密和对称加密结合的方式: (1)第 ③ 步时,客户端说:(咱们后续回话采用对称加密吧,这是对
阅读全文
摘要:java内存区域 程序计数器: java虚拟机栈: 实际上,Java 虚拟机栈是由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法出口信息。 堆: 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢? 1、整个永久代有一个 JVM 本身设置的固定大
阅读全文
摘要:java并发常见面试题 sleep执行后线程进入阻塞状态 yield执行后线程进入就绪状态 join执行后线程进入阻塞状态 java中yiled()方法的作用是:让当前处于运行状态的线程退回到可运行状态,让出抢占资源的机会 yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的
阅读全文
摘要:java集合使用注意事项 :1、判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size()==0 的方式 2、在使用 java.util.stream.Collectors 类的 toMap() 方法转为 Map 集合时,一定要注意当 value 为 null 时会抛 NP
阅读全文
摘要:数组的length返回的是申请空间的大小。申请后初始化默认值。 比如Math.sum() equals()没有重写使用的还是object类的比较的是对象地址,重写一般比较属性值是否相等。 hashcode()方法通过比较散列值比较两个对象是否相等,我们比较的时候可以先用hashcode,如果不相等可
阅读全文