Java 选择排序思路
选择排序是一种经典的排序算法。 选择排序思想 将数组分为两个子集,前一个子集是排序的,后一个子集是未排序的。 每一轮遍历从未排序的子集中选择最小的元素放入排序子集的末端。 重复以上过程,直到整个数组有序。 经典实现 为了能更好地展示冒泡排序...
选择排序是一种经典的排序算法。 选择排序思想 将数组分为两个子集,前一个子集是排序的,后一个子集是未排序的。 每一轮遍历从未排序的子集中选择最小的元素放入排序子集的末端。 重复以上过程,直到整个数组有序。 经典实现 为了能更好地展示冒泡排序...
冒泡排序是最经典的排序算法之一,其主要思路是两两比较相邻位置的元素,并交换其位置,直到结束。 排序存在两种场景:升序和降序,这里仅讨论升序的情况。 冒泡思想 冒泡排序文字描述: 依次比较数组中响铃两个元素的大小,若前一个大于后一个,则交换两...
Java 中有多种常量池,常量池可以实现数据共享,节省内存开销,避免频繁创建对象与销毁对象等诸多好处。 常量池分类 一般,Java 中的常量池被分为以下几类: class 字节码常量池:保存字面量(就是一些字符串和被final修饰的变量)和...
垃圾收集器 (GC)负责 Java 中的内存管理。因此,程序员不需要显式地处理内存分配和释放。 在 Java 中,JVM 一开始就预留了一定的内存。有时,实际使用的内存明显少于保留量。在这种情况下,我们更愿意将多余的内存返回给操作系统。 这...
Java 中,垃圾收集器根 GC Roots 是特殊的对象。了解它有助于理解垃圾收集器的工作原理。 GC Roots GC Roots 是Java垃圾收集上下文中使用的术语。它们是垃圾收集器的特殊对象。顾名思义,GC 根是垃圾收集器进程的起...
Java 的 try 、catch、finally 代码块有助于编写可能导致程序出现异常的代码。 try 代码块 try 代码块包含应在正常条件下运行的应用程序代码。 例如,读取文件,写入数据库或执行复杂的业务操作。 try { //业务代...
Java 在调用 wait() 或者 sleep() 方法时,需要处理中断异常 InterruptedException。我们需要了解为什么会出现这个异常,以及如何避免出现这样的异常。 基础回顾 中断异常 InterruptedExcept...
Java 处理文件操作时,经常会遇到一个异常——文件找不到 FileNotFoundException。 异常成因 在以下情况下可能会引发此异常: 指定路径名的文件不存在 指定路径名的文件确实存在,但由于某种原因无法访问(请求写入只读文件,...
Java 中,时常遇到在循环中修改数据时,出现并发修改异常 ConcurrentModificationException。 异常成因 本质上,ConcurrentModificationException 用于在我们迭代的内容被修改时快速...
Java 操作数据时,偶尔会出现异常 ArrayIndexOutOfBoundsException。我们需要了解为什么会出现这个异常,以及如何避免出现这样的异常。 基础回顾 在Java中,数组是一种静态数据结构,我们在创建时就定义了它的大小...