自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 文件与 IO

对于陌生的东西,最好通过类比的方法去了解。。通过生活中常见的现象进行类比,比如:流中全部是水,我们称为“水流”,流中全是电子,我们称为“电流”。那我们可以根据流中的数据类型,来给流命名。再回到计算中,流中是字节的我们叫“字节流”,是字符的叫“字符流”,等等。对于笔者来说,在Java开发中需要用到获取文件信息,经常需要用到流。那个时候不理解流,只知道抄着代码,这里改改那里修修。以至于,每当需要操作文件的时候不知道如何开始下手,对于整个流程不清楚。

2024-02-24 08:37:49 1299

原创 Java 中的 GC

其实关于 finalize() 方法,很多人也不了解,只需要知道它会于 GC 过程产生联系即可。在 《Effective Java》第三版。

2024-02-23 08:50:51 1655

原创 浅析HashMap:原理、实现与性能优化

当使用自定义对象作为HashMap的键时,需要重写对象的hashCode和equals方法。hashCode方法应该根据对象的属性计算出一个哈希值,而equals方法则用于判断两个对象是否相等。合理的实现这两个方法可以提高HashMap的性能和准确性。HashMap是Java中非常常用的数据结构之一,通过理解其工作原理和实现细节,我们可以更好地使用和优化它。

2024-02-23 08:44:36 529

原创 Java 线程模型

由于操作系统也拥有线程优先级,且和 Java 提供的线程优先级并非一一对应,尽管在 Java 中使用不同的优先级,但在操作系统中看来还是同一优先级。它的实现简单,切换操作对与线程是可知的。这种直接把线程映射到操作系统的操作,使得线程的管理全权交给操作系统,所以何时冻结或唤醒线程、该给线程分配多少处理器执行时间、该把线程安排给哪个处理器核心去执行等,都取决于操作系统。正如上面提到的那样,Java 线程的管理权都交给了操作系统,Java 中的线程调度实际上就是操作系统中的线程调度。:线程执行时间由系统分配。

2024-02-23 08:38:08 687

转载 设计模式之策略模式

定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。一个系统有许多许多类,而区分它们的只是他们直接的行为。将这些算法封装成一个一个的类,任意地替换。实现同一个接口。1、诸葛亮的锦囊妙计,每一个锦囊就是一个策略。2、旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都是一个策略。3、JAVA AWT 中的 LayoutManager。1、算法可以自由切换。2、避免使用多重条件判断。3、扩展性良好。1、策略类会增多。

2024-02-22 19:45:50 16 1

原创 redis之监听过期key

RedisKeyExpirationListener 继承 KeyExpirationEventMessageListener .一、创建监听配置类 RedisListenerConfig。这里只能获取到 过期的key,无法获取过期的value.三、在redis中创建测试数据,并设置过期时间。

2024-02-22 19:35:45 480 1

原创 单例实现的几种方式

单例是一个只实例化一次的类,即类仅存在一个对象。

2024-01-13 16:21:38 336 1

原创 初识多线程

在前面提到,我们每次使用线程都要先创建一个线程,然后使用给他分配任务,最后调用他的 start 方法执行这个任务。上面的步骤看起来没多大问题,仔细想想看,要是任务一多,每次分配任务的时候都要创建一个新的线程,这个创建线程的花销在 Java 世界中是很「昂贵的」。类比到生活中,公司每次新接一个项目都去招一些人,做完项目就炒了,然后下次又来一个新的项目,又要去招人,这对于 HR 来说很麻烦。

2024-01-12 17:32:38 1143 1

原创 JVM 初识

JVM 全称是即 Java 虚拟机。JVM 是抽象(虚拟)计算机,它定义了一系列规范,因此他有很多实现,如:HotSpot,Eclipse OpenJ9 等等,最常使用的应该就是 Oracle 的 HotSpot。JVM 存在的意义就是抹平所有平台和操作系统的鸿沟。它就像是一个在不同平台提供的翻译官,当用英语和它对话时,他翻译成自己「国家」的语言并执行。这就是为什么在 Windows 下编写好的代码能够在 Linux 等其他系统运行的原因。

2024-01-12 13:47:04 815 1

原创 Stream流常用操作

流就相当于工厂的流水线工作,传送带上是一件件产品,而传送带周围是一些工人。有的负责把挑出次品,把它放到其他另一条流水线中重新加工,有的负责根据产品颜色进行收集,等等。如下图所示。三个员工对传送带上的产品进行操作,老王负责收集把黄色产品挑出,老周负责把产品按先后排序,而老赵负责把残次品挑拣出来,拆开零件放到新的床送带中,继续加工。传送带的终点就是篮子,产品都流向篮子里面。流的操作就是如此。在没有流之前,我们要自己从一堆产品中找到残次品很难。

2024-01-12 09:38:42 398 1

原创 Spring 与事务

即便是在支持事务的数据库中,它们实现事务的方式也各不相同,MySQL 提供对事务的支持,接下来看看在 MySQL 中要如何使用事务。可以看到 jdbc 中对数据库事务的操作都是非常简单的,Spring 与 jdbc 实现事务的操作并无太大差别,只是他把这些封装的太好,会让你觉得是魔法,难以理解。对应的 SQL 语句如下。的方法或者类,使用 AOP 的方式,帮你生成数据库的链接,事务开启、提交、回滚代码,仅此而已。注解之前,还是要先简单介绍下 AOP 在事务上的实现,这对你理解后面的问题,大有裨益。

2024-01-10 14:56:22 842

原创 EasyExcel模板导出填充图片并保持图片原比例

目前使用的是easyexcel模板导出,网上找了一大圈并没有找到填充图片并保持图片原比例的方式,并且easyexcel模板导出貌似也没有直接调整图片大小的方式。最近接到领导需求,要导出excel报表,并且是带图片的,还要保持图片比例。

2024-01-10 14:19:25 1416

原创 Vue.js关于nextTick

是一个异步操作函数,它允许在下次 DOM 更新循环之后执行回调函数。它的作用是在 Vue 实例数据发生变化后,等待 Vue 更新 DOM 完成后再执行一段代码,通常用于在 DOM 更新后进行一些操作,比如访问更新后的 DOM 元素或执行其他需要等待 DOM 更新后才能执行的任务。在 Vue 中用于处理 DOM 更新后的操作,确保这些操作在下一个 DOM 更新周期中执行。来确保在 DOM 更新后执行回调函数。这样,可以安全地访问更新后的 DOM 元素和数据。在上述示例中,当按钮被点击时,

2024-01-09 14:49:13 367 1

原创 使用JSch上传文件到liunx

本来打算用ftp或者sftp上传,但是都失败了,直到发现了JSch。服务器使用的时是阿里云,免费一个月,默认开启了22端口。

2024-01-09 14:31:36 416

原创 泛型的初步理解

通过使用泛型,可以编写更通用的代码,减少了强制类型转换的需要,并且可以在编译时捕获类型错误。Java 中的泛型是一种强类型编程的机制,允许在编写类、接口和方法时使用参数化类型。使用泛型可以编写更加通用和灵活的代码,同时提高了代码的类型安全性。可以创建一个参数化类型的类,这个类型可以在类的定义中使用。通常,泛型类使用尖括号(<>)来指定类型参数,并在类内部使用这些参数。有时可能希望限制泛型类型参数的范围,这可以通过使用类型边界来实现。这意味着方法可以独立于其所属的类接受和返回不同类型的参数。

2024-01-09 14:02:44 399

空空如也

JPA update失效

2022-08-10

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除