创建和销毁对象
何时以及如何创建对象?
何时以及如何避免创建对象?
如何确保它们能够适时地销毁?
如何管理对象销毁之前必须进行的各种清理动作?
第1条:考虑用静态工厂方法代替构造器
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
100+累计阅读
170平均单平台
已同步平台
优快云
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄12年
何时以及如何创建对象?
何时以及如何避免创建对象?
如何确保它们能够适时地销毁?
如何管理对象销毁之前必须进行的各种清理动作?
第1条:考虑用静态工厂方法代替构造器
当前文章被以下社区和专栏收录:
异步fifo的UVM验证(最终最终版)
更新了refmdl以及scb
《Effective Java》读书笔记(已更新至24条)
《Effective Java》读书笔记目录,这篇文章记录了我读这本书的一些想法和验证,带水印刘屠户的java养猪场是我的公众号,考虑后面的源码解析同步到公众号中。 1. 考虑用静态工厂方法代替构造器 第一条,考虑用静态工厂方法代替构造器 优点一:静态工厂可以很好的理解名称 四个构造方法,面对这样的构造方法,三个、四个是可以接受的,那如果是七个八个甚至是十几个呢?这个时候有一个好的...
手把手教你使用Segformer训练自己的数据
SegFormer 基于Swin transformer 修改
Effective Java--读书笔记(一)【持续更新中】
前言 由于很多人的安利,我发现《Effective Java》这本书可谓是神书,这上面有不少对于传统编码方式的特殊简介以及改进方式。所以本人决定在阅读的过程中,将书中的知识点以及扩展写在这个系列中。帮助想一起学习深入研究Java的小伙伴们来初步了解此书,本系列主要是对知识点的阐述,以及部分代码实现。适合于底层的初级挖掘和养成优秀的代码习惯。 本人可以算是刚步入java开发的大门,是用业余时间来写分享这本书。如果在本系列中发现有什么不对的,或者更深层的理解。特别欢迎大家来指正,本人会很开心滴~~。因为群策群.
电力工程师必看:GOOSE/SV/MMS三协议在智能变电站中的分工与联动实例
本文深入解析了智能变电站中GOOSE、SV、MMS三大核心通信协议的分工与协同机制。GOOSE协议作为过程层的“闪电信使”,负责毫秒级传输跳闸命令等事件信息;SV协议则传输精确同步的电流电压采样值流;而MMS协议作为站控层的“管理语言”,实现设备监控与数据管理。三者基于IEC 61850标准,在过程层、间隔层和站控层之间高效联动,共同构建了智能变电站稳定可靠的通信骨架。
车企自动泊车技术全解|纯视觉/多传感器融合双路线、端到端大模型革新 助力机械车位/无划线车位/极窄车位精准泊车落地
随着智能驾驶技术全面下沉,自动泊车已从高端车型专属配置,普及至十万级家用车型,成为车载核心刚需功能。但市面主流车企的泊车能力差距极大,核心差异源于传感器硬件架构、算法迭代逻辑、场景训练体系的全方位分化。传统规则式泊车算法仅适配标准划线车位,面对地库暗光、标线磨损、机械双层车位、极窄靠墙车位、无划线空地泊车等真实长尾场景极易失效。
《Effective Java》 读书笔记(持续更新)
2.1 用静态工厂方法代替构造器 静态工厂方法: 不通过 new (如:Date date = new Date();) 而是用一个静态方法来对外提供自身实例的方法叫做静态工厂方法(Static factory method)(如:Integer number = Integer.valueOf("3");)[new 的作用是 在用 new 构造一个新的类实例时 是告诉 JVM JV...
后仿真中《SDF反标必懂连载篇》之 探究 SDF延迟精度 与 timescale 精度问题
本篇文章,同样属于后仿真中的SDF反标系列文章内容之一。今天,将前仿真中的timescale 和 后仿真中 timescale+sdf 延迟数据,进行贯通讲解。不要忽视这部分内容,因为后仿真的成功准确与否,时间精度问题,很重要。为什么?接下来一一讲解。
Effective Java 读书笔记(第2章 创建和销毁对象)——持续更新中
第一条: 考虑用 “静态工厂方法” 代替 “构造器” 此处的 “静态工厂方法” 不直接对应设计模式中的工厂方法。 “静态工厂方法” 相对于 “构造器”有以下4点优势: 第一大优势:有名称。 名字可用于描述被返回的对象,易于阅读和字面理解。类似 bigApple()、smallApple()可以很形象表述要返回对象的特征。 第二大优势:不必每次调用都创建一个新对象。 比如 “单例模...
5、快速入门
点击启动实例按钮,并设计一个business key,每个实例会有一个business key, 业务主键,也相当于一个流程实例唯一key,一般会与一次业务强相关,比如一个订单号 ,此处取为shopping_1;付款程序完成后会流转到物流发货任务,此时java工程的相应订阅会收到任务,并进入断点,且读到到toWhere变量。单击shopping可以进入实时流程图的执行图,此时流程流转到第一个任务,需要业务系统完成此任务,并通知引擎。添加类,分别订阅流程中的加入购物车任务和物流发货任务。
【docker】--- 详解 WSL2 中的 Ubuntu 和 Docker Desktop 的区别和关系!
在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。
《Effective Java》读书笔记八
将局部变量的作用域最小化是一种良好的编程实践,可以提高代码的可读性、可维护性和降低错误风险。通过尽早声明并初始化变量、避免不必要的扩大作用域、使用块级作用域和提取方法等方式,可以有效地实现局部变量作用域的最小化。同时,需要注意不要过度缩小作用域,以及在性能敏感的情况下进行适当的权衡。
AI应用质量工程实践:从评估到监控的完整体系构建
在软件工程领域,质量保障体系是确保产品稳定可靠的核心机制,涉及度量指标、保障流程和工具链的完整闭环。随着生成式AI应用的快速发展,如何将传统软件工程中的质量门禁思想引入AI领域,成为工程实践的关键挑战。其核心原理在于构建可量化、可监控、可改进的质量评估框架,通过自动化测试、持续监控和反馈优化来管理AI输出的不确定性。这一技术价值在于将AI应用从原型阶段推向产品化,确保输出的一致性、安全性和可靠性。在实际应用场景中,开发者需要从功能性、非功能性、一致性和合规性四个维度构建评估体系,并借助LLM-as-a-Ju
Effective Java 读书笔记(一)
前言: 开个新的坑位,《effective java》的读书笔记,之后有时间会陆陆续续的更新,读这本书真的感触满多,item01和item02就已经在公司的项目代码中看到过了。今天这篇主要记录了item01和item02一些理解。有错误的地方欢迎大佬们指出指出 Item01:Consider static factory instead of constructors 考虑用静态工厂方法代替构造器 优点: 1、静态工厂方法与构造器不一样的地方是:有方法名 2、不必在每次调用他们的时候都创建一个新的对象,可以
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
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...
Effective Java读书笔记-15
要阻止一个线程妨碍另一个线程,建议的做法是让第一个线程轮询(poll)一个boolean域,这个域一开始为false,但是可以通过第二个线程设置为true,以表示第一个线程将终止自己。许多程序员把同步的概念仅仅理解为一种互斥(mutual exclusion)的方式,即当一个对象被一个线程修改的时候,可以阻止另一个线程观察到对象内部不一致的状态。因此,不需要任何同步来保护它的约束条件。虽然语言规范保证了线程在读取原子数据的时候,不会看到任意的数值,但是它并不保证一个线程写人的值对于另一个线程将是可见的。
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
《Effective Java》读书笔记
来自:优快云(作者:iCoding91)原文链接:https://blog.youkuaiyun.com/caoxiaohong1005/article/details/79521960 ...
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
《Effective Java》读书笔记二
一、equals 方法的重要性二、通用约定的内容三、实现 equals 方法的步骤四、注意事项五、好处一、equals 和 hashCode 的关系二、不覆盖 hashCode 的问题三、覆盖 hashCode 的方法四、注意事项五、好处一、toString 方法的重要性二、默认 toString 方法的不足三、覆盖 toString 方法的原则四、实现 toString 方法的建议五、好处一、clone 方法的复杂性二、覆盖 clone 的风险三、谨慎覆盖的原则四、好处与注意事项一、Comparable
【Effective Java】第4章 读书笔记
第4章 类和接口 15,使类和成员可访问性最小化 尽可能地使每个类或者成员不能被外界访问。 公有类的实例域绝不能是公有的。 包含公有可变域的类通常并不是线程安全的。 让类具有公有的静态 final 数组域,或者这种域的访问方法是错误的。 16,要在公有类中使用访问方法而非公有域 公有类永远都不要暴露可变的的域 17,使可变性最小化 不可变类是指实例不可以被修改的类 17.1 不可变类要遵循的五条原则: 不要提供任何可以修改对象状态的方法。 保证类不会被扩展。 声明所有的域都是 final 的。 声明所有的
Effective Java读书笔记-7
当类实现接口时,接口就充当可以引用这个类的实例的类型(type)。因此,类实现了接口,就表明客户端可以对这个类的实例实施某些动作。为了任何其他目的而定义接口是不恰当的。有一种接口被称为常量接口(constant interface),它不满足上面的条件。这种接口不包含任何方法,它只包含静态的final域,每个域都导出一个常量。使用这些常量的类实现这个接口,以避免用类名来修饰常量名。常量接口模式是对接口的不良使用。类在内部使用某些常量,这纯粹是实现细节。
《Thinking in Java》读书笔记(不断更新中)
概述春节在家乡,家里的电脑都是我上大学时淘汰的,要么运行不起来AS,要么连接不上手机,要么编译不了程序,这Android是写不了了。 记得前几天写插件的时候,用过Intellij IDEA,感觉很流畅,心说在我的小霸王电脑上试一试。于是我就下载了一个Intellij IDEA,运行Hello World畅快无比,OK,那么这几天有空就复习一下Java基础知识吧,温故而知新。 手头正好有一个本《T
Effective Java读书笔记1
一. 考虑用静态工厂方法代替构造方法 1. 什么是静态工厂方法 注意与设计模式中的工厂模式是不同的,它是用通过专门定义一个类来负责创建其他类的实例,其实例通常拥有共同的父类,其实现主要是靠Java的反射机制。 2. 静态工厂方法的优点 1.有名称 对于一个对象的实例化来说,如果使用构造方法的话,可以使用构造函数的重载来实现不同情况下的实例化,但是由于构造函数的名称都是类...
Effective Java读书笔记-6
Effective Java读书笔记-6使可变性最小化复合优先于继承要么设计继承并提供文档说明,要么禁止继承 使可变性最小化 不可变类是指其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候就提供,并在对象的整个生命周期(lifetime)内固定不变。不可变的类比可变类更加易于设计、实现和使用。它们不容易出错,且更加安全。为了使类成为不可变,要遵循下面五条规则: 1.不要提供任何会修改对象状态的方法(也称为设值方法)。 2.保证类不会被扩展。 为了防止子类化,一般做法是声明这个类成为fin
【 Effective java】第7章 读书笔记
第7章 Lambda 和 Stream 42,Lambda 优先于匿名类 函数类型: 函数对象: 匿名类: 函数接口: 可以删除所有 Lambda 参数类型(编译器会根据上下文推断),除非它们会使程序变得更加清晰。 Lambda 没有名称和文档,如果一个计算本身不是自描述的,或者超出了几行,那就不要把它放在一个 Lambda 中。 Lambda 与匿名类共享你无法可靠的通过实现来序列化和反序列化的属性,因此,尽可能不要去序列化一个Lambda(或者匿名类实例)。 千万你要给函数对象使用匿名类,除非创建非函数
Effective Java通俗理解(上)
这篇博客是Java经典书籍《Effective Java(第二版)》的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约会持续1个月左右。 第1条:考虑用静态工厂方法代替构造器 通常情况下我们会利用类的构造器对其进行实例化,这似乎毫无疑问。但“静态工厂方法”也需要引起我们的高度注意。 什么是“静态工厂方法”?这不同...
【Effective Java 读书笔记】第78条 同步访问共享的可变数据
书上的一个例子: public class StopThread { private static boolean stopRequested; public static void main(String[] args) throws InterruptedException{ Thread backgroundThread = new Thread(new Runnable(){ @Override
Effective Java 读书笔记
1.考虑用静态工厂方法代替构造器 静态工厂方法与构造器不同的第三大优势在于,他们可以返回原返回类型的任何子类型2.遇到多个构造器参数时要考虑用构建器 3.用私有构造器或者枚举类型强化Singleton属性 单元素的枚举类型已经成为实现Singleton的最佳方法4.通过私有构造器强化不可实例化的能力 5.避免创建不必要的对象 6.消除过期的对象引用(这里可以给个例子) 7.避免使用终结方法final
2986
294
397
169
711
1330
226
126

被折叠的 条评论
为什么被折叠?



