JAVA Coder 的《深入分析Java Web 技术内幕》读书笔记
本文基于《深入分析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工作原理解析
JAVA Coder 的《深入分析Java Web 技术内幕》读书笔记的更多相关文章
- Struts2技术内幕 读书笔记一 框架的本质
本读书笔记系列,主要针对陆舟所著<<Struts2技术内幕 深入解析Strtus2架构设计与实现原理>>一书.笔记中所用的图片若无特殊说明,就都取自书中,特此声明. 什么是框架 ...
- Struts2技术内幕 读书笔记三 表示层的困惑
表示层能有什么疑惑?很简单,我们暂时忘记所有的框架,就写一个注册的servlet来看看. index.jsp <form id="form1" name="form ...
- 深入理解linux网络技术内幕读书笔记(三)--用户空间与内核的接口
Table of Contents 1 概论 1.1 procfs (/proc 文件系统) 1.1.1 编程接口 1.2 sysctl (/proc/sys目录) 1.2.1 编程接口 1.3 sy ...
- Struts2技术内幕 读书笔记二 web开发的基本模式
最佳实践 在讨论基本模式之前,我们先说说一个词:最佳实践 任何程序的编写都得遵循一个特定的规范.这种规范有约定俗称的例如:包名全小写,类名每个单词第一个字母大写等等等等;另外还有一些需要我们严格遵守的 ...
- webkit技术内幕读书笔记 (一)
本文部分摘录自互联网. Chromeium与Chrome Chromium是Google为发展自家的浏览器Google Chrome而打开的项目,所以Chromium相当于Google Chrome的 ...
- MySQL技术内幕读书笔记(八)——事务
事务的实现 事务隔离性由锁来实现.原子性.一致性.持久性通过数据库的redo log和undo log来完成.redo log称为重做日志,用来保证事务的原子性和持久性.undo log用来保证事 ...
- spring 技术内幕读书笔记1
1 在 java 应用开发中,往往会涉及复杂的对象耦合关系,在 代码中处理这些耦合关系,对代码的维护性和应用扩展性会带来许多不便.通过使用spring 的 IOC 容器,可以对这些耦合关系实现一个文本 ...
- Kafka技术内幕 读书笔记之(六) 存储层——日志的读写
-Kafka是一个分布式的( distributed ).分区的( partitioned ).复制的( replicated )提交日志( commitlog )服务 . “分布式”是所有分布式系统 ...
- Kafka技术内幕 读书笔记之(二) 生产者——新生产者客户端
消息系统通常由生产者(producer ). 消费者( consumer )和消息代理( broker ) 三大部分组成,生产者会将消息写入消息代理,消费者会从消息代理中读取消息 . 对于消息代理而言 ...
- Kafka技术内幕 读书笔记之(一) Kafka入门
在0.10版本之前, Kafka仅仅作为一个消息系统,主要用来解决应用解耦. 异步消息 . 流量削峰等问题. 在0.10版本之后, Kafka提供了连接器与流处理的能力,它也从分布式的消息系统逐渐成为 ...
随机推荐
- Linux下进程间通信方式——共享内存
1.什么是共享内存? 共享内存就是允许两个或多个进程共享一定的存储区.就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针.当一个进程改变了这块地址中的内容的时候,其它进程都会察 ...
- vue-echarts在vue中的使用
安装依赖: [win]npm install echarts vue-echarts [mac]sudo npm install echarts vue-echarts Vue-ECharts 默认在 ...
- 【数据结构与算法】k-d tree算法
k-d tree算法 k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构.主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索). 应用背景 SIFT算法中做特征点 ...
- 深度学习 NI-DL 框架
NI-DL 应用框架:图像分类,目标检测,分割提取. 底层:TensorFlow,Keras,Cuda,C/C++ 上层:C#.NET Winform [图像分类] 识别一张图片是否为某个类型的物体/ ...
- Ladon内网渗透扫描器PowerShell版
程序简介 Ladon一款用于大型网络渗透的多线程插件化综合扫描神器,含端口扫描.服务识别.网络资产.密码爆破.高危漏洞检测以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL. ...
- [转帖]B4. Concurrent JVM 锁机制(synchronized)
B4. Concurrent JVM 锁机制(synchronized) https://www.cnblogs.com/zlxyt/p/11050346.html 挺好的 感觉这个文章写的 不过想要 ...
- 拦截器配置类使用继承写法导致jackson的全局配置失效
问题描述 项目中需要一个拦截器用于拦截请求,在没有请求中生成requestId.然后写了一个配置类,这个类继承了 WebMvcConfigurationSupport类,重写了addIntercept ...
- 用ab每隔30分钟并发一次休息10分钟
linux脚本监控程序运行情况(重启程序)主要有两种情况:一种是一个可执行文件:如shell脚本文件:另一种是使用python打开的多个程序.第一种:它的进程名字由路径名字和程序名字组成,比如:我有个 ...
- Windows下非PE方式载荷投递方式研究
0. 引言 0x1:载荷是什么?在整个入侵过程中起到什么作用? 载荷的作用在整个入侵链路的作用起到纽带的作用,它借助于目标系统提供的某些功能:组件:执行环境,将攻击者的传递的恶意payload包裹起来 ...
- 将EntityFrameworkCore生成的SQL语句输出到控制台,使用hangfire
将EntityFrameworkCore生成的SQL语句输出到控制台 参考文档如下 EF Core 日志记录要求使用一个或多个日志记录提供程序配置的 ILoggerFactory. 日志记录-EF C ...