真实案例对“引用类型”的思考,你学会了吗?

开发 前端
在 Java 编程语言中,引用是用来访问和操作对象的一种机制。强引用、软引用、弱引用和虚引用是 Java 中的四种引用类型。

在一个风和日丽的早上,我刚坐到工位上,正准备美美的享受早餐时,我的测试小兄弟杨过火急火燎的来找我说:“小米,不好了,运营童鞋反馈,咱们商城小程序金刚区的新店专区,新开的店铺无法在上面展示,运营童鞋那边很着急,能不能先看看”。我想了下现有项目组的人力,然后就叫技术大牛“薇姐”看下。

方案一:刷新ElasticSearch

薇姐首先确定数据表中是否存在该店铺,发现数据库没问题,然后就按照新店专区的接口查看了下数据源是 es,怀疑有可能是 es 没有同步上来,到管理后台点击初始化店铺的 es,结果本来新店专区还有店铺数据,直接就变成空白了,一条数据也没有,扑街~

方案二:数据落库

薇姐这次仔细的分析代码,发现前人开发的时候,判断新店的字段只存到 es 中,没有把该标识存入到店铺表中,所以才会出现刷新 es 的时候,新店专区数据被清空了(前人埋得坑啊)~

找到问题就好说了,把这个字段落库,然后给历史数据新店标识设置个默认值,搞定~

这也给我提了个醒,以后组员在开发功能的时候,一定要先仔细听听他是怎么设计的,避免挖坑,论代码 Review 的重要性!

Java 中的四种引用类型

在讨论这个案例的时候,我突然想到这不正是面试题中讲的“四种引用类型”中的一种吗?

在 Java 编程语言中,引用是用来访问和操作对象的一种机制。强引用、软引用、弱引用和虚引用是 Java 中的四种引用类型。

  • 强引用(Strong Reference):当一个对象被强引用关联时,垃圾回收器无法回收这个对象。只有当该对象的所有强引用都被释放时,该对象才能被垃圾回收器回收。
  • 软引用(Soft Reference):当一个对象被软引用关联时,它不会被立即回收,只有当 JVM 认为内存不足时才会回收该对象。因此,软引用通常用于实现高速缓存。
  • 弱引用(Weak Reference):当一个对象被弱引用关联时,它的生命周期更短,只要没有被强引用关联,垃圾回收器就会尽快回收它。
  • 虚引用(Phantom Reference):虚引用是最弱的一种引用类型,如果一个对象只被虚引用关联,那么它就像不存在一样,任何时候都可能被垃圾回收器回收。虚引用主要用于跟踪对象被垃圾回收器回收的状态。
责任编辑:武晓燕 来源: 今日头条
相关推荐

2023-12-08 13:23:00

大数据MySQL存储

2024-03-18 08:06:59

JavaGo开发

2024-02-02 11:03:11

React数据Ref

2023-08-01 12:51:18

WebGPT机器学习模型

2024-01-02 12:05:26

Java并发编程

2022-07-08 09:27:48

CSSIFC模型

2024-01-19 08:25:38

死锁Java通信

2024-02-04 00:00:00

Effect数据组件

2023-07-26 13:11:21

ChatGPT平台工具

2023-01-10 08:43:15

定义DDD架构

2024-10-25 08:11:37

2024-05-29 07:47:30

SpringJava@Resource

2022-12-06 08:37:43

2023-05-05 06:54:07

MySQL数据查询

2022-06-16 07:50:35

数据结构链表

2023-08-26 21:34:28

Spring源码自定义

2024-03-06 08:28:16

设计模式Java

2023-10-06 14:49:21

SentinelHystrixtimeout

2023-06-26 13:08:52

GraphQL服务数据

2022-12-06 07:53:33

MySQL索引B+树
点赞
收藏

51CTO技术栈公众号