码上仙的文章

算法

Java 二分查找与优化思路

阅读(1814)赞(4)

二分查找是一种高效的查找方法。其主要思路是:对已经排序的数据,每次取二分之一处的元素与目标元素比较,如果相等就返回目标位置,否则继续下一轮查找。 二分思想 二分查找文字描述: 排好序的数组 arr 定义左边界 left、右边界 right,...

算法

Java 快速排序多种实现

阅读(2027)赞(2)

快速排序思想 每一轮遍历选择一个基准点(pivot)进行分区。 小于基准点的元素进入一个分区,大于基准点的元素进入另一个分区。 当分区完成时,基准点的位置就是排序后该元素应该处于的位置。 在每个子分区中重复以上过程,直到分区中元素少于等于 ...

算法

Java 插入排序与优化

阅读(1921)赞(2)

插入排序思想 将数组分为两个部分,排序部分和未排序部分。 每一轮遍历从未排序部分取出第一个元素,插入到排序部分的对应位置。 重复以上过程,直到整个数组有序。 代码实现 为了能更好地展示冒泡排序的主要思想,我将数据准备工作定义在 main()...

算法

Java 选择排序思路

阅读(1926)赞(2)

选择排序是一种经典的排序算法。 选择排序思想 将数组分为两个子集,前一个子集是排序的,后一个子集是未排序的。 每一轮遍历从未排序的子集中选择最小的元素放入排序子集的末端。 重复以上过程,直到整个数组有序。 经典实现 为了能更好地展示冒泡排序...

算法

Java 冒泡排序与优化

阅读(2149)赞(2)

冒泡排序是最经典的排序算法之一,其主要思路是两两比较相邻位置的元素,并交换其位置,直到结束。 排序存在两种场景:升序和降序,这里仅讨论升序的情况。 冒泡思想 冒泡排序文字描述: 依次比较数组中响铃两个元素的大小,若前一个大于后一个,则交换两...

Java 中的常量池-码谱记录
Java虚拟机

Java 中的常量池

阅读(2275)赞(33)

Java 中有多种常量池,常量池可以实现数据共享,节省内存开销,避免频繁创建对象与销毁对象等诸多好处。 常量池分类 一般,Java 中的常量池被分为以下几类: class 字节码常量池:保存字面量(就是一些字符串和被final修饰的变量)和...

Java GC 垃圾回收与内存管理-码谱记录
Java虚拟机

Java GC 垃圾回收与内存管理

阅读(2513)赞(1)

垃圾收集器 (GC)负责 Java 中的内存管理。因此,程序员不需要显式地处理内存分配和释放。 在 Java 中,JVM 一开始就预留了一定的内存。有时,实际使用的内存明显少于保留量。在这种情况下,我们更愿意将多余的内存返回给操作系统。 这...

Java虚拟机

GC Roots 根节点

阅读(2727)赞(1)

Java 中,垃圾收集器根 GC Roots 是特殊的对象。了解它有助于理解垃圾收集器的工作原理。 GC Roots GC Roots 是Java垃圾收集上下文中使用的术语。它们是垃圾收集器的特殊对象。顾名思义,GC 根是垃圾收集器进程的起...

Java 异常处理 try-catch-finally-码谱记录
Java异常

Java 异常处理 try-catch-finally

阅读(1993)赞(5)

Java 的 try 、catch、finally 代码块有助于编写可能导致程序出现异常的代码。 try 代码块 try 代码块包含应在正常条件下运行的应用程序代码。 例如,读取文件,写入数据库或执行复杂的业务操作。 try { //业务代...

Java异常

Java 异常 InterruptedException

阅读(2400)赞(2)

Java 在调用 wait() 或者 sleep() 方法时,需要处理中断异常 InterruptedException。我们需要了解为什么会出现这个异常,以及如何避免出现这样的异常。 基础回顾 中断异常 InterruptedExcept...