读Java性能权威指南(第2版)笔记04_ Java SE API技巧下

Java官方中文教程2022版:从基础到实战的权威学习指南 Java作为一门广泛应用于企业级开发、后端服务和Android应用的核心编程语言,其官方教程是构建扎实技术根基的关键资源。官方教程系统性地阐述了Java语言的核心概念,包括面向对象编程、集合框架、并发模型和JVM基础原理,这些知识构成了现代Java开发的底层支撑。从技术价值看,掌握官方教程内容不仅能帮助开发者编写高效、健壮的代码,还能深入理解Java生态中各种框架和工具的设计思想。在实际应用场景中,无论是零基础入门、知识体系升级,还是应对技术面试,官方教程都提供了权威的参考路径。特别是对于中文开发者,202 阅读详情

 

1. 异常

1.1. 代码应该仅在发生意料之外的事情时抛出异常

1.1.1. 防御性编程性能好

1.2. 异常的处理成本未必很高

1.2.1. 应该只在适当的时候使用

1.2.2. 栈越深,处理异常的成本就越高

1.3. 对于频繁创建的系统异常,JVM会优化获取栈轨迹的性能开销

1.4. 在异常中禁用栈轨迹有时可以提高性能,但会丢失一些关键信息

2. 日志

2.1. 一直开启GC日志

2.2. 基本原则

2.2.1. 在日志的数据和日志的级别之间找到平衡

2.2.2. 使用细粒度的日志记录器

2.2.2.1. 开启过多的日志通常会改变生产环境,使原来的问题无法显现

2.2.3. 即使没有开启日志,也很容易在无意间写出具有副作用的日志代码

2.3. 应该包含大量日志以帮助用户找出问题所在,但日志默认应该是关闭的

2.3.1. 如果日志记录器的参数需要调用方法或者分配对象,那么不要忘记在调用记录器之前检验日志级别

3. Java集合API

3.1. 根据算法选择集合类是至关重要的

3.2. LinkedList不适合搜索

3.3. HashMap用于访问一段随机的数据

3.4. TreeMap用于数据需要保持有序

3.5. HashMap是根据键值查找条目的最快方法

3.6. ArrayList用于数据通过索引访问

3.6.1. 不适用将数据插入到数组中

3.7. 集合的大小会对性能产生很大的影响

3.7.1. 太大,会拖慢垃圾回收器的速度

3.7.2. 太小,会需要大量的复制操作和大小调整操作

3.8. 使用同步集合,降低由此带来的性能影响

3.8.1. 是否值得花费时间和精力为了线程安全而面向未来编程

4. Lambda和匿名类

4.1. Lambda并不是通过匿名类实现的

4.2. Lambda的代码会创建一个静态方法

4.2.1. 该方法通过一个特殊的帮助类来调用

4.3. 匿名类是真正的Java类

4.3.1. 它有单独的类文件,并会通过类加载器加载

4.3.2. 启动有很多匿名类(相对于有很多Lambda)的应用程序,可能会出现更大的差异

4.4. 性能几乎没有区别

4.4.1. 在类加载很重要的环境中,Lambda会稍快一些

5. 流和过滤器

5.1. 流最重要的性能优势

5.1.1. 它们被实现为延迟处理的数据结构

5.1.2. 延迟处理的过滤器实现可以在完成需要做的事情后结束处理,这样处理的数据更少

5.2. 过滤器比迭代器快得多的原因

5.2.1. 它们可以进行算法上的优化

5.3. 即使处理整个数据集,单个过滤器的性能也会略优于迭代器

5.4. 多个过滤器是有开销的,要确保编写性能良好的过滤器

6. 对象序列化

6.1. 一种将对象的二进制状态写出来,以便之后重新创建的方法

6.2. 数据的序列化可能是很大的性能瓶颈

6.3. 降低对象序列化成本的方法是序列化更少的数据

6.3.1. 将字段标记为transient来做到,标记后它们默认不会被序列化

6.3.2. 可以让序列化更快,并减少需要传输的数据量

6.4. 优化序列化往往就是对对象引用进行特殊处理

6.4.1. 做得正确,序列化代码的性能会大幅提高

6.4.2. 做得不正确,就会引入不易察觉的bug

6.4.3. 避免写出重复的对象引用

6.5. 压缩序列化数据,传输速度会更快

6.5.1. 压缩序列化数据然后延迟解压会非常有用,特别是当目标是节省CPU内存而不是节省CPU时间的时候

6.5.2. 在快速的网络上,压缩数据的时间很容易比传输更少的数据所节省的时间长,在较慢的网络上,情况可能正好相反

6.6. 实现Externalizable接口

6.6.1. 当writeObject()方法调用defaultWriteObject()方法时

6.6.1.1. Serializable接口会写出非瞬时字段

6.6.1.2. Externalizable接口不会写出非瞬时字段

6.6.2. Externalizable类必须明确地写出它要传输的所有字段

6.6.2.1. 不管这些字段是不是瞬时的

6.7. 即使一个对象的所有字段都是瞬时的,最好还是实现Serializable接口并调用defaultWriteObject()方法

6.7.1. 会让代码更容易维护

6.8. 通过writeObject()方法和readObject()方法进行的其他优化可以大幅加快序列化的速度

大礼包:官方权威参考书在线畅读(18+本) 不参考官方谈技术都是耍流氓! 阅读详情

相关推荐

Java SE 6 API 中文参考文档完整版

Java API 1.6 是 Java Platform, Standard Edition 6(Java SE 6)的核心组成部分,提供了一整套用于构建企业级应用的类库与接口。其包结构清晰,主要包括java.lang(基础类)、java.util(集合与工具类)、java.io(输入输出操作)等关键模块,支撑着应用程序的基础运行。JVM 在 SE 6 中进一步优化了类加载机制与垃圾回收策略,提升了启动性能与内存管理效率。

weixin_34438187的博客 350

读Java性能权威指南(第2版)笔记02_ Java SE API技巧上

千万不要在循环中使用字符串连接,除非连接的字符串不会在循环的下一次迭代中使用。当你转到一个较新的版本时,不需要重新编译旧代码,因为字节码会是一样的。String类的intern()方法来创建字符串的标准化版本。想用新的编译器编译出新的代码,以使用新的语言特性。例外是应用程序中所有的字符串都需要16位编码。String.equals()方法是相当快的。JDK 8的优化在处理字符串和整数时效果很好。使用String类的intern()方法。自定义方法来创建字符串的标准化版本。G1 GC执行自动去重。

lyingSeven的博客 182

Java API 1.6中文版权威参考文档

优势说明灵活性可自由组合多个装饰器,如扩展性新增功能不影响现有类,符合开闭原则内存效率避免多重继承导致的对象膨胀综上所述,java.io的流体系不仅是一组工具类,更是一种体现良好软件设计思想的典范。掌握其背后的设计模式,有助于我们在复杂项目中构建可复用、易维护的 I/O 处理模块。

weixin_42604188的博客 924

Java性能权威指南(第2版)读后总结与感想

语言在不断进化发展、jvm也在不断进化发展,在采用java 8 不变的情况下,使用包含新的垃圾回收算法的jdk,使用新的垃圾回收算法能够获得更好的性能体验。了解不难,学精很难,性能调优不仅仅是技术活,更是一门艺术,需要考虑的场景、判断的条件纷繁复杂,各种开关也会相互影响,使用的不好,还不如采用默认方式。验证、测试自然少不了各种工具,既有原生自带的,也有开源或者商业的第三方工具,在这个方面,介绍的也较详细,能够帮忙我们分析性能问题的源头。有些性能建议是包治百病的,比如,使用更小的对象;

lyingSeven的博客 209

树莓派5外接RTX显卡:从PCIe到驱动的完整踩坑指南

在ARM架构与GPU加速的交汇点,树莓派5凭借其PCIe接口为DIY爱好者打开了外接独立显卡的大门。然而,PCIe x1的带宽限制、供电差异以及NVIDIA驱动在ARM Linux上的兼容性,使得这一组合成为一场高强度的系统底层排错训练。从理解PCIe总线原理、驱动加载机制到CUDA环境配置,每一步都充满挑战。本文以工程实践视角,梳理外接RTX显卡的完整流程、常见故障与性能瓶颈,并探讨其在边缘计算、AI推理等场景下的真实价值,帮助你理性评估这一实验性方案的可行性与替代路径。

chubaisheng8627的博客 351

LaTeX公式转Word竟这么简单?Python三行代码实现学术论文格式无忧

本文介绍如何利用Python的latex2word库,仅需三行代码即可将LaTeX数学公式精准转换为Word原生Office Math对象,解决学术写作中LaTeX与Word格式割裂的难题。该方法支持批量处理、格式保真,并能与Markdown、Jupyter Notebook等工具集成,构建自动化写作流程,实现学术论文格式无忧。

qsc90123456的博客 296

读Java性能权威指南(第2版)笔记03_ Java SE API技巧中

要验证类是否从共享存档加载,可以在命令行加上类加载日志(-Xlog:class+load=info)命令。只适用于从模块或JAR文件加载的类,不能共享(或加速加载)来自文件系统或网络URL的类。某个应用程序是用Java编写的,那么出于性能原因调用原生代码几乎总是一个坏主意。对于文件和套接字,压缩和字符串编码的操作,必须适当地对I/O进行缓冲。编写尽可能快的代码感兴趣,应该避免使用Java原生接口。想要真正快速的代码,应该使用原生代码。使用字符(字符串)数据的文件I/O。常规的CDS(共享默认的JDK类)

lyingSeven的博客 146

INCA_ProF脚本教程

一、首先INCA软件是当前主流标定开发软件之一,尤其在动力系统控制器的标定中应用非常广泛;与此同时ProF编程脚本是INCA软件提供各种实用功能之一,使用者可根据需求编写ProF脚本语言对ECU闪存编程等各种自定义操作。 二、然而ProF脚本语言在ETAS的官网或其他网络上并没有专门的使用教程,通常只有ETAS技术支持人员提供的ProF Documentation文档或少量可参考的Demo案例,然而ProF Documentation文档仅涉及ProF语言的函数的操作说明,没有从全局的框架上介绍Pro

weixin_29389627的博客 1万+

终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南

市面上真正适合学习的性能优化方面的资料太少,有的书或资料虽然讲得比较深入,但是语言晦涩难懂,大多数人看完这些书基本都是从入门到放弃。线程池与ThreadPoolExecutor、线程同步、JVM线程调优、监控线程与锁。操作系统的工具和分析、Java监控工具、性能分析工具、Java任务控制。Java和JIT编译器版本、高级编译器调优、编译器中级调优、逆优化。web容器的基本性能、线程池、对象序列化、XML和JSON处理。缓冲式.I/O、类加载、Java原生接口、异常、字符串的性能。

Trouvailless的博客 486

手把手教你学Simulink--H桥逆变器的PWM控制设计与仿真

本文详细介绍了如何在Simulink环境中设计和仿真一个基于PWM控制的H桥逆变器。H桥逆变器广泛应用于电机驱动、UPS和可再生能源系统等领域,通过PWM技术可以有效控制输出电压的幅度和频率,减少谐波失真,提高系统效率和稳定性。文章首先介绍了所需的工具和环境,包括MATLAB/Simulink和SimscapeElectrical工具箱。接着,详细阐述了从定义任务需求、创建Simulink项目、建立基础电气模型、集成传感器模型、实现PWM控制算法到设置仿真参数和运行仿真的完整步骤。最后,文章总结了通过Sim

MHD0815的博客 719

[明道云] -基础教学1- 创建第一个工作表:从 0 到实用

明道云工作表相当于数据库表,是存储业务数据的核心组件。创建工作表主要有两种方式:1)从空白新建,通过添加字段(最多200个)、设置属性、配置表单样式;2)从Excel导入,需选择sheet、配置字段映射。创建后系统自动生成默认视图,支持多种视图形式(看板/日历等)。建议设置合适的标题字段和关联关系,初学者可在一小时内完成基础应用搭建。后续可扩展权限控制、工作流自动化等功能。

每日出拳老爷子的博客 556

【读书笔记】Java性能权威指南 读书笔记

文章目录1.导论2.性能测试方法3, Java性能调优工具3.2 java 监控工具3.2.1 基本信息3.3 性能分析工具3.3.1 采样分析器3.3.2 探查分析器3.3.3 阻塞方法和线程时间线3.3.4 本地分析器3.4 Java任务控制3.4.1 Java飞行记录器4. JIT编译器4.1 编译器介绍4.2 调优入门: 选择编译器类型4.2.1 优化启动4.2.2 优化批处理4.2.3 优化长时间运行的应用4.3 Java和JIT编译器版本4.4 编译器中级调优4.4.1 调优代码缓存4.4.2 

九师兄 746

【AUTOSAR-E2E】-2.2-配置E2E:基于E2EPW配置一个TX发送的Signal Group(使用E2E Profile 2)

《共13页精讲》:此法也适用于E2E Profile 4/5/6/7/11/22 目录 1 检查CAN Matrix Arxml/DBC是否满足E2E需求 2 在DaVinci Developer中为Port添加E2E保护 3 在DaVinci Configurator settings设置 4 如何使用应用层的E2E保护 5 结尾 <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> &lt.

「汽车电子助手」的博客 4219

终于有人把性能优化讲清楚了,阿里架构师推荐的Java性能权威指南

Java给大部分人的感觉就是慢,有严重的性能问题。其实程序慢的问题,与语言无关,与Java无关。Java应用的性能优化也是一个老生常谈的话题,但是只要我们深入的了解性能调优方法,走遍天下都不怕!大多数开发人员认为性能优化是个比较复杂的问题,需要大量的经验和知识。是的,这并不没有错。诚然,优化应用程序以获得最好的性能并不是一件容易的事情,但这并不意味着你在没有获得这些经验和知识之前就不能做任何事。工欲善其事必先利其器,如果我们能真正掌握性能优化的核心原理,那么将会有很大收获。

知识分享官 320

元学习与Transformer的结合:Meta-Transformer架构解析

我们生活在一个信息爆炸的时代,每天都会产生海量的数据。在深度学习领域,如何让模型更高效地学习、更快地适应新的任务,一直是科学家们努力的方向。元学习和Transformer都是深度学习中的重要概念,它们各自有着独特的优势。本文的目的就是深入剖析将元学习和Transformer结合起来的Meta - Transformer架构,探讨它的原理、应用以及未来发展。我们会从基础概念讲起,逐步深入到架构的各个方面,让大家对Meta - Transformer有一个全面的了解。

AI智能探索者的博客 1052

PINN:当深度学习遇上朗伯-比尔定律

光谱数据处理中引入PINN的三种架构设计

qq_53529450的博客 154

Java性能优化可算是讲明白了,优化权威指南就是强

它能以不同的方式定义“optimal performance(最佳性能)”,但基本要素是:Java程序在业务响应时间要求内执行计算任务的能力,程序在高容量下执行业务功能的能力,并具有可靠性高和延迟低的特点。JVM优化、数据库优化、代码优化、设计优化等等,这次小编分享一份《Java性能优化权威指南》,内容涉及到了性能调优工具箱、JIT编辑器、垃圾收集算法、堆内存的最佳实践等等等等。web容器的基本性能、线程池、对象序列化、XML和JSON处理。缓冲式.I/O、类加载、Java原生接口、异常、字符串的性能。

m0_57042151的博客 523

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【JavaScript权威指南(第七版)】之阅读学习总结

写在前面 最近借着空闲时间断断续续两个月看完了《JavaScript权威指南(第七版)》,《JavaScript权威指南》一直以来被称为“犀牛书”,前面的第六版我大概略过一遍,由于书的厚度实在有点“厚重”,将近1000多页左右,有一些知识已经过时了,看了一下就没有细啃,随后转向新出版的第七版,第七版是是在2020年5月出版上市的,据了解,而第6版是2011年出版的,距今已经10年了,前端的技术更迭换代非常“迅速”,至少对于像我这种之前是学习后端知识的人来说,前端的技术更迭比后端的技术更新快的多,而且要求也

go 3404

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

这么一篇.Java性能权威指南.不需要好好的了解一下吗?

O'Reilly为软件开发人员带来革命性的“动物书”;创建第--个商业网站(GNN);组织了影响深远的开放源代码峰会,以至于开源软件运动以此命名:创立了Make杂志,从而成为DIY革命的主要先锋,公司一如既往地通过多种形式缔结信息与人的纽带。O'Reilly的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖,共同描绘出开创新产业的革命性思想。作为技术人士获取信息的选择,O'Reilly 现在还将...

lingqu+wx bjmsb06 291

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

终于有人把性能优化讲清楚了!京东架构师推荐的Java性能权威指南

总之,性能优化之路虽充满挑战,但只要我们持续探索、不断实践,就一定能在这条道路上越走越顺。相信通过对其中知识的吸收和运用,我们能够在工作中更加游刃有余,让程序的性能得到显著提升。未来,随着技术的不断发展,性能优化的重要性将愈发凸显。让我们紧跟时代步伐,不断更新知识,为打造更高效、更优质的程序而努力!

jcc4261的博客 363

终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南可太强了

Java给大部分人的感觉就是慢,有严重的性能问题。其实程序慢的问题,与语言无关,与Java无关。Java应用的性能优化也是一个老生常谈的话题,但是只要我们深入的了解性能调优方法,走遍天下都不怕! 大多数开发人员认为性能优化是个比较复杂的问题,需要大量的经验和知识。是的,这并不没有错。诚然,优化应用程序以获得最好的性能并不是一件容易的事情,但这并不意味着你在没有获得这些经验和知识之前就不能做任何事。 工欲善其事必先利其器,如果我们能真正掌握性能优化的核心原理,那么将会有很大收获。 市面上真正适合学习的性

一入Java深似海 214

终于有人把性能优化讲清楚了!京东架构师推荐的Java性能权威指南!

总之,性能优化之路虽充满挑战,但只要我们持续探索、不断实践,就一定能在这条道路上越走越顺。相信通过对其中知识的吸收和运用,我们能够在工作中更加游刃有余,让程序的性能得到显著提升。未来,随着技术的不断发展,性能优化的重要性将愈发凸显。让我们紧跟时代步伐,不断更新知识,为打造更高效、更优质的程序而努力!

jcc4261的博客 243

ApacheJmeter使用权威指南

JMeter 是一款强大的工具,但需结合业务场景合理设计测试计划。建议从简单场景入手,逐步掌握参数化、关联和分布式测试等高级功能。JMeter 是一款开源的性能测试工具,支持HTTP、FTP、JDBC、SOAP等协议,广泛用于负载测试、压力测试和功能测试。生成动态值(如订单ID)。

qq_41067796的博客 1772
上一篇: 读Java性能权威指南(第2版)笔记03_ Java SE API技巧中
下一篇: 读Java性能权威指南(第2版)笔记05_数据库性能JDBC
躺柒
博客等级 码龄4年 7004粉丝 1321原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值