点击上方 "大数据肌肉猿"关注, 星标一起成长

后台回复【加群】,进入高质量学习交流群

2021年大数据肌肉猿公众号奖励制度

这几天在整理书籍的时候发现了一本古老书籍叫《Java问题定位技术》。

这本书我之前看过,主要侧重对Java系统里所出现的一些bug进行拆解,教你如何解读error错误,如何定位问题。虽然这本书比较古老,而且有些JDK也迭代了,但不影响我们学习里面的定位思路。

目前已经出版了许多关于Java的书籍,但绝大多数书籍着重于介绍开发方面的主题。甚至同一主题的书籍,在市面上可以找到许多。对于系统地介绍Java问题 定位类的书籍却是少之又少,即使有这方面的内容,往往也是一笔带过。

写过代码的同学都知道,无论是新手还是老手,功能需求都不复杂,也不需要花太多时间,真正棘手的是bug,也就是报错,有时你可能花几天时间都在研究这一个报错,而且是毫无思路和进展。

系统运行遭遇问题(系统停止响应,运行越来越 慢,或者性能低下,甚至系统core dump),如何迅速命中问题的根本原因是颇具挑战性的任务。这类问题的定位技巧是这本书介绍的重点,借助这些技巧可以快速找到这些问题的突破口。

这本书将Java问题定位的方法体系化,提供一种以黑盒子方式进行问题定位的思路:如何使用线程堆栈进行性能瓶颈分析?如何分析内存泄漏?如何分析系统挂死?在掌握这本书所介绍的方法后,很多情况下无需对系统了解就可以对这类问题进行定位。

这本书除了介绍"事后"定位技术以外,同时还介绍了大量的事前预防技术,对一些严重影响稳定性或者可靠性问题相关的陷阱进行了深入分析,它们正是大型系统容易忽略但对系统稳定性和可靠性有巨大影响的暗礁,如果能在系统的设计和编 码阶段就防止埋上这些"地雷",那么就不需要事后补救这种代价极高的维护成本。

举个例子,我们能保证不存在内存泄漏吗?没人会在测试服务器中在完全模拟实际的负载的情况下 对系统进行一个周或者一个月的测试。因此,通过QA并不能保证没有内存泄漏的发生,因此 它很容易就被带入到产品中。

内存泄漏情况大多是与流量相关的,也就是说,流量越大,内存泄漏的速度就越快。这意味着你根本无法预测什么时候要重启程序,问题往往发生在系统最 忙的时候,墨菲法则往往就在这个时候生效。

"产品级别"的另一个方面是系统对所谓"瞬时峰 值"的应对能力,也就是应对系统的短暂性冲击的能力。经过短暂峰值的冲击的系统能否自动 恢复?很多系统经过短暂的峰值冲击,往往不能恢复,这常常是由于异常情况没有很好地进 行"善后处理",导致大量资源泄漏,

比如数据库连接泄露,一旦衰退开始,系统崩溃就只是迟 早的问题了。要想将功能完备软件变为产品级软件,系统要有一套完整的异常处理机制,对异 常进行了合适的"善后处理",避免由于异常导致的资源泄漏等问题。本书对这些具有坏味道的 代码也进行了深入剖析。

本书介绍的定位技术主要有:内存泄漏定位,线程堆栈分析等。内存定位套路比较固定, 但线程堆栈分析需要一定的火候,它需要一定的悟性和长期的修炼。在可靠性和稳定性问题 的定位中,线程堆栈分析是最有力的武器,掌握了这个定位工具,会大大增强自己的"内功"。

像《Effective Java》这类规范的书籍更多的是教你如何写好代码,即使你写的代码很完美,也避免不了会出现问题,因为问题不是只出现在代码,可能跟你机器配置、内存分配、业务的增长与变动都有关系。

有些Bug是相对的,今年你写的代码是完美的功能实现,随着系统的迭代,明年你这个代码可能就是隐藏的Bug。

像开发老鸟和新手的区别,更多的是在于对系统所出现问题的定位。很多公司养着大牛,平时可能没干什么活,但当系统出现问题都需要他们出马应对,而且非他们不可。

这份PDF我已经上传到网盘了,大家可以在我公众号后台回复【定位技术】进行获取。

获取方式

1. 首先扫描下方二维码

2. 后台回复「定位技术」即可获取

Java问题定位技术手册相关推荐

  1. 金九银十!阿里P8手写的内部Java核心开发成长手册,涵盖p5-p8技术栈,秋招必看!

    前言 程序员的年龄一直是大家讨论的热门话题,本人最近和不少小公司的程序员打交道.经过和他们的深入交流,我感受到了不少小公司程序员的现状,由此深深地感叹,可能真有不少小公司的程序员未必能干到30岁,甚至 ...

  2. java 通过手机 实时定位_恒高借助uwb定位技术,让机房复杂问题化繁为简

    ↑↑↑ 点上面蓝字 , 快关注我吧! ●RTLS● 恒高数字机房人员定位系统,采用UWB定位技术,通过在机房内部署一定数量的定位基站,机房巡检人员佩戴标签卡的形式,实时获取人员精确位置,精度高达10c ...

  3. JXTA v2.5技术手册

    JXTA v2.5技术手册 说明:     在做JXTA开发时,发现网上的资料非常少,已有的都是很老的资料,JXTA目前的版本已经是2.5了,同以前的2.0.2.1之类的差别非常大,因此网络上2002 ...

  4. 渗透测试-红/蓝队Hvv技术手册/面试

    红/蓝队Hvv技术手册/面试 介绍一下自己,喜欢研究的,实战过的项目,得过奖项的感悟. 经常关注的安全平台 基本功 网络协议(HTTP.TCP) 操作系统命令 底层编程开发(应用框架) 加密解密编码 ...

  5. 《圣殿祭司的ASP.NET4.0专家技术手册》----1-1 ASP.NET平台的三分天下

    本节书摘来自异步社区<圣殿祭司的ASP.NET4.0专家技术手册>一书中的第1章,第1节,作者: 奚江华,译者: 武海军 , 更多章节内容可以访问云栖社区"异步社区"公 ...

  6. JAVA API1.7中文手册

    说起程序员常用的几种计算机语言,java绝对是最先被提起的一种.而且现在很多新入行的程序员选择计算机语言的时候大多是选择这个.既然选择学习这门计算机语言,那JAVA API1.7中文手册这款软件就一定 ...

  7. Java开发与技术挑战——关于技术的技术思考

     Java开发与技术挑战--关于技术的技术思考 width="22" height="16" src="http://hits.sinajs.cn ...

  8. yii2手册_史上最全的技术手册整理总结,编程小白都从这篇文章迅速成为大牛...

    整理云端的开发,助你开发效率与认知起码提升十倍. 技术手册 Python初级手册 Python进阶手册 Python2手册 Python3手册 HTML手册 CSS手册 CSS3手册 HTML5手册 ...

  9. 虚拟机的分类_「面试必备」Java虚拟机知识点复习手册(下)

    关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...

最新文章

  1. 梯度下降法与批量梯度下降法的简洁公式总结
  2. 《深入理解mybatis原理》 MyBatis缓存机制的设计与实现
  3. IndexedDB使用(基本函数封到Angular2的service里)
  4. JMeter压测入门简单使用
  5. 使用Nito.AsyncEx实现异步锁
  6. 网络空间技术实验室:打造信息安全技术培育平台
  7. 在Asp.net中弹出对话框,确定后跳转到其他页面
  8. liblinear参数及使用方法(原创)
  9. 浦江县教育计算机网上网认证系统,上网认证系统使用说明
  10. Apple PUSH Notication Service (APNS) 配置攻略
  11. Html页面Js调用android本地相机和图片
  12. CrownCAD 旋转凸台特征
  13. 2021-06-25
  14. 服务器 z盘 映射,小脚本:在终端上映射网络驱动器Z盘
  15. 云可信 数未来| 中国电子云总部揭牌
  16. nbu Linux 邮件告警,Netbackup配置邮件警报
  17. mac u盘只读怎么修改_U盘插到苹果电脑总是只读 请问mac系统怎么设置U盘读写权限?...
  18. 迷宫问题寻宝(c++实现,求最短路径,显示路径)
  19. Spring 文件路径
  20. Oracle:子查询——rownum

热门文章

  1. 什么叫做社交电商,社交电商怎么做?
  2. 2024南京大学计算机考研信息汇总
  3. 【MATLAB教程案例27】基于matlab的图像配准算法的仿真与分析——sift,surf,kaze等
  4. [ 案例源码 ] 利用php开发apicloud 前台加后台源码
  5. linux下通过SD卡烧录.bin程序
  6. 硬件在环系统环境架构
  7. RGB TO ARGB
  8. 批量修改文件后缀名(扩展名格式),操作简单1行命令搞定!
  9. Android SDK 开发流程
  10. Apache实现盗链与防盗链与隐藏版本信息