JAVA Coder 的《深入分析Java Web 技术内幕》读书笔记

2019-08-09 00:00:00 分析 读书笔记 内幕

本文基于《深入分析Java Web 技术内幕》

《深入分析Java Web 技术内幕》,作者是 许令波,电子工业出版社。本文只是记录书本当中的精彩部分,作个人回顾和技术分享,请读者支持正版!

 

 

第一章:深入Web请求过程

 

1.1 B/S网络架构概述

HTTP采用无状态的短连接的通信方式。

当一个用户在浏览器里输入www.taobao.com这个URL时,会请求DNS把这个域名解析成对应的IP地址,然后根据这个IP地址在互联网上找到对应的服务器,向这个服务器发起一个get请求,由这个服务器决定返回默认的数据资源给访问的用户。

 

1.2 如何发起一个HTTP请求

发起一个http请求的过程就是建立一个Socket的通信过程

 

1.3HTTP解析

HTTP最重要的就是 HTTP Header,应熟记HTTP常见的Request Header 、Response Header 、Status Code,

在Chrome–>F12–>Network中,可查看相应的信息

 

第二章:深入分析Java I/O的工作机制

大部分Web应用系统的瓶颈都是I/O瓶颈,包括Java的I/O类库的基本结构,磁盘I/O工作机制,网络I/O的工作机制

 

2.1Java的I/O类库的基本结构

基于字节操作的I/O接口:InputStream和OutputStream

基于字符操作的I/O接口:writer reader

基于磁盘操作的I/O接口: File

基于网络操作的I/O接口: Socket

数据格式和传输方式是影响效率的关键

字节和字符之间需要转化

 

2.3.3Java Socket 的工作机制

Socket建立连接由底层根据TCP/IP协议,建立TCP连接,由IP来寻址网络中的主机

TCP建立连接三次握手—TCP释放连接四次挥手

 

2.4NIO的工作方式

首先清楚三个概念,BIO–Blocking IO 同步阻塞IO模式,NIO–New IO同时支持阻塞和非阻塞模式,

AIO–Asynchronous IO(JDK7后支持)异步非阻塞模式

 

第三章:深入分析Java Web中的中文编码问题

做过的项目都是统一使用 utf-8字符编码,不深究。

 

第四章:Javac编译原理

Javac编译器,将Java源码编译成Java字节码,也就是JVM能够识别的二进制码。表面是将.java文件转化成.class文件,实际上是将Java的源代码转化为一连串二进制数字。Javac主要有4个模块,词法分析器,语法分析器,语义分析器和代码生成器。

 

第五章:深入class文件结构

略。

 

第六章:深入分析ClassLoader工作机制

ClassLoader将class加载到JVM中。JVM加载class文件到内存有两种方式:隐式加载和显式加载。

6.4常见的加载类错误分析

ClassNotFoundException–>解决办法:检查当前的classpath目录

ClassCastException

ExceptionInitializerError

 

第七章:JVM体系结构与工作方式

java能够跨平台,主要是由于JVM屏蔽了与各个计算机平台相关的软件和硬件之间的差异,使得与平台相关的耦合统一由JVM提供者来实现。

JVM主要由四部分组成

1.类加载器,再JVM启动时或者在类运行时将需要的class加载到JVM中。

2.执行引擎,执行引擎的任务是负责执行class文件中包含的字节码指令,相当于实际机器上的CPU。

3.内存区,将内存划分为若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机器上的各种功能的寄存器或者PC指针的记录器等。

4.本地方法调用,调用C或C++实现的本地方法的代码返回结果。

 

第八章:JVM内存管理

这一部分内容不如 周志明 的《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》,机械工业出版社。个人感觉《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》内容更详细,易于理解。

 

 

第九章:Servlet工作原理解析

 

相关文章