Effective Java 中文版第二版的读书心得(二)

《Effective Java》学习心得——优雅而安全地构建Java对象 读了《Effective Java》这本书,感触良多。它刷新了我对Java语言的认识,纠正了原来的许多编程坏习惯。感叹Java的世界原来是如此丰富,内功对于一名技术人员是多么重要!本文记录本书的第2条建议——用构建器(Builder)优雅、安全地构建对象。 阅读详情

 关于多个构造器参数时考虑构建器

一个类的构造器,有20个参数,甚至更多,我想这对程序员绝对是一个噩梦。而且我们很可能不使用里面的所有属性,许多熟

属性也有默认值。 里面提供了用Bean和构建器来解决的方法。

我个人一直使用Bean的方法,原因很简单,Spring会替我做。

至于构建器,这个东西我看了看,个人认为看上去很好,但实用性不是很高。
首先,那么多参数的构造器,本身就是设计失误,不是靠技术能解决的。
其次,里面提到的用Bean方式的可能出现数据状态不一致的情况,我同样认为是设计问题,我想不出在什么情况下会出现这个问题。

我的Bean肯定是一个本地变量,当然只有我自己用,简单的set也会有不一致状态的情况?那些要设置的参数,应该事先准备好

,如果不一致,应该去检查你获取数据的部分,而不是让Bean来负责。

后面提供的解决这个问题的build的方法,看上去确实不错,可惜我想我可能用不到了。

记着有这个东西,也许哪天真的需要了,别忘了有就行了。

《Effective Java 中文版》读书笔记 本书分为12章共90个条目,涵盖了Java 5.0/6.0/ 7.0/ 8.0/9.0的种种技术要点。与第2版相比,本书删除了“C语言结构的替代”一章,增加了Java 7及之后所引入的新特性: Lambda表达式、Stream、 Optional 类、接口中的默认方法、try-with-resources、@SafeVarargs注解、Module 模块化。数量上从78个条目发展到了90个,不仅增加了12个条目,并对原来的所有资料都进行了全面的修改,删去了一些已经过时的条目。但是,各章之间并没有严格的前后顺 阅读详情

相关推荐

OpenHarmony 5.1 RK3568 开发板烧录:从源码编译到镜像写入的 6 步实战

本文详细解析了OpenHarmony 5.1在RK3568开发板上的全链路开发流程,包括环境搭建、源码编译、镜像烧录等6个关键步骤。通过实战指南和避坑技巧,帮助开发者快速掌握OpenHarmony系统的烧录与定制能力,提升物联网设备开发效率。

weixin_33722405的博客 343

《Effective Java》中文第二版已读完,不得不赞一个!

说明:本人所有博客文章,以及《effective Java》都已经上传到 Wiz 为知 云笔记平台上了,有需要的朋友请前去寻找,具体地址: http://mywiz.cn/view/20130622180659226   今天终于将《effective java》第二版啃完了,感觉确实不错,值得一看。看的时候结合自己做过的项目想一下确实如些,里面有绝大多数都是很好的建议与总结,而且都是站在...

junJZ_2008的专栏 566

XR Interaction Toolkit实战:为HTC Vive Cosmos打造抓取、投掷与UI交互(Unity 2023教程)

本文详细介绍了如何使用Unity 2023和XR Interaction Toolkit为HTC Vive Cosmos开发抓取、投掷与UI交互系统。通过实战案例'VR投掷训练室',从基础配置到高级功能实现,涵盖物理抓取、精准投掷机制和VR UI交互设计,帮助开发者提升VR交互开发技能。

weixin_30562507的博客 256

Effective Java第二版 读后感

虽说是读后感,其实我并没有完全读完这本书,中间有些不懂的章节和最后的两章(并发和序列化)是没有看完的,以目前的实力来看,实在看的云里雾里,就决定先放着,看看编程思想后再回头看看。写这篇感想一是为了记录一些东西,方便以后的复习;二是为还没有读过这本书的人提供一个参考,但也仅仅是一个参考而不是一个标准哦。 总的感想 1.注意版本。 买书之前,没有确认版本,结果到的时候才发现第二版的书是09年印刷版,内...

积跬步 至千里 1025

用Java实现森林冰火人游戏

g.drawString("游戏结束", CELL_SIZE * COLS / 2 - 100, CELL_SIZE * ROWS / 2);g.drawString("难度级别: " + difficultyLevel, 10, CELL_SIZE * ROWS + 60);g.drawString("生命值: " + playerHealth, 10, CELL_SIZE * ROWS + 20);setTitle("森林冰火人");

2401_82778412的博客 1734

Unity 第一人称视角控制移动、旋转

第一人称视角操作此功能主要是借鉴YouTube,写的蛮好我就搬运过来让大家也试试。

qq_36515472的博客 4202

用枚举增强单例模式的可靠性 - Effective Java 中文版第二版的读书心得(三)

 我们常用的构造单例模式(Singleton)的方法,一般有2种1 提供一个静态的公共属性2 提供一个静态的公共方法这2个方法,都是采用了私有的构造器来防止外部直接构造实例。 但我们可以用反射的方法,获得多个实例。后面我会给出测试的代码。从1.5开始,枚举也可以用来获得单例,而且更加可靠。同时又自动提供了一些额外的功能。先看看测试代码:import java.l

老紫竹的专栏 9564

STM32F103VET6实战:用W25Q64外部Flash实现Bootloader+Application双备份(含完整代码解析)

本文详细介绍了基于STM32F103VET6微控制器和W25Q64外部Flash实现Bootloader+Application双备份固件升级的完整方案。通过精心设计的Flash分区策略、可靠的Bootloader程序以及包含双重校验和自动回滚机制的升级流程,有效解决了远程升级过程中断电导致设备变砖的风险,确保了工业嵌入式系统的高可靠性与稳定性。

linux的博客 823

Effective Java读书笔记完结啦

Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. Background 看了历史, 写第一篇笔记居然是2016年的事情了, 中间半途而废搁置了好长时间, 去年生病的时候捡起来看了一些, 今年终于看完了. 做这个笔记的目的主要是为了个人学习, 把一本...

weixin_30432579的博客 163

七、永磁同步电机矢量控制(FOC)—MTPA控制及Simulink仿真

前面几节的内容已经完成Id=0控制策略的理论和仿真以及双闭环PI参数整定。在接下来几节中,将陆续讲解MTPA、弱磁控制等内容。

weixin_45182459的博客 8197

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6392

Effective Java 中文版第二版的读书心得(一)

 虽然只看到了不到100页,但收获还是很多的。首选很感谢Joshua Bloch写的这本书,当然更感谢我们的司令翻译。至少目前我看到的100页的内容,基本没发现翻译很别扭的地方,包括错别字也没有发现,至少没有影响到我对书中内容的理解。再次感谢。在后面的读书心得里,我会根据我的个人理解,将书中的各个知识点逐个和大家分享。 书中的一些观点我也不是完全赞同的,呵呵(估计是我的水平不够,呵呵呵)。我们先看

老紫竹的专栏 3490

Codex入门00-初识神器(小白入门:到底什么是Codex CLI,和ChatGPT写代码有什么不同?)

OpenAI Codex CLI 是 OpenAI 于2025年推出的终端原生AI编程代理,不是在网页里聊天写代码,而是直接在你的终端里自主读代码、改文件、跑命令。它拥有三种安全模式、/goal 持久化任务、云端沙箱执行等独特能力。本文从零介绍 Codex CLI 的核心概念、与 ChatGPT 写代码的本质区别、典型使用场景和费用说明,让你全面认识这个改变开发方式的神器。

yueyeguzhuo的专栏 302

Effective Java读书笔记

Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. Background 看了历史, 写第一篇笔记居然是2016年的事情了, 中间半途而废搁置了好长时间, 去年生病的时候捡起来看了一些, 今年终于看完了. 做这个笔记的目的主要是为了个人学习, 把一本书...

weixin_34195546的博客 144

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

《Effective Java中文版》第二版 读书笔记

     《Effective java》第二版基于Jdk1.5,虽然现在最新的jdk是jdk10,但书中内容主要介绍的是Java的一些编程规范、java编程思想,所以依然值得大家去读,可供大家学习的地方还很多。以下是自己对这本书的一些总结,由于篇幅原因,只做简单介绍,让大家知道有这么一个概念。    正如书的引言所说,本书的目的是帮助读者最有效地使用Java程序设计语言及其基本类库:java.l...

言必信,行必果 1202

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

《Effective java》第二版阅读笔记

18.接口优于抽象类 接口和抽象类都是java中定义类型、扩展功能的机制。 两者主要区别在于接口中全部是抽象方法,抽象类中可以包含抽象方法,也可以包含非抽象方法。 而接口优于抽象类的原因是,类可以实现多个接口,但只能继承一个抽象类,抽象类的使用受限。 假使对一个类进行扩展功能,可在implements后新增接口实现,如Comparable引进到java中后,更新了许多现有类。同时接口也是mixin...

张晨雪的博客 664

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Effective java第二版读书笔记

下面对Effective java第二版中的技术点进行总结 技巧 优点 缺点及注意事项 用静态工厂方法代替构造器 有名称, 不必在每次调用时都创建一个新对象,可返回原返回类型的任何子类型对象,创建参数化实例时,代码更简洁 若类不含有公有或受保护的构造器,不能被子类化,它们与其他静态方法实际上没有任何区别 多个构造器参数时考虑用构造器 Builder模式,利用所有必要的参

smileiam的专栏 1923

Effective Java 读书笔记

Effective Java 读书笔记

SteveJrong's Blog 1165

《Effective Java》中文版第3版 读书笔记

人真的不必逼自己去做不像自己的那种人,强大固然是好,但脆弱和柔软也没有什么过错。一个人不用活得像一支队伍,一个人只要活得像一个人就行了,有尊严,有追求,有梦想,也有软弱和颓废的时候。 -- 知乎

山河已无恙 2685

《Effective Java中文版第二版》读书笔记

说明 这里是阅读《Effective Java中文版第二版》的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出。一些个人还不理解的会用斜线标注。 第一章是引言,所以跳过。 第二章 创建和销毁对象 第1条:考虑用静态工厂方法代替构造器 含义 静态工厂方法是指一个返回类的实例的静态方法,例如: public static ...

weixin_30437481的博客 165

《Effective Java》读书笔记

优先使用接口、泛型、静态工具类...

qq_43336396的博客 750

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

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

haibo_bear的博客 369

《Thinking In Java》 VS 《Effective Java》 VS 《深入理解Java虚拟机》

今天刚考完试,在5天以前的前4个月时间里,我很庆幸自己选了一个看书的学习途径。从上个学期的暑假到现学期的11周里面,读了《Thinking In Java》、《深入理解Java虚拟机》和《Effective Java》,感悟颇多。首先先说明一下,我以前是看视频学习的,就做过两三个学校的网站,都已经上线在使用。没做过什么特别高大上的东西,所以我是处在新手的角度去读书的,我也知道自己的理解很浅,不

小浩子的博客 2万+

【读书笔记】《Effective Java》第二章 第2条:遇到多个构造器参数时要考虑使用Builder

一、前言 《Effective Java》读书笔记系列 第二章 第1条:创建和销毁对象 二、介绍 我们开发中偶尔会遇到一些需要设置10个或以上大量参数的情况,通常情况有几种处理方式:多构造函数、setter、Builder模式。 1、多构造函数:这种方式虽然最方便,但也最繁琐,假设有一个方法需要设置6个int型的参数,但多数情况下,这6个中总有你不想传的参数,但这时候就需要约定一个规则:例如传0,但是传0又会有一个问题就是传入顺序问题,传入顺序不同并不会导致程序编译不通过,却会导致程序运行结果不正确。所

qq_38872414的博客 481

Effective Java 2nd 读书笔记(思维导图)

自己整理的 Effective Java 第二版的知识点,做成了思维导图,Xmind编辑的。

SparkYuan 2255
上一篇: 由于出差的时间计算失误,今天只好坐公车去上下班了
下一篇: 刚刚看到优快云做高端技术交流SNS的新闻
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值