自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 LeetCode(04) 最接近的三数之和 【双指针】

中选出三个整数,使它们的和与。假定每组输入只存在恰好一个解。

2024-09-13 15:24:28 446

转载 LeetCode(03) 三数之和 双指针

(1)当nums[k] > 0 时直接break跳出:因为 nums[j] >= nums[i] >= nums[k] > 0,即 3 个元素都大于 0 ,在此固定指针 k 之后不可能再找到结果了。(2)当 k > 0且nums[k] == nums[k - 1]时即跳过此元素nums[k]:因为已经将 nums[k - 1] 的所有组合加入到结果中,本次双指针搜索只会得到重复组合。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。,判断是否存在三元组。

2024-09-13 10:58:55 574

原创 LeetCode(2)两数相加【链表】【中等】

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]本题的基本思路就是: 模拟两数加法的过程 + 构建新链表。的链表,表示两个非负的整数。它们每位数字都是按照。解释:342 + 465 = 807.的方式存储的,并且每个节点只能存储。,并以相同形式返回一个表示和的链表。输出:[7,0,8]

2024-09-04 16:32:21 494

原创 LeetCode(01)环形链表【链表】【简单】

指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中有某个节点,可以通过连续跟踪。仅仅是为了标识链表的实际情况。,判断链表中是否有环。给你一个链表的头节点。

2024-09-04 08:34:44 435

原创 JVM虚拟机(五)JVM调优的常用参数

Java命令行参数可以根据其类型和作用范围大致分为以下三种类型:标准选项(Standard Options)示例-version-help-classpath等。描述:这些选项是Java语言规范中定义的标准参数,跨不同JDK版本和实现保持一致,用于设置基本的Java运行环境、类路径、系统属性、日志级别、JAR包代理、启动画面等。它们通常以单个短横线()开头,不带有额外的前缀。非标准(或扩展)选项(Non-standard / Extended Options)示例-Xms<size>

2024-09-03 15:10:24 1188

原创 JVM虚拟机(四)强引用、软引用、弱引用、虚引用

强引用:比较常见,只要 GC Root 能关联到,就不会被回收。软引用:需要配合 SoftReference 使用,当垃圾被多次回收,内存依然不够的时候会回收软引用对象。弱引用:需要配合 WeakReference 使用,只要进行了垃圾回收,就会把弱引用对象回收。虚引用:必须配合引用队列使用,被引用对象回收时,会将虚引用入队,由 Reference Handler 线程调用虚引用相关方法释放直接内存等外部资源。

2024-08-22 16:09:50 1257

原创 JVM虚拟机(三)垃圾回收算法、分代回收、垃圾回收器种类、G1垃圾回收器

垃圾回收主要指的是回收堆中的对象。堆是一个共享区域,我们创建的对象和数组都存储在当前的堆里。但是我们也不能无限地去创建对象,也不是所有的对象都需要一直存在,如果说不进行垃圾回收的话,内存迟早都会被耗尽的,所以说及时的垃圾回收就显得非常有必要了。那什么对象才能被回收呢?简单一句话就是:如果一个或多个对象没有任何的引用指向它了,那么这个对象现在就可能会被垃圾回收器回收。定位什么样的对象是垃圾有两种方式:第一个是引用计数法,第二个是可达性算法。标记清除算法。

2024-08-21 16:51:56 1232

原创 JVM虚拟机(二)类加载器、双亲委派模型、类装载的执行过程

双亲委派模型Parent Delegation Model,这里的 “双亲” 实际指的是父级。加载某一个类,先委托上一级的加载器进行加载,如果上级加载器也有上级,则会继续向上委托,如果该类委托上级没有被加载,子加载器再尝试加载该类。

2024-08-20 16:34:22 954

原创 JVM虚拟机(一)基本介绍

JVM,全称JavaVirtualMachine,是Java程序的运行环境。比如说我们自己写的代码想要运行的话,都必须在 JVM 中才能运行。当然严格来说,是 Java 的二进制字节码的运行环境。ava 代码想要运行的话,就必须先经过编译之后,编译成 .class 文件才能运行。JVM 就是 .class 二进制字节码的运行环境。JVM 的好处:Java 是一个跨平台的语言,它是怎么跨平台呢?就是因为JVM 给我们屏蔽了操作系统的差异。别管是在 Windows 或者是Linux。

2024-08-19 17:13:45 822

原创 设计模式(代理模式)

为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样可以在目标对象实现的基础上 , 增强额外的功能操作, 即扩展目标对象的功能。被代理的对象可以是远程对象创建开销大的对象或需要安全控制的对象。代理模式有不同的形式 , 主要有三种静态代理动态代理(JDK代理、接代理和Cglib代理可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴。

2024-08-16 15:54:38 1350

原创 设计模式(单例模式)

使用双检锁单例模式来管理 JSON 格式化处理对象,确保在整个项目中只有一个 JsonFormatter 实例存在,避免了重复创建对象的开销,同时提供了一个便捷的方式来操作 JSON 数据的格式化。需要在单例类中实现Serializable序列化接口,并且实现readResolve()方法,这是序列化和反序列化的一个协议,为了序列化后的对象能够重复利用,可以实现readResolve()方法,而这个方法是由JVM自动调用的。在懒汉模式下,实例在第一次使用时才进行创建,因此称为“懒汉”——直到需要才“吃”。

2024-08-15 16:20:44 1220

原创 设计模式(工厂模式)

抽象工厂模式是工厂方法模式的进一步延伸,由于它提供了功能更为强大的工厂类并且具备较好的可扩展性,在软件开发中得以广泛应用,尤其是在一些框架和 API 类库的设计中,例如在 Java 语言的 AWT(抽象窗口工具包)中就使用了抽象工厂模式,它使用抽象工厂模式来实现在不同的操作系统中应用程序呈现与所在操作系统一致的外观界面。抽象工厂模式也是在软件开发中最常用的设计模式之一。

2024-08-14 17:22:26 779

原创 JAVA8 Stream流式编程的去重、过滤、映射(map)、分组、统计(sum、max、min、avg)、分页

Stream提供了两种类型的操作——中间操作和终端操作。中间操作用于链式调用,并可以有多个,而终端操作是触发计算的地方。Stream流的实现原理主要基于迭代器和函数式编程的思想。在内部迭代的过程中,流通过一系列操作进行链式处理,将每个元素传递给下一个操作,并最终生成结果。方法一核心代码:list = list.stream().filter(o -> o.getName()!= null).collect(在并行流的情况下,流将输入数据分成多个小块,分配给不同的线程并行处理。处理完后,再合并结果并返回。

2024-08-13 11:01:36 1381

原创 Java集合

【代码】Java集合。

2024-08-12 16:18:49 1259 1

空空如也

空空如也

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

TA关注的人

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