- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 BIO NIO AIO概念
同步阻塞IO(JAVA BIO): 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 同步非阻塞IO(Java NIO) : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个...
2018-05-09 14:51:56
181
翻译 Mybatis基本sql语法
Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。 SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): ...
2018-05-08 17:24:16
28942
原创 java动态代理
在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。首先我们先来看看java的API帮助文档是怎么样对这两个类进行描述的:InvocationHandler:InvocationHandler is the interface implemented ...
2018-05-08 16:15:42
168
原创 java反射机制
一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.例如:一个类有:成员变量、方法...
2018-05-08 16:04:01
167
翻译 jvm内存区域监控工具
JVM 图形化监控工具 前篇文章已经介绍了一些JDK 中自带的监控工具,但是这些工具都是基于文本界面的,无法很直观的看出程序运行的波动情况,这节就介绍一些图形化的监控工具供大家更简单容易的监控使用。 首先说几个官方开发的图形监控工具: 1.jvmstat jvmstat是图形版的jstat,由Java 官方提供,目前最新版本为3.0。 ...
2018-05-07 17:10:06
477
翻译 java内存模型
Java内存模型概述Java内存模型(即Java Memory Model,简称JMM)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的数据,而Java内存模型中规定所有变量都...
2018-05-07 16:58:58
188
翻译 JVM类加载机制
概述:虚拟机的类加载机制主要是指:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的一整套机制类的加载过程其主要的加载流程(生命周期)如图:在这个生命周期的流程图中,加载,验证,准备,初始化,卸载这五个阶段的顺序是确定的,也就是说要加载类时需要依次进行这个五个阶段,但是类的解析阶段则不一定,有可能在初始化之后才开始进行解...
2018-05-07 16:44:48
159
翻译 JVM垃圾收集器与内存分配策略
概述GC要完成3件事:哪些内存需要回收?什么时候回收?如何回收?Java内存运行时区域的各部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着入栈和出栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束,...
2018-05-04 11:14:22
164
翻译 JVM内存区域
根据《Java虚拟机规范(第2版)》的规定,Java虚拟机管理的内存包括下图几个运行时数据区域:1、程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一...
2018-05-03 17:47:29
140
原创 Mybatis原理及执行过程简析
原理详解:MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等,用完之后关闭SqlSess...
2018-04-28 09:12:29
5342
原创 Spring三大组件
Spring架构图:核心容器(Spring core)核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。BeanFactory使用依赖注入的方式提供给组件依赖。...
2018-04-27 17:45:19
14559
翻译 Spring原理之MVC
SpringMVC的工作原理SpringMVC的工作原理图:SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServ...
2018-04-27 17:42:26
151
原创 spring原理之AOP
AOP:Spring利用动态代理技术实现了AOP增强功能。这个动态代理是通过Java的动态代理或CGLIB技术实现。具体根据代理对象实现的是类或者接口来决定。AOP 中有以下基础概念: Join point(连接点):程序执行期间的某一个点,例如执行方法或处理异常时候的点。在 Spring AOP 中,连接点总是表示方法的执行。 Advice(通知):通知是指一个切面在特定的连接点要做...
2018-04-27 17:21:48
357
原创 spring原理核心之IOC
IOC:spring内部最核心的就是IOC了,控制权由对象本身转向容器;由容器根据配置文件区创建实例并创建各个实例之间的依赖关系并放在容器里面;当时使用对象时,动态注入,让一个对象的创建不用new了,可以自动的生产,从容器里面获取。这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml配置 Spring的配置文件来动态的创建对象,和调用对象里...
2018-04-27 16:59:03
197
软件测试艺术
2019-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人