摘要: JVM JVM 一、什么是JVM 定义 Java Virtual Machine,JAVA程序的运行环境(JAVA二进制字节码的运行环境) 好处 一次编写,到处运行 自动内存管理,垃圾回收机制 数组下标越界检查 比较 JVM JRE JDK的区别 二、内存结构 整体架构 1、程序计数器 作用 用于保存JVM 阅读全文
posted @ 2022-07-17 21:29 山野村夫01 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 1.构造函数 有三种 说第一种无参构造,默认初始容量为10 2.add函数 /** * 将指定的元素追加到此列表的末尾。 */ public boolean add(E e) { //添加元素之前,先调用ensureCapacityInternal方法 ensureCapacityInternal( 阅读全文
posted @ 2022-07-17 19:06 山野村夫01 阅读(150) 评论(0) 推荐(0) 编辑
摘要: InnoDB存储引擎在 RR 级别下通过 MVCC和 Next-key Lock 来解决幻读问题: 1、执行普通 select,此时会以 MVCC 快照读的方式读取数据 在快照读的情况下,RR 隔离级别只会在事务开启后的第一次查询生成 Read View ,并使用至事务提交。所以在生成 Read V 阅读全文
posted @ 2022-07-17 19:03 山野村夫01 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 索引的树结构 查找结构的进化 二分查找 二叉树 二叉平衡树 B-TREE :二叉平衡树的基础上,使加载一次节点,可以加载更多路径数据,同时把查询范围缩减到更小 缺点:业务数据的大小可能远远超过了索引数据的大小,每次为了查找对比计算,需要把数据加载到内存以及 CPU 高速缓存中时,都要把索引数据和无关的业务数据全部 阅读全文
posted @ 2022-07-17 19:01 山野村夫01 阅读(165) 评论(0) 推荐(0) 编辑
摘要: select,poll,epoll select、poll、epoll 区别总结: 底层实现 select/poll 首先把关注的Socket集合从用户态拷贝到内核态,然后由内核检测事件,遍历整个集合(由于线性结构实现,时间复杂度为O(n))找到对应的socket,并改变状态为可读或者可写,然后再拷贝整个socket集合到用户态,继续 阅读全文
posted @ 2022-07-17 18:57 山野村夫01 阅读(42) 评论(0) 推荐(0) 编辑
摘要: SpringBoot自动配置 @SpringBootApplication SpringBoot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动springBoot的应用 2. 核心注解为@EnableAutoConfiguration,开启自动配置功能 3. 阅读全文
posted @ 2022-07-17 18:53 山野村夫01 阅读(26) 评论(0) 推荐(0) 编辑
摘要: RPC学习 设计协议 相对于 HTTP 的用处,RPC 更多的是负责应用间的通信,所以性能要求相对更高。但 HTTP 协议的数据包大小相对请求数据本身要大很多,又需要加入很多无用的内容,比如换行符号、回车符等; 还有一个更重要的原因是,HTTP 协议属于无状态协议,客户端无法对请求和响应进行关联,每次请求都需要 阅读全文
posted @ 2022-07-17 18:50 山野村夫01 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 重构 参数过长 影响: 方法不易被理解、使用,方法签名容易不稳定,不易维护 解决方法:反复使用提炼方法+内联方法,消除多余参数 ​ 尽量把方法移进相关的类中 ​ 如实体类中的get方法在其他类中没有被调用可以删除 ​ 实际工作中,可以结合参数数量、以及自身对业务的理解,在 最小知道 和 保持对象完整性 之 阅读全文
posted @ 2022-07-17 18:49 山野村夫01 阅读(246) 评论(0) 推荐(0) 编辑
摘要: JVM线程属于用户态还是内核态 当进程运行在ring3级别时为用户态,ring0级别时为内核态 有些操作需要有内核权限才能进行,那么有三种由用户态切换到内核态的情况: 系统调用:操作系统封装内核指令,统一管理硬件资源,然后向用户程序提供系统服务,用户程序进行系统调用,操作系统进行检查确保安全然后再进 阅读全文
posted @ 2022-07-17 18:40 山野村夫01 阅读(79) 评论(0) 推荐(0) 编辑