john_lw的博客

路漫漫其修远兮,吾将上下而求索

排序:
默认
按更新时间
按访问量

Spring MVC实现原理解析

Spring MVC基于MVC设计模式设计,其实现基于Spring IOC容器和Servlet。 Spring MVC的启动 Spring MVC通常运行在Web容器(如Tomcat)中,其启动由Web容器触发。 以下是一个常规的Web应用部署描述文件Web.xml: &a...

2018-07-10 17:14:53

阅读数:77

评论数:0

Spring AOP实现原理解析

Spring AOP 相关概念 AOP:Aspect-Oriented Programming,是一种新的模块化机制,用来描述分散在对象、类或者函数中的横切关注点。 Join Point:程序流中被分割为一个个代码单元,单元之间的点即为Join Point。如程序调用栈中,可以按照各个方...

2018-07-05 13:39:32

阅读数:45

评论数:0

Spring IOC实现原理解析

IOC IOC即DI,控制反转与依赖注入。表示的概念都是将对象自身从其依赖关系的管理中解放出来,将这个管理工作的责任交给第三方来完成。在Spring中,这个第三方就是IOC容器:基础版的BeanFactory和升级版的ApplicationContext。IOC容器全面接手了对象依赖关系图的管理...

2018-07-05 13:25:27

阅读数:222

评论数:0

InnoDB引擎--事务隔离性

事务将数据库从一个一致状态转换至另外一个一致状态,若某个事务看到了另外一个事务在状态转换过程中的中间态数据(不一致状态),将有可能导致另外一个事务的操作基于一个不一致的数据库状态,进而数据库失去一致性。事务隔离性主要用于处理数据库的并发访问问题。 事务隔离性级别 事务隔离性分为4个级别,可...

2018-06-03 17:21:44

阅读数:60

评论数:0

InnoDB引擎--事务持久性

事务是指构成单一逻辑工作单元的操作的集合。数据库系统维护事务的ACID四个特性: 原子性:事务的所有操作在数据库中要么全部反映,要么全部不反映。 一致性:事务执行前后数据库保持约束一致性和业务逻辑一致性。 隔离性:在事务并发执行时,各个事务都感觉不到其他事务的存在。 持久性:事务一旦提交,其更...

2018-05-15 14:36:14

阅读数:72

评论数:0

InnoDB引擎--索引

良好的索引设计可以大大提高数据库查询性能。InnoDB引擎支持自适应哈希索引、B+树索引和全文索引。其中自适应哈希索引是系统自动调整的,用户无法干预。 B+树索引 聚集索引 聚集索引以主键顺序构建B+树,叶子节点中存储行数据记录,数据也是索引的一部分。 辅助索引 辅助索引以索引列逻辑...

2018-05-15 10:56:36

阅读数:70

评论数:0

InnoDB引擎--存储结构与文件

数据库是数据的集合,数据库管理系统(DBMS)是操作和管理数据库的应用程序。数据库应用主要有两类:OLAP(联机分析处理)和OLTP(联机事务处理)。 OLAP的主要特点是: 实时性要求不高 数据量大 并发量小 OLTP的主要特点是: 实时性要求高 数据量小 高并发 要求满足ACID...

2018-05-14 14:36:54

阅读数:132

评论数:0

JVM--解析、分派、重载与重写

方法调用最关键的问题就是要确定具体调用哪个版本的方法。在Java虚拟机里共有5条方法调用字节码指令: invokestatic:调用静态方法 invokespecial:调用实例构造方法,私有方法和父类方法 invokevirtual:调用虚方法 invokeinterface:调用接口方法,...

2018-04-23 15:08:20

阅读数:48

评论数:0

JVM--JVM类加载机制(下)

在深入理解JVM–JVM类加载机制(上)中,只写到Java类加载机制的加载阶段,在类的生命周期中,还有后面的验证、准备、解析、初始化、使用和卸载这些阶段。 验证 验证阶段的主要工作是为了确保Class文件流中包含的内容符合虚拟机的要求,而且不会威胁到虚拟机自身的安全,主要有以下几个方面: ...

2018-04-18 16:56:53

阅读数:67

评论数:0

JVM--JVM类加载机制(上)

类加载机制 虚拟机把描述类的Class文件(一串二进制字符流,无论何种存在形式)加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是JVM的类加载机制。 类的生命周期 类从加载到内存到卸载的整个生命周期如下图: 加载阶段 Java...

2018-04-17 16:54:19

阅读数:48

评论数:0

JVM--垃圾回收

哪些内存应该被回收? JVM垃圾回收主要针对堆区和方法区。在Java堆中,我们不再需要的对象就可以被回收了。例如:在一个方法中新生成了一个Integer对象作为局部变量,当方法结束后,该对象将不会再被使用,是被回收的对象。 如何确定对象可被回收? 引用计数法 当没有引用指向某个对象...

2018-03-30 10:48:01

阅读数:66

评论数:0

JVM--JVM内存布局与Java对象的定义

JVM基本结构 如图所示: 运行时数据区 Java虚拟机定义了若干种程序运行时会用到的运行时数据区。 程序计数器 每个Java线程都拥有自己的程序计数器,字节码执行游标。 虚拟机栈 每个Java线程都拥有自己的虚拟机栈,在线程创建时同时创建,用于存储栈帧。栈帧是用来存...

2018-03-29 12:46:41

阅读数:56

评论数:0

Java并发机制(5)--线程、中断、Runnable、Callable、Future

Thread 线程的基本概念我们已经在深入理解Java并发机制(1)–理论基础中总结过了,这里不再赘述。 线程的状态 Java线程在其生命周期里处于以下6种状态,这些状态定义在Thread类内部枚举中。 状态 说明 NEW 初始态,还未调用start()方法 RUNNABLE ...

2018-03-28 09:51:50

阅读数:118

评论数:0

AVL树图解和Java实现

AVL树 AVL树是带有平衡条件的二叉查找树。平衡条件为:某节点左右子树的高度差不超过1。 平衡操作-旋转 在AVL树的插入和删除操作中,需要更新树节点的高度信息以检查AVL树的平衡状态,如果插入和删除后出现了不平衡,还需要通过旋转操作来修正AVL树的平衡状态。 插入后平衡 假设...

2018-03-27 13:33:44

阅读数:141

评论数:0

二叉查找树Java实现

二叉查找树 首先是一棵二叉树,使其称为查找树的关键性质是其某节点的左子树中任意值都小于该节点,右子树中任意值都大于该节点。 代码如下: public class BinaryTree<T extends Comparable<T&amp...

2018-03-22 13:23:59

阅读数:37

评论数:0

排序算法汇总

冒泡排序 算法思想:比较+交换。从数组第一个元素开始,两两比较相邻元素,将较大者后移,直到最后一个元素。重复此操作,直到数组中所有元素有序。 public class BubbleSort { public static void sort(int[] arr) { //重...

2018-03-19 15:27:47

阅读数:43

评论数:0

Java String类相关

String类简述 String类是不可变类,由final关键字修饰,内部由final数组char[]保存字符。对于String类的方法,查询类方法不会导致char[]数组内容变化。其他诸如subString,replace的方法均需要原字符串内容变化,又由于String类不可变,当调用这些方法...

2018-03-15 16:46:23

阅读数:42

评论数:0

JDK动态代理与CGLIB动态代理应用及源码解析

代理模式 代理模式:为其他对象提供一种代理以控制对这个对象的访问。 代理模式中有三种角色:Subject抽象主题角色、RealSubject真实主题角色、Proxy代理主题角色。Subject描述了业务行为,RealSubject执行具体的业务逻辑,Proxy代理会拦截对RealSubject...

2018-03-15 13:40:44

阅读数:292

评论数:0

Session与Cookie

cookie技术 http协议是无状态的,服务器无法判断某一个简单http请求来自于谁。这里我们可以利用cookie技术,当一个用户第一次登录服务器时,http request中不带有cookie字段,服务器通过http response中set-cookie字段设置浏览器访问该网站的cooki...

2018-03-13 10:46:59

阅读数:48

评论数:0

单例模式

单例模式定义 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式优缺点 优点 在内存中只有一个实例,节约内存,减少性能开销。当一个对象的产生需要占用较多资源时(如文件、读取配置文件等),采用单例模式可有效节约资源。 单例对象可以作为全局访问点,优化和共享全局...

2018-02-28 16:03:51

阅读数:51

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭