《Effective Java》第8章 通用程序设计

售电业务实战指南:三种主流模式与盈利逻辑拆解 电力市场交易与售电业务是能源行业市场化改革的重要方向,其核心在于通过购售价差、偏差考核优化及增值服务实现盈利。售电公司需整合用户资源、匹配电源供给并管理偏差风险,其中负荷预测精度和交易策略直接决定利润空间。在工商业用户、工业园区等场景中,售电业务不仅涉及电力交易,还延伸至能效管理、需求响应等综合能源服务。随着电力现货市场推进,偏差考核与用户信用风险成为关键挑战,数字化能力正成为行业分水岭。本文从实操视角拆解独立售电、发电背景售电及电网参与三种模式的运作差异与避坑经验。 阅读详情

本章主要涉及Java语言的具体细节,讨论了局部变量的处理,控制结构,类库的用法,各种数据类型的用法,以及两种不是语言本身提供的机制(reflection和native method,虚拟机JVM提供支持的)的用法。

1.将局部变量的作用域最小化 【Item 45】
1) Java允许你在任何可以出现语句的地方声明变量
2) 要使局部变量的作用域最小化,最有力的方法就是在第一次使用它的地方声明
3) 几乎每个局部变量的声明都应该包含一个初始化表达式,还不能初始化时就尽量推迟声明到可以初始化的位置
4) 无论是传统的还是for-each形式的for循环,都允许声明循环变量,它们的作用域被限定在正好需要的范围之内,因此在循环终止之后不再需要循环变量的内容,for循环就优先于while循环,避免无意识错误的发生
2.for-each循环优先于传统的for循环 【Item 46】
1) java 1.5引入的for-each循环,通过完全隐藏迭代器或者索引变量,避免了混乱和出错的可能,这种模式适用于实现过Iterable接口的类,如数组和集合
2) 那么为了可以使用for-each循环,你在编写的类型表示一组元素时,即使你选择不让它实现Collection,也要让它实现Iterable接口
3) 想要在遍历的时候修改所遍历的数组或者集合无法使用for-each循环,这种情形有如下三种:
a. 过滤,遍历过程中需要删除相关元素,需要用显示的迭代器进行,以便可以调用remove方法
b. 转换,遍历过程中想要取代其部分或者全部元素,需要用迭代器或数组索引,以便设定元素的值
c. 平行迭代,需要并行遍历多个集合,需要显示的控制迭代器或者索引变量,以便所有迭代器或者索引变量都可以同步的前移
如上三种情形,可以用传统for循环进行处理。
3.了解和使用类库 【Item 47】
1) 通过使用标准类库的好处:
a. 可以充分利用这些编写标准类库的专家的知识,以及在你之前的其他人的使用经验
b. 不必浪费时间为那些与工作不太相关的问题提供特别的解决方案
c. 类库的性能往往会随着时间的推移而不断提高,无需你做任何努力
d. 可以使自己的代码融入主流,这样的代码更易读,更易维护,更易被大多数开发人员重用
2) 每个程序员都应该熟悉java.lang,java.util,某种程度上还有java.io中的内容
3) java.util的重点Collection Framework以及java.util.concurrent关于多线程相关部分
4) 不建议重新发明轮子,君子要善假于物也
4.如果需要精确的答案,请避免使用float和double 【Item 48】
1) float和double尤其不适合于货币运算,因为在JVM实现中只是针对float和double有一些value set,在处理这类数据时经常会进行约等于的操作
2) 而精确的计算应该用BigDecimal,int或long进行货币计算,如果数值范围没有超过9位十进制数字,就可以使用int;如果不超过18位数字,就可以使用long;如果数值可能超过18位数字,就必须使用BigDecimal
5.基本类型优先于装箱节本类型 【Item 49】
1) 基本类型和装箱类型之间三个区别:
a. 基本类型只有值,而装箱基本类型则具有与它们的值不同的同一性,也就是说两个装箱基本类型可以具有相同的值和不同的同一性
b.基本类型只有功能完备的值,而每个装箱基本类型除了它对应的基本类型的所有功能值之外,还有个分功能值:null
c. 基本类型通常比装箱节本类型更加节省时间和空间
2) 对于装箱基本类型使用==操作几乎总是错误的
3) 当在一项操作中混合使用基本类型和装箱基本类型时,装箱基本类型就会自动拆箱,如果null对象引用被自动拆箱,就会出现一个NullPointerException
4) 变量被反复的装箱和拆箱,导致明显的性能下降
5) 装箱基本类型的应用场景:
a. 作为集合中的元素,键和值,不能将基本类型放入集合中,因此必须使用装箱基本类型
b. 在参数化类型中,必须使用装箱基本类型作为类型参数,因为Java不允许使用基本类型
c. 进行反射的方法调用时,必须使用装箱基本类型
6) 自动装箱减少了使用装箱基本类型的繁琐性,但是并没有减少它的风险,当程序使用==操作符比较两个装箱基本类型时,它做了同一性比较,即对象引用的一致性,并不是单纯的值比较
6.如果其他类型更适合,则尽量避免使用字符串 【Item 50】
1) 一些不应该使用字符串的情形:
a. 字符串不适合代替其它的值类型,例如不应该用字符串来代替int,float或者boolean等
b. 字符串不适合代替枚举类型
c. 字符串不适合代替聚集类型
d. 字符串也不适合代替能力表
2) 如果可以使用更加合适的数据类型,或者可以编写更加适当的数据类型,就应该避免使用字符串来表示对象
7.当心字符串连接的性能 【Item 51】
1) 当连接n个字符串而重复地使用字符串连接操作符,需要n的平方级的时间,这是由于字符串不可变而导致的不幸结果,当两个字符串被连接在一起时,它们的内容都要被拷贝
2) 为了获得可以接受的性能,请使用StringBuilder代替String,Java1.5发行版本中增加了非同步的StringBuilder类,代替现在已经过时的StringBuffer类
3) 不要使用字符串连接操作符来合并多个字符串,除非性能无关紧要,应该使用StringBuilder的append方来合并或者使用字符数组,或者每次只处理一个字符串,而不是将它们组合起来
8.通过接口引用对象 【Item 52】
1) 如果有合适的接口类型存在,那么对于参数,返回值,变量和域来说,就都应该使用接口类型进行声明
2) 如果你养成了用接口作为类型的习惯,你的程序将会更加灵活
3) 不能用接口声明的情况:
a. 如果没有合适的接口存在,完全可以用类而不是接口来引用对象,典型的值类通常没有合适的接口可用,用值类本身作为参数,变量,域或者返回类型就可以了
b. 对象属于一个框架,而框架的节本类型是类,不是接口,如果对象属于这种基于类的框架,就应该使用相关的基类来引用这个对象,而不是它的实现类
c. 类实现了接口,但是它提供了接口中不存在的额外方法,如果程序依赖于这些额外方法,这种类就应该只被用来引用它的实例,这种类很少被用作参数类型
4) 总之建议引用对象的类型建议范围较广一些,这样增加程序的灵活性,比如使用接口,或者对象的基类
9.接口优先于反射机制 【Item 53】
1) 核心反射机制java.lang.reflect提供了“通过程序来访问关于已装载的类的信息”的能力
2) 反射机制的代价:
a. 丧失了编译时类型检查的好处
b. 执行反射访问所需要的代码非常笨拙和冗长
c. 性能损失
3) 反射功能只是在设计时被用到,通常,普通应用程序在运行时不应该以反射方式访问对象
4) 有一些复杂的应用程序需要使用反射机制,包括类浏览器,对象监视器,代码分析工具,解释型的内嵌式系统,RPC等
5) 如果只是以非常有限的形式使用反射机制,虽然也要付出少许代价,但是可以获取更多的好处,比如必须用到编译时无法获取到的类,但是在编译时存在适当的接口或者超类,通过它们可以引用这个类
6) 如果适当的构造器不带参数,甚至根本不需要使用java.lang.reflect包,Class.newInstance方法就已经提供了所需功能
7) 类对于在运行时可能不存在的其他类、方法、或者域的依赖性,用反射法进行管理,这种用法是合理的
8) 应该仅仅使用放射机制来实例化对象,而访问对象时则使用编译时已知的接口或者超类
10.谨慎地使用本地方法 【Item 54】
1) JNI(Java Native Interface)允许Java应用程序可以调用本地方法(native method),所谓本地方法是指的用本地程序设计语言(比如C/C++)来编写的特殊方法
2) 本地方法的三个用途:
a. 提供了“访问特定于平台的机制”的能力,比如访问注册表,和文件锁等
b. 提供了访问遗留代码库的能力,从而访问遗留数据
c. 本地方法可以通过本地语言,编写应用程序中主动性能的部分,以提高系统的性能
3) 本地方法的缺点:
a. 本地方法不是安全的,使用本地方法的应用程序不能再免受内存毁坏错误的影响
b. 本地语言是与平台相关的,使用本地方法的应用程序也不再是可以自由移植的
c. 使用本地方法的应用程序也更难调试,在进入和退出本地代码时,需要相关的固定开销,性能影响,难于阅读
4) 使用本地方法前务必三思
11. 谨慎地进行优化 【Item 55】
1) 不要去计较效率上的一些小小的得失,在97%的情况下,不成熟的优化才是一切问题的根源
2) 要努力编写好的程序而不是快的程序
3) 好的程序体现了信息隐藏的原则:只要有可能,它们就会把设计决策集中在单个模块中,因此,可以改变单个决策,而不会影响到系统的其他部分,避免牵一发而动全身
4) 必须在设计的时候就考虑到性能问题,努力避免那些限制性能的设计决策
5) 在一个系统设计完成之后,最难以更改的组件是那些指定了模块之间交互关系以及模块与外界交互关系的组件
6)要考虑API设计决策的性能后果:
a. 使公有的类型成为可变的,这可能会导致大量的不必要的保护性拷贝
b. 在适合使用复合模式的公有类中使用继承,会把这个类与其它的超类永远的束缚在一起,从而人为的限制了子类的性能
c. 在API中使用实现类型而不是接口,会把你束缚在一个具体的实现上,即使将来出现更快的实现你也无法使用
12. 遵守普遍接受的命名惯例 【Item 56】
1) 命名的惯例分为两大类:字面的和语法的
2) 用户创建的包的名称绝不能以java和javax开头,因为标准类库和一些可选的包的名称会以java和javax开头
3) 包名称其它部分包括一个或多个描述该包的组成部分,这些短语应该尽量简短,通常不超过8个字符,可以以单词首字母代替一个单词的形式进行缩短
4) 类和接口的名称,包括枚举和注解类型的名称,都应该包括一个或者多个单词,每个单词首字母大写,应该尽量避免缩写,除非是一些首字母缩写和一些通用的缩写
5) 常量是唯一推荐使用下划线的情形
6) 类型参数名称通常由单个字母组成,这个字母通常有一下五种情形:
a. T表示任意的类型
b. E表示集合的元素类型
c. K和V表示映射的键和值类型
d. X表示异常
7) 当然如果长期养成的习惯用法与上述规则不同,不必盲目遵从这些命名惯例

告别CMake依赖!在Visual Studio 2022中直接配置VTK 9.4开发环境(附完整项目示例) 本文详细介绍了如何在Visual Studio 2022中直接配置VTK 9.4开发环境,无需依赖CMake。通过图文教程和完整项目示例,帮助C++开发者快速集成VTK库,简化开发流程,提升工作效率。特别适合科学可视化任务的开发者。 阅读详情

相关推荐

智能座舱(七)——智能音频系统

本文剖析车载智能音频系统的核心技术,聚焦音响、功放、麦克风和广播收音机四大组件。音响系统通过多声道布局(如23扬声器阵列)结合动态声场校准算法,实现三维声场覆盖;功放系统采用高效D类技术,支持OTA音效调整和故障自愈;麦克风阵列运用波束成形技术实现精准拾音,并保障隐私安全;广播系统融合数字与网络技术提升音质。核心在于硬件标准化与算法差异化的协同,未来将朝集成化、AI个性化方向发展。

DC20160101的博客 1572

Effective Java 第二版 第8章 通用程序设计

上述代码的问题就在于suits调用了太多次的next,suits的next应该在外层循环调用。for-each循环就完美的避免了这种问题。值类很少会用多个实现编写,通常也是final的,并且很少有对应的接口。(2)如果对象属于基于类的框架(class-based framework),就应该使用相应的基类来引用这个对象。(1) 产生了太多的运行时错误,如果改为new的方式,那么这些运行时错误就变为了编译时的错误。通过使用标准类库,可以充分利用这些编写标准类库的专家的知识,以及在你之前的其他人的使用经验。

kaikai_sk的博客 403

从零开始:用7353张VOC/YOLO格式混凝土缺陷数据集训练你的第一个检测模型

本文详细介绍了如何使用7353张VOC/YOLO格式的混凝土缺陷数据集训练首个目标检测模型。从环境配置、数据解析到YOLOv5模型训练与优化,提供了完整的实战指南,特别针对数据不平衡问题给出了解决方案,助力开发者快速掌握混凝土缺陷识别技术。

weixin_42651281的博客 255

《Effective Java 2nd》第8章 通用程序设计

目录 第45条 将局部变量的作用域最小化 第46条 for-each循环优先于传统的for循环 第47条 了解和使用类库 第48条 如果需要精确的答案,避免使用float和double 第49条 基本类型优先于装箱基本类型 第50条 如果其他类型更适合,尽量避免使用字符串 第51条 当心字符串连接的性能 第52条 通过接口引用对象 第53条 接口优先于反射机制 第5...

weixin_33805557的博客 113

Bartender 2021破解版安装教程:手把手教你从下载到激活(附详细步骤图)

本文详细介绍了BarTender 2021专业版的安装与高效应用指南,从基础配置到高级条码设计,帮助用户快速掌握标签设计与打印技术。内容涵盖安装步骤、标签模板创建、数据连接与批量打印技巧,以及高级功能如安全策略与自动化集成,适合零售、物流、制造等行业用户提升工作效率。

p4q5r6s7t的博客 2611

【局部规划模块曲线算法】曲线平滑介绍

本文先对轨迹平滑问题做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容(1)适合给移动机器人运动的路径【满足运动学,高阶平滑】(2)高阶的运动学不能够突变的【至少三阶的加速度不能突变,最好四阶的jerk和五阶的snap也不能突变】(3)在转弯的地方不会停下来(4)加减速均衡,节省能量(5)节省时间的。

qq_35635374的博客 5714

Effective Java 2 读书笔记 第8章 通用程序设计

第45条:将局部变量的作用域最小化 要使局部变量的作用域最小化,最有力的方法就是在第一次使用它的地方声明 几乎每个局部变量的声明都应该保护一个初始化表达式 例外,try-catch,因为初始化会被抛异常,那么在try外声明,在内部初始化 使方法小而集中,使得一个操作相关的变量不会被另一个操作的代码操作 第46条:for-each循环优先于传统的for循环 迭代器和索引变量...

econsh的专栏 187

全志V3S嵌入式驱动开发(uboot移植)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 安装了ubuntu操作系统,有了开发板,下面就可以进行我们的开发工作了。第一步,我们要面临的问题就是uboot移植。一般来说,嵌入式的基础环境就是uboot、linux和rootfs。uboot完成一些基本硬件的初始化,比如cpu频率设置、ddr初始化、加载linux等等。早前,uboot的烧入比较麻烦,需要jtag工具才能完成。现在来说,很多soc支持系统直接从sd卡启动,这对开发

嵌入式-老费,一个分享专业嵌入式知识的blog 2817

[读书笔记]《Effective Java》第8章通用程序设计

第45条:将局部变量的作用域最小化 最有力的方法是在第一次使用局部变量的地方声明它。如果过早的声明局部变量,当要使用时,代码阅读者可能已经忘记了变量的类型和初始值。过早的声明变量,也会扩展它的作用域。 几乎每个局部变量的声明都应当包含一个初始化表达式。如果声明的时候不能进行有意义的初始化,就应该推迟这个声明。对此的一个例外是try-catch的语句,如果一个变量在初始化时会抛出异常,应该在...

weixin_34153893的博客 180

30天Python入门(第一天:Python入门)

30天带你入门Python,这是第一天

Science prince的博客 582

SAP:QUERY中SQ02增加选择屏幕权限控制

【代码】SAP:QUERY中SQ02增加选择屏幕权限控制。

weixin_43734184的博客 2325

effective java 读书笔记---第8章 通用程序设计

45.将局部变量的作用域最小化

玩家六的专栏 378

【C#程序员入门AI】向量数据库入门:C#集成Chroma/Pinecone,实现AI知识库检索(RAG基础)

向量存语义,检索补知识!向量数据库:解决AI知识库存储和语义检索问题,让AI有据可查C#集成:Chroma轻量本地练手,Pinecone企业云端落地,一套逻辑无缝切换RAG闭环:检索+大模型,让AI回答精准不瞎编,是AI落地的必经之路咱C#程序员有.NET生态加持,集成向量数据库比Python更简洁、更稳定,不管是个人做智能助手,还是企业做知识库,这套技术栈都能直接落地,2026年必学技能!

人工智能AI技术 1000

Effective Java读书笔记(第8章-通用程序设计)

第8章  通用

lyl_tkb的专栏 595

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

NTscan扫描工具

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

Effective Java——通用程序设计(下)

目录 五十一、当心字符串连接的性能 五十二、通过接口引用对象 五十三、接口优先于反射机制 五十四、谨慎地使用本地方法 五十五、谨慎地进行优化 五十六、遵守普遍接受的命名惯例 五十一、当心字符串连接的性能         字符串连接操作(+)是把多个字符串合并为一个字符串的最为便利的途径。因此如果仅仅是对两个较小字符串进行一次连接并输出连接结果,这样是比较合适的。然而如果

痕泽的专栏 673

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

带你快速看完9.8分神作《Effective Java》—— 通用编程篇

???? Java学习:Java从入门到精通总结 ???? Spring系列推荐:Spring源码解析 ???? 最近更新:2021年12月16日 ???? 个人简介:通信工程本硕????、朝着优质博主努力????。我写的很慢,但敢保证每一篇都是用心写的,绝对不无聊,欢迎关注我共饮一杯鸡汤~ ???? 点赞 ???? 收藏 ⭐留言 ???? 都是我最大的动力! 豆瓣评分9.8的图书《Effective Java》,是当今世界顶尖高手Josh Bloch的著作,在我之前的文章里我也提到过,编程就像练

如切如磋,如琢如磨 4048

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

快速带你看完《Effective Java》—— 对象通用方法篇

文章目录10 覆盖equals时要遵守通用约定11 覆盖equals时总要覆盖hashCode12 始终要覆盖toString13 谨慎地覆盖clone14 考虑实现Comparable接口 豆瓣评分9.8的图书《Effective Java》,是当今世界顶尖高手Josh Bloch的著作,在我之前的文章里我也提到过,编程就像练武,既需要外在的武功招式(编程语言、工具、中间件等等),也需要修炼心法(设计模式、源码等等)学霸、学神OR开挂 我个人在Java领域也已经学习了近5年,在修炼“内功”的方面也通过各

如切如磋,如琢如磨 1224

《Effective Python》第1章 Pythonic 思维详解——版本及基础风格

《Effective Python》第1章探讨了Pythonic思维的核心原则,特别是如何编写简洁、优雅且符合Python社区惯例的代码。本章的两个关键条目包括:Item 1:了解你使用的Python版本,强调了Python版本差异对代码兼容性和功能的影响,建议使用pyenv和虚拟环境管理版本;Item 2:遵循PEP 8风格指南,详细介绍了PEP 8的规范,如缩进、命名、导入和注释等,以提升代码的可读性和一致性。通过遵循这些最佳实践,开发者可以编写出更Pythonic的代码,提升代码质量和团队协作效率。

企业级后端与 AI 应用开发双线探索 1374

Effective Java 第三版 中文翻译

effective-java-third-edition 介绍 Effective Java 第三版全文翻译,纯属个人业余翻译,不合理的地方,望指正,感激不尽! 目录 推荐序 前言 致谢 第一章 引言 第二章 创建和销毁对象   本章涉及创建和销毁对象,包括何时以及如何创建它们,何时以及如何避免创建它们,如何确保它们被及时销毁,以及如何管理在销毁之前必须进行的清理操作。 第1项:考虑静态工...

Coloured_Glaze的博客 3861

effectivejava笔记 第8章方法,第9章通用编程

第8章 本章主要讨论方法设计的几个方面:如何处理参数和返回值,如何设计方法签名,如何为方法编写文档。 第49条、检查参数的有效性 对于方法中传入的参数,应该对其有效性进行检查,如果成功则继续执行方法剩余部分,如果失败则应该抛出异常或者返回一个标志性结果。不过有效性检查并不是越多越好,因为在设计方法时,应该使他们尽可能通用,并符合实际的需求,假如方法对于它能接受的任何参数值都能很好的工作,那么参数的限制应该越少越好。 第50条、必要时进行保护性拷贝 如果没有对象的帮助,另一个类不可能修改对象的内部状态,但对象

zlwnew的博客 333

Effective java 总结8-通用编程

java允许在任何可以出现表达式的地方声明变量在第一次使用它的地方进行声明每一个局部变量都应该包含一个初始化表达式在循环种植后不再需要循环变量的内容,for优先于while,在for循环中定义变量,作用域即被限定在循环中,避免“剪切-粘贴”错误使方法小而集中。...

ym & blog 282

Effective Java

作者 Joshua Bloch 翻译 杨春花 Java之父 James Gosling 建议大家还是去看原书,最好是英文版。 序言: 举例:学编程语言就像学习自然语言语言(比如英语) 词汇 如何描述事物 语法 语言的结构如何 用法 表达日常的事物 程序设计语言也是如此,你需要理解语言的核心:它是面向算法的,还是面向函数的,或者是面向对象的? 你需要知道词汇表:标准类库提供了哪些数据结构、操作和功能? 熟悉如何用习惯和高效的方式来构建代码。 这本书是关于Java习惯和高效的用

CodeDoraemon的博客 1614

《Effective Java》第3章 对于所有对象都通用的方法

Object类默认为所有类的基类,其虽然为一个具体的类,但是它的设计主要是为了扩展,而它的所有非final的方法(equals, hashCode, toString, clone和finalize)都有明确的通用约定, 如果在自定义类时要重写这些方法,需要注意主动遵守这些约定,不然一些依赖于这些约定的类(如HashMap和HashSet)将无法正确工作。 通用概念 1.值类:表示值的

AnnaLoad的专栏 612

【effective java读书笔记】通用程序设计(二)

前言 以前曾经做ERP时,总是遇到尾差尾数的问题。比如:库存一箱苹果10元钱,假如一共3个苹果。拿走两个还剩多少钱。好了,言归正传,回到今天的读书笔记,精度问题。 第47条了解和使用类库 第48条如果需要精确的答案避免使用double和float 第49条基本类型优先于装箱基本类型

haibo_bear的博客 368

effective java--通用程序设计

在effective java中,有一章是讨论Java语言的具体细节,局部变量处理、控制结构、类库的用法、各种数据类型的用法、反射机制、本地方法、优化和命名惯例。 这里简单的描述归纳一下: 1、局部变量的作用域最小化    可以减低出错率,,增强代码可读性和维护性    方法就是在第一次使用它的地方声明(初始化的时候才申明),但是try-catch有可能特殊点,有时候需要到try里面初始化,但

qq_24497061的博客 305
上一篇: 《Effective Java》第7章 方法
下一篇: 《Effective Java》第9章 异常
AnnaLoad
博客等级 码龄17年 7粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值