《深入分析Java Web技术内幕 修订版》的作者是淘宝的技术一线工程师,亲历了淘宝PV从0到10亿的发展过程,在这个过程中积累了丰富的经验,修订版中作者补充了一些无线端的经验。深入分析java Web技术内幕和传统的教学时Java Web编程的书籍不同,本书更倾向于Java Web的运行原理,实际编程中的一些问题。试读内容将近100页,包含了完整的Java虚拟机内存管理以及 Servlet工作原理,并深度介绍了Cookie和Session,这部分内容适用于任何的Web编程语言。

        第八章节是关于JVM的内存管理,Java语言和C/C++不太一样的地方就是很少显示的调用内存分配函数,但是一旦出现对应的内存错误,还是需要通过日志快速定位到出错的原因。这一章节首先从系统层次上介绍内存的分配和J阿ava内存分配的关系。Java核心技术之一就是如何分配和回收内存,虽然程序员不了解这部分内容也能写出Java Web应用,但是学习这块内容更能加深对Java的理解。

        系统层次的内存就可以划分为物理上和逻辑上的,无论是Window还是Linux系统,只要是现代的操作系统的处理方式都是很类似的,Java组件中很多需要使用到内存,包括Java堆、线程、类及加载器,Java相对于其他的编程语言需要更多地内存单元来执行。很快就讲到了Java的内存结构以及通常的内存分配策略。提到内存分配就要有内存回收,包括了静态的内存分配和回收以及动态的分配和回收。内存中的一些对象不再使用就会成为垃圾,如何检测和回收垃圾是Java核心中的核心,不然就会出现“内存泄露”问题。

        理论讲解完之后就举出几个实例,从日志文件能够看出来,第一个实例在业务逻辑问题导致对象没有被释放,从而出现内存泄露问题。第二个实例则是提到一个JVM自身的bug问题,是一个调用问题,这些高大上的问题可能在小规模场景下难以遇到,这里能够提前见识,为将来可能遇到类似的问题提供了解决思路。

        第九章是Servlet的工作原理解析,Servlet可是Java Web技术的核心基础,Servlet作为一容器可以方便的部署和迁移一个应用。Servlet容易是一个独立发展的标准化产品,有很多的种类,比较流行的就是Jetty,也有很多的技术书籍介绍,总之是各有优劣。容器分为多个等级,通过接口互相调用。作者解释了Servlet的启动过程、初始化工作工程、创建实例和对象,然后给出了Servlet的体系结构,说明Servlet是如何工作的。给出了一张请求进入的“路由图”:
《深入分析Java Web技术内幕》-LMLPHP

        第十章是关于Cookie和Session的内容,这里还是讲解了Cookie的基础知识和原理,以及在Java中如何工作的,这些内容我已经在《HTTP权威指南》中看过了,这里算是温故一下。倒是Java特有的Cookie处理方式还是值得学习的,毕竟和我常用的编程语言的处理方式不太相同。因为Cookie的一些限制,配合Session工作效果更好,然后就详细的讲解Session的知识,最后给出Java Web如何配合使用Cookie和Session的思路。

        《深入分析Java Web技术内幕》试读内容大概看了两个小时,虽然没有仔细阅读每个细节,但是对于试读的内容有个概括性的认识。阅读后认识到这本书不是传统的Java Web编程入门书籍,而且理解Java Web是如何工作的原理,通过通俗易懂的文字和丰富生动的配图,让读者充分的了解它们的内部工作原理,作者也同时分析了技术背后的架构思想,是Java Web程序员进阶的指导性书籍。

09-14 08:50