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提供了连接器与流处理的能力,它也从分布式的消息系统逐渐成为 ...
随机推荐
- [PHP] 一个免费、开源的基于tp5+layui2.1.5开发的快速开发框架
推荐 一个免费.开源的基于tp5+layui2.1.5开发的快速开发框架,既可以用来学习,也可以用来实际项目的快速开发: 码云下载:https://gitee.com/eduaskcms/eduask ...
- 【字符串】 manacher算法
Algorithm Task 给定一个字符串,求其最长回文子串 Limitations 要求时空复杂度均为线性且与字符集大小无关. Solution 考虑枚举回文串的对称轴,将其对应的最长回文子串长度 ...
- spark基础知识一
1. spark是什么 Apache Spark™ is a unified analytics engine for large-scale data processing. spark是针对于大规 ...
- 不刷新网页修改url链接:history.pushState()和history.replaceState()新增、修改历史记录用法介绍
最近遇到了在不刷新页面的情况下修改浏览器url链接的需求,考虑到可以通过history.pushState()解决.现在将我理解的一些内容分享一下,不对的地方欢迎大家指出. 在使用方法前首先需要了解它 ...
- db服务器参数优化
1.swap分区 swap作用是在系统内存不够的情况下,当做临时的内存使用. swap是在硬盘上,性能肯定没有再内存好,当系统内存使用超过40%的时候, swap会可能被使用,而系统一旦使用swap会 ...
- [转]MySQL之——崩溃-修复损坏的innodb:innodb_force_recovery
原文 https://blog.csdn.net/l1028386804/article/details/77199194 1. mysql崩溃 --------------------------- ...
- Salesforce LWC学习(八) Look Up组件实现
本篇参考https://www.salesforcelwc.in/2019/10/lookup-in-lwc.html,感谢前人种树. 我们做lightning的时候经常会遇到Look up 或者MD ...
- 设计高性能大并发WEB系统架构注意点
设计高性能大并发WEB系统架构注意点 第01:大型架构的演进之路第02(上):分布式缓存第02(下):分布式缓存第03:分布式消息队列第04:分布式数据存储第05:分布式服务框架第06:高性能系统架构 ...
- 【VS开发】vector features(num_images)析构报错
代码一气呵成,但运行的时候会出现_CrtIsValidHeapPointer的异常,跟进去调了一上午的Bug,终于搞定 跟踪定位到 _CrtIsValidHeapPointer ,注意到 g 8h&q ...
- FPFA学习笔记的系列
1.Zynq 学习裸跑系列 学会Zynq(1)搭建Zynq-7000 AP SoC处理器 作者:FPGADesigner 学会Zynq(2)Zynq-7000处理器的配置详解 作者:FPGADesig ...