读书笔记,一文读懂如何调优JAVA程序

"JAVA 程序优化笔记"
根据标题"读书笔记,一文读懂如何调优JAVA程序"和描述"多年经验总结加读书笔记",我们可以总结出以下知识点:
一、异常处理
* 在 JAVA 中,异常可以分为编译错误、逻辑错误和运行时错误三种/non-normal situations。
* 如果没有找到相关的 catch 语句,会抛出 ThreadGroup.uncaughtException() 方法。
* 在使用异常时,可以用时间频度来确定是否需要异常处理。
* 重要原则是,对经常需要调用的语句不要进行异常处理,因为在逻辑上也显然不能作为异常来处理。
* 可以有两种方法来代替异常处理功能:使用特殊的返回值和前导检查法。
* 在方法实现中,首先检查参数的合法性也可以避免出现异常。
二、需查异常和不需查异常
* 需查异常是指在方法定义时用 throws 关键字声明的异常,可以在 catch 中进行恢复。
* 不需查异常是指不需要用 throws 声明的异常,出现了这种异常一般需要修改代码。
* 需查异常和不需查异常可以同时使用,但不要直接抛出 Exception,这样会从子类一个一个搜索很费时间。
三、内存管理
* JAVA 中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。
* JAVA 的垃圾回收机制与其内存管理密不可分,每一个 JAVA 都有自己的内存栈,用来存放局部变量和返回值。
* 内存分配方式有三种:从静态存储区分配、在栈上创建和在堆中创建。
* 堆的空间由垃圾收集器管理,它是一个独立的线程。
四、垃圾回收机制
* 分代复制 GC 收集器超过 95% 的对象的生存期都非常短,分代复制算法根据对象的生存期将对象分为两代。
* 所有的新创建的对象都在一个类假栈的内存区进行分配,叫做 eden,当这块内存全部分配给对象时,其中大多数已经死亡了,只要把少数未死亡的长期对象复制到另一块内存中,然后直接更新 eden 的指针就可以。
五、其他知识点
* 在方法实现中,首先检查参数的合法性也可以避免出现异常。
* 在实例化类时,在构造函数中检查方参数的合法性如果在程序中出现异常了可以采用保护性的措施来保证后来调用者的合法性。
* 系统级的错误是程序中控制不了的,不必抛出 ERROR 等。
* 在 finally 中抛出异常有可能会淹没掉原有的异常,所以存在外部调用时尽量不要在 finally 中抛出异常。

korgs
- 粉丝: 1w+
最新资源
- 关于网络的测试方法.pdf
- 中小企业网络规划方案(2).doc
- 国家开放大学电大《关系营销》网络课形考网考作业及答案.docx
- 项目管理可行性分析案例.doc
- 网络营销拓展.docx
- 2022年系统集成项目管理工程师重点系统集成工程师考试专供.doc
- 2022年通信联络应急预案讲述讲解.doc
- 项目管理策划书西双版纳展示中心.docx
- 网络信息安全承诺书(锦集4篇).docx
- 基于单片机的1602液晶显示电路设计.doc
- 投资建设项目管理师宏观经济政策考试模拟题.docx
- 综合布线系统方案设计及预算案例讲解.ppt
- 互联网环境下企业会计毕业分析【精品发布】.doc
- 基于GIS的空间统计分析在奶牛地氟病监测中的应用.pdf
- 网络推广100招推广精髓一网打尽.docx
- 企业信息管理与企业信息化.ppt