Effective Java -- 使可变性最小化】的更多相关文章

为了使类成为不可变的,应该遵循以下五条原则: 1. 不要提供任何会下盖对象状态的方法 2. 保证类不会被扩展 3. 使所有的域都是final的 4. 使所有的域都成为私有的 5. 确保对于任何可变组件的互斥访问(如果类具有指向可变对象的域,不要暴漏该对象的引用,也不要使用客户端提供的引用直接初始化该域.可以使用保护性拷贝技术)…
不可变类,即实例不能被修改的类,实例中包含的所有信息在对象的生命周期内固定不变. 常见的比如String.基本类型的封装类.BigDecimal.BigInteger. 相对与可变类,不可变更易于设计.实现.使用,且更稳定(less prone to error)更安全. 比如,不可变类本质上就是线程安全的,不需要做同步处理,使用起来也非常方便. 设计不可变类,我们有5个原则 不提供任何可修改对象状态的方法.(这种方法也成为mutator,相应词汇"可变性(mutability)")…
摘要 在用户操作关闭窗口的时候,而不是真正的关闭,使其最小化到任务栏,或者托盘. 核心代码 关闭操作,使其最小化到任务栏. private void Form1_Load(object sender, EventArgs e) { this.FormClosing += Form1_FormClosing; } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason ==…
  windows vbs启动多个应用程序并使程序最小化(显示桌面) CreationTime--2018年7月26日11点18分 Author:Marydon 1.应用场景 每天开机后,都需要打开平常所需要的软件,又不想将程序设为开机启动,能不能开机后,同时启动多个程序呢? 2.代码实现 第一步:新建一个文本文件 桌面-->右键-->新建-->文本文档-->双击打开 第二步:编辑命令 语法: Dim shell Set shell = CreateObject("WSc…
本文参考 本篇文章参考自<Effective Java>第三版第十五条"Minimize the accessibility of classes and members" Access modifiers (private, package-private, protected and public) 访问修饰符 同类 同包 不同包子类 不同包非子类 private √       package-private(默认) √ √     protected √ √ √  …
本文主要分析 C.C++98.C++11.Java 与 Go,主要论述语言的关键能力.在论述的过程中会结合华为各语言编程专家和华为电信软件内部的骨干开发人员的交流,摒弃语言偏好或者语言教派之争,尽量以客观公正的角度来论述下各个语言的特点和不足,对语言选型作为一个客观的参考. 把这些写出来,期望得到大家的指正与反馈,让整个分析更客观,性能方面,着重对 Go 做深入剖析参考.内容很多,期望不会让你望而却步. 语言整体概要 1.Go 在并发方面, goroutine 和 channel 机制提供了语言…
Outlook很搓的一点就是只有按‘最小化’按钮的时候才会最小化到托盘,而按‘关闭’按钮Outlook直接被关闭退出.然后经常发现没邮件,结果是因为客户端关掉了. 下面通过插件方式实现关闭后最小化到托盘. 1. 从https://sourceforge.net/projects/keepoutlook/ 根据自己平台下载下载KeepOutlookRunning.dll插件 2. 管理员权限运行Outlook 3. 点击File-Options->Add-Ins 4. 点击 Go 按钮 点击 Ad…
尽可能地降低可访问性 接口和成员变量访问级别四种访问级别: 私有的(private) --- 只有在生命该成员的顶层类内部才可以访问 包级私有的(package-private) --- 缺省的"default"访问级别 声明该成员的包内部的任何类都可以访问这个成员 受保护的(protected) --- 该类的子类和包内部的任何类都可以访问该成员 共有的(public) --- 在任何地方都可以访问该成员 注: 1 . 方法覆盖超类的一个方法,访问的级别不允许低于超类中的访问级别 2…
对象的序列化(object serialization)API,它提供了一个框架,用来将对象编码成一个字节流,以及从字节流编码中重新构建对象. 一.谨慎地实现Serializable     要想使一个类的实例可被序列化,非常简单,只要它的声明中加入"implements Serializable"即可.正因为太容易了,所以普遍存在这样一种误解:程序员只需要做极少的工作就可以支持序列化了. 因为实现Serializable而付出的最大代价是,一旦一个类被发布,则”改变这个类的实现“的灵…
2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并发.JVM.分布式之类的.在今年面试的时候深受打击,到处都是问分布式.集群的?难道现在工作两三年的都这么牛逼了?都在搞分布式.集群之类的? 2016书单如下: 1.深入理解Java虚拟机:JVM高级特性与最佳实践---(已看,预计今年看三遍) 2.Oracle查询优化改写技巧与案例---(已看) 3…