摘要: 1.Spring的各个子项目 Spring Framework(Core):这是我们熟知的Spring项目的核心。Spring Framework(Core)中包含了一系列Ioc容器的设计,提供了依赖反转模式的实现;同时,还集成了AOP功能;另外,在Spring Framework(Core)中,还 阅读全文
posted @ 2019-04-01 16:34 听风的dog 阅读(945) 评论(0) 推荐(0) 编辑
摘要: 4.垃圾收集器 如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的的收集器。 这里 阅读全文
posted @ 2019-03-29 17:06 听风的dog 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 3.垃圾收集算法 3.1 标记—清除算法 最基础的收集算法是“标记—清除”(Mark-Sweep)算法,如他的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其缺 阅读全文
posted @ 2019-03-26 16:22 听风的dog 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 课程表 课程表 增加 100 条数据 增加 100 条数据 课程数据 学生表 学生表 增加 7W 条数据 增加 7W 条数据 增加 70W 条数据 增加 70W 条数据 测试 测试 业务需求 业务需求 查找 语文1 成绩为 100 分的考生 查找 语文1 成绩为 100 分的考生 查询语句 查询语句 阅读全文
posted @ 2019-03-26 13:37 听风的dog 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 1.概述 Java内存运行时区域,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此在这几个区域的内存分配和回收都具备确定性。而Java堆和方法区则不一样 阅读全文
posted @ 2019-03-25 18:32 听风的dog 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1.Java堆溢出 Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,就会在对象数量达到最大堆的容量限制后产生内存溢出异常。 (GC Roots Tracing算法 从GC Roots对象作为起始点,利用数学中图论知识,图中可 阅读全文
posted @ 2019-03-24 15:36 听风的dog 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 对象的访问假设这句代码出现在方法体中Object obj = new Object(); 假设这句代码出现在方法体中,那“Object obj” 这部分的语义将会反映到Java栈的本地变量表中,作为一个reference类型数据出现。而"new Object()" 这部分的语义将会反映到Java堆中 阅读全文
posted @ 2019-03-22 17:25 听风的dog 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 3.本地方法栈 本地方法栈与虚拟机栈作用相同,不同的是虚拟机栈为java方法服务,本地方法栈为native方法服务,本地方法栈会抛出StackOverFlowError和OutOfMemoryError异常 4.Java堆(Java Heap) Java堆是Java虚拟机所管理的内存中最大的一块。J 阅读全文
posted @ 2019-03-18 15:38 听风的dog 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 使用LinkedHashMap,一个有序的Map。 阅读全文
posted @ 2019-03-18 15:02 听风的dog 阅读(877) 评论(0) 推荐(0) 编辑
摘要: 一. 运行时数据区域 java虚拟机在执行Java程序的过程中,会把它所管理的内存划分为若干个不同的数据区域偶 1.程序计数器 程序计数器是一块较小的内存空间,作用是当前线程所执行的字节码的行号指示器。 字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令, 分支、循环、跳转 阅读全文
posted @ 2019-03-15 18:43 听风的dog 阅读(196) 评论(0) 推荐(0) 编辑