Effective Java 读书笔记一创建和销毁对象考虑用静态工厂方法代替构造器构造器参数较多时考虑用 Builder 构建用私有构造器或枚举类型强化 Singleton 属性在私有构造器里抛异常来强化不可实例化的能力避免创建不必要的对象消除过期的引用避免使用终结方法 finalize参考文献 Effective Java 读书笔记(一):创建和销毁对象考虑用静态工厂方法代替构造器静态工厂方法
Java变量及时销毁是指在Java程序中,变量、对象及其占用的内存资源能够被及时释放,避免内存泄漏和过度占用内存的情况。随着应用程序的复杂性增加,及时销毁变量显得尤为重要,以确保资源的有效利用和程序的稳定性。本文将介绍如何解决Java变量及时销毁问题,包括版本对比、迁移指南、兼容性处理、实战案例、排错指南和性能优化。
### 版本对比
在Java的不同版本中,内存管理和垃圾回收机制的改进影响了
Dos命令行常用命令dir:列出当前目录下的文件以及文件夹md:创建目录rd:删除目录cd:进入目录cd/:退回到根目录cd..:退回到上一级目录del:删除文件(del *.txt删除txt一类文件)exit:退出dos命令行 其他非重点掌握:echo:创建文件(例:echo haha>1.txt创建名为1的txt文件,内容为haha)start:开启一个新的窗口(沿用上一个窗口的配置)
转载
2023-11-10 23:40:12
39阅读
# 学习Java中集合的销毁
在Java中,集合是用于存储多个对象的容器。随着程序的运行,可能会出现不再需要某些集合的情况。为了释放内存,我们需要将其销毁。本篇文章将指导你如何在Java中销毁集合,从流程步骤、代码实现到可视化图表,我们一一进行解释。
## 流程步骤
为了简单明了,下面是销毁集合的步骤示意表格:
| 步骤编号 | 步骤名称 | 说明
我们有几个特别容易混淆的关键字final、finally、finalize, 他们之间的区别是什么?final 是java关键字finally 是try-catch-finallyfinalize 是Object 根类的方法今天我们着重讲下 finalize方法1.finalize方法的原理及调用finalize方法也是Java中所有类中必有的方法,因为它是属于Object根类的方法,默认情况下,
转载
2023-09-27 10:27:21
73阅读
Map集合Map:一次添加一对元素。Collection一次添加一个元素。Map集合也称双列集合,Collection集合称为单列集合。其实Map集合中存储的就是键值对。map集合中必须保证键的唯一性。常用方法
1.添加 : value put(key , value):返回前一个和key关联的值,如果没有返回null2.删除:
void clear():清空map集合value
转载
2024-02-22 16:58:35
101阅读
导读:
第一,谈谈final, finally, finalize的区别。
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回
转载
2024-10-13 19:12:38
16阅读
1、java线程池最顶级的接口Executor 只有一个execute方法,这个方法时用来执行Runnable类型的command实例的2、Executor接口的子接口ExecutorService 可以看到里面提供的方法submit() :提交一个"任务",既可以是Runnable也可以是Callableshutdown() :优雅的关闭一个线
转载
2024-03-06 19:13:37
70阅读
Java——常用工具_集合集合简介List集合的特点和应用增强for循环和迭代器泛型简介Collections工具类Set集合的特点Map集合的特点和应用 集合简介集合,简称集,是用来存储多个元素的容器。集合和数组的区别:java的集合体系: 单列集合(Collection):List:ArrayList、Set:HashSet 双列集合(Map:key, value):Map:HashMapL
转载
2023-08-19 23:24:03
59阅读
# 如何在 Java 中正确地处理 List 集合的销毁
在 Java 编程中,正确地管理内存资源是非常重要的。作为一个刚入行的小白,你可能会问:“List 集合可以销毁吗?” 其实,在 Java 中,List 集合及其内容会随 Garbage Collector(GC,垃圾收集器)自动管理,你只需要确保不再使用这些对象,从而让 GC 可以回收它们。本文将为你详细介绍这一过程的步骤,代码示例,以
原创
2024-10-21 04:56:59
33阅读
背景:利用Vue+Cesium加载大场景模型时,初次加载能行,但是切换前端路由重新加载时发现不行,浏览器崩溃了!!! 编辑然后利用Chrome的 开发者工具性能面板跟踪JS堆【1】,发现JS堆不断上升,再切换前端路由(组件销毁)时也不见下降趋势!!!内存泄露了!!!变量未销毁!!!编辑 【1】chrome浏览器如何查看内存泄漏在Chrome浏览器中查看内存泄漏,主要
原创
2024-08-13 09:23:30
826阅读
背景:利用Vue+Cesium加载大场景模型时,初次加载能行,但是切换前端路由重新加载时发现不行,浏览器崩溃了!!! 编辑然后利用Chrome的 开发者工具性能面板跟踪JS堆【1】,发现JS堆不断上升,再切换前端路由(组件销毁)时也不见下降趋势!!!内存泄露了!!!变量未销毁!!!编辑 【1】chrome浏览器如何查看内存泄漏在Chrome浏览器中查看内存泄漏,主要
原创
精选
2024-08-13 09:23:30
809阅读
做东西,尝试新的技术固然很爽,但是基础也很重要,在这短短的几个月的时间里,我将把以前学过的一些知识,Java,数据结构,算法,网络,OS&Linux,J2EE等等知识查缺补漏,好好梳理一遍,不光是为了找工作,也是一种必须要坚持的态度。对于Java知识的整理,基于《Effetive Java》2nd和《Java编程思想》4th辅以JVM和设计模式的相关知识,结合书本上的知识和我的理解进行整理
转载
2023-09-11 13:42:11
160阅读
总括1.使用静态工厂方法代替构造方法 2.当构造函数有很多参数时考虑使用构建器 3.用私有构造器或枚举类型实现单例模式 4.在想让一个工具类不被实例化的时候使用私有构造函数 5.优先考虑使用依赖注入来引用资源 6.避免创建不必要的对象 7.消除不必要的对象引用 8.避免使用finalize和clear方法 9.try-with-resources优先于try-finally1.使用静态工厂方法代替
转载
2023-08-21 20:44:59
218阅读
最近在研究如何实现一个线程池。具体线程池的实现不是我想说的重点,而是关于线程的一些操作问题。先说一下我的每个工作线程都有一个自己对应的锁,而且锁只在线程自身使用。(这方便下面的理解)一、线程的异步取消的问题我的线程池对外提供两个函数,create_threadpool()和destroy_threadpool()用来创建和销毁线程池,创建的过程是初始化工作线程→初始化管理线程→….工作,销毁的过程
转载
2023-06-07 20:45:08
405阅读
目录索引优雅的停止线程后台守护线程volatile关键字 优雅的停止线程线程的启动使用的是Thread类的start()方法,而它还提供了 stop() 方法去停止线程、destroy() 方法去销毁线程、suspend() 方法去挂起线程暂停执行 以及 resume() 方法使挂起线程的恢复但现在都被废除了(因为这些方法可能导致死锁) 所以要想去停止线程可以通过flag去控制public cl
转载
2023-07-20 13:44:01
69阅读
静态工厂方法解释:类中定义共有的静态方法返回类的实例(可以是该类本身,也可以是别的类)。优势:静态工厂方法可以有名称静态工厂方法与构造器不同的优势,不必在每次调用它们的时候都创建一个新对象静态工厂方法可以返回原返回类型的任何子类型静态工厂方法所返回的对象的类,可以随着每次调用发生变化方法返回的对象所属的类,在编写包含该静态工厂方法的类时可以不存在 其中第2~5点有些啰嗦,牵强附会。构造器
转载
2024-08-28 11:22:04
19阅读
第一条:考虑用静态工厂方法代替构造器使用静态工厂方法的优势:静态工厂方法具有名称,具有适当名称的方法更易阅读。具有多个构造器的类用户往往不知道该用哪个,可考虑提供多个合适命名的静态工厂方法。相比于构造器,不必再每次调用时都创建一个新对象不可变类可以预先创建好实例,或者将构件好的实例缓存起来,从而避免重复创建对象。此方法类似于Flyweight模式。如果程序经常请求创建相同的对象,并且创建对象的代价
转载
2023-12-25 14:26:35
18阅读
第一条:考虑用静态工厂方法代替构造器 静态工厂方法与构造器不同的第一大优势是:它们有名称 静态工厂方法与构造器不同的第二大优势是:不必在每次调用它们的时候都创建新的对象 静态工厂方法与构造器不同的第三大优势是:它们可以返回原返回类型的任何子类型对象 API可以返回对象,同时有不会使对象的类变成共有的,这种技术适用与基于接口的框架(interface-based framework),接
转载
2024-05-28 16:31:23
23阅读
一 .考虑用静态工厂方法代替构造器 1. 静态工厂方法与设计模式中的工厂方法模式不同,注意不要混淆 例子: public static Boolean valueOf(boolean b){
return b ? Boolean.TRUE : Boolean.FALSE;
} 2.
转载
2023-08-04 11:44:38
49阅读