随笔分类 -  Java

[Java] SpringMVC工作原理之四:MultipartResolver
摘要:MultipartResolver 用于处理文件上传,当收到请求时 DispatcherServlet 的 checkMultipart() 方法会调用 MultipartResolver 的 isMultipart() 方法判断请求中是否包含文件。如果请求数据中包含文件,则调用 Multipart 阅读全文

posted @ 2017-10-27 17:23 TengYunhao 阅读(51344) 评论(3) 推荐(15)

[Java] SpringMVC工作原理之三:ViewResolver
摘要:一、ViewResolver 根据视图的名称将其解析为 View 类型的视图,如通过 ModelAndView 中的视图名称将其解析成 View,View 是用来渲染页面的,也就是将 Model 填入模板中,生成 html 或其他格式的文件。 可以设置多个解析策略,如可以根据 JSP 来解析,或者按 阅读全文

posted @ 2017-10-25 23:18 TengYunhao 阅读(3687) 评论(2) 推荐(2)

[Java] SpringMVC工作原理之二:HandlerMapping和HandlerAdapter
摘要:一、HandlerMapping 作用是根据当前请求的找到对应的 Handler,并将 Handler(执行程序)与一堆 HandlerInterceptor(拦截器)封装到 HandlerExecutionChain 对象中。在 HandlerMapping 接口的内部只有一个方法,如下: Han 阅读全文

posted @ 2017-10-18 12:09 TengYunhao 阅读(42564) 评论(4) 推荐(11)

[Java] SpringMVC工作原理之一:DispatcherServlet
摘要:一、DispatcherServlet 处理流程 在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作。在看 DispatcherServlet 类之前,我们先来看一下请求处理的大致流程: 二、Dispatcher 阅读全文

posted @ 2017-10-18 12:08 TengYunhao 阅读(47798) 评论(1) 推荐(10)

[Java] Servlet工作原理之二:Session与Cookie
摘要:(未完成) 一、Cookie与Session的使用简介 1 Cookie Cookie 用于记录用户在一段时间内的行为,它有两个版本:Version 0 和 Version 1,分别对应两种响应头 Set-Cookie 和 Set-Cookie2,但是 Servlet 规范中不支持 Set-Cook 阅读全文

posted @ 2017-10-13 22:27 TengYunhao 阅读(948) 评论(0) 推荐(0)

[Java] Servlet工作原理之一:体系结构及其容器
摘要:一、Servlet体系结构 在 servlet-api.jar (2.5) 中有两个包:javax.servlet 和 javax.servlet.http 1 Servlet、GenericServlet及HttpServlet Servlet 是一个接口,其方法如下: public void i 阅读全文

posted @ 2017-10-09 11:21 TengYunhao 阅读(1400) 评论(0) 推荐(1)

[Java] I/O底层原理之三:NIO
摘要:本篇文章参考自并发编程网 一、NIO 的概述 NIO 由以下几个核心组成 Channels Buffers Selectors 选择器用于监听多个通道的事件(如:链接打开、数据达到),单个线程可以监听多个数据通道。 传统的 IO 基于字节流和字符流操作,而 NIO 基于 Channel 和 Buff 阅读全文

posted @ 2017-09-07 19:28 TengYunhao 阅读(544) 评论(0) 推荐(0)

[Java] I/O底层原理之二:网络IO及网络编程
摘要:首先我们来看一下当访问一个域名时它的过程 我们先来看一下 TCP/IP 分层与 OSI 分层的关系 网络层 —— IP(网络之间的互联网协议)、ARP(地址解析协议)、RARP、ICMP 传输层 —— TCP(传输控制协议)、UDP(用户数据报协议) 应用层 —— TeInet(远程登录服务的标准协 阅读全文

posted @ 2017-09-04 00:02 TengYunhao 阅读(575) 评论(0) 推荐(0)

[Java] I/O底层原理之一:字符流、字节流及其源码分析
摘要:关于 I/O 的类可以分为四种: 在本篇博客中主要讲述前两种 I/O,即字符流与字节流,并会提及磁盘IO。首先我们来看一下字节流与字符流的实现关系,如下图 一、字节流 在字节流的类中,最顶层的是 Inputstream 抽象类和 OutputStream 抽象类,两者定义了一些关于字节数据读写的基本 阅读全文

posted @ 2017-09-03 11:12 TengYunhao 阅读(4307) 评论(0) 推荐(0)

[Java] 集合框架原理之二:锁、原子更新、线程池及并发集合
摘要:java.util.concurrent 包是在 Java5 时加入的,与 concurrent 的相关的有 JMM及 AbstractQueuedSynchronizer (AQS),两者是实现 concurrent 的基础,下面我们来看一下 1 JMM JMM 是 Java Memory Mod 阅读全文

posted @ 2017-09-02 14:22 TengYunhao 阅读(1201) 评论(0) 推荐(0)

[Java] 集合框架原理之一:基本结构与源码分析
摘要:一、Collection Collection 接口定义了一些基本的方法: int size(); boolean isEmpty(); boolean add(E e); boolean addAll(Collection<? extend E> c); boolean remove(Object 阅读全文

posted @ 2017-08-30 16:31 TengYunhao 阅读(1056) 评论(0) 推荐(0)

[Java] 理解JVM之三:垃圾回收机制
摘要:JVM内存中的各个区域都会回收吗? 首先我们知道 Java 栈和本地方法栈在方法执行完成后对应的栈帧就立刻出栈销毁,两者的回收率可以认为是100%;Java 堆中的对象在没有被引用后,即使用完成后会被回收;方法区中的数据一般不会回收,只有在同时满足:所有实例被回收、加载该类的类加载器被回收、Clas 阅读全文

posted @ 2017-08-24 15:17 TengYunhao 阅读(740) 评论(0) 推荐(1)

[Java] 理解JVM之二:类加载步骤及内存分配
摘要:一、类加载器 ClassLoader 能根据需要将 class 文件加载到 JVM 中,它使用双亲委托模型,在加载类的时候会判断如果类未被自己加载过,就优先让父加载器加载。另外在使用 instanceof 关键字、equals()方法、isAssignableFrom()方法、isInstance( 阅读全文

posted @ 2017-08-17 20:52 TengYunhao 阅读(4834) 评论(0) 推荐(1)

[Java] 理解JVM之一:工作机制及基本结构
摘要:一、基本结构 类加载器:在 JVM 启动时或在类运行时需要将类的字节码信息加载到 JVM 内存区域中。 执行引擎:负责执行字节码信息中包含的字节码指令,相当于实际机器上的 CPU。 内存区域:也被称为运行时数据区。将内存划分为多个区域,模拟实际机器上的储存、记录和调度功能模块。因为执行引擎在执行一段 阅读全文

posted @ 2017-08-16 01:34 TengYunhao 阅读(1504) 评论(1) 推荐(2)

[Web] Web请求过程之二:DNS 域名解析
摘要:一、域名解析过程 1、浏览器检查缓存,域名缓存时间可以通过 TTL 属性来设置。 2、如果浏览器缓存中没有,浏览器会去查找操作系统缓存中是否有这个域名对应的 DNS 解析结果。如果要设置域名对应的 IP 地址,可以在Windows 中的配置文件 C:\Windows\System32\drivers 阅读全文

posted @ 2017-08-03 09:48 TengYunhao 阅读(809) 评论(0) 推荐(0)

[Web] Web请求过程之一:HTTP
摘要:请求过程: 1、用户在浏览器输入 www.sdjtu.edu.cn 这个URL。 2、浏览器请求 DNS 服务器将这个 URL 解析成对应的 IP 地址。 3、浏览器向 IP 地址对应的这个服务器发起一个get请求。 4、服务器返回数据资源。 一、HTTP解析 1、常见的http请求头 2、常见的h 阅读全文

posted @ 2017-08-03 09:45 TengYunhao 阅读(426) 评论(0) 推荐(0)