最新内容

十大经典排序算法之插入排序 十大经典排序算法动画

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序,因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。算法特性稳定性插入排序是一种稳定性的排序算法。时间复杂度插入排序的 …

Java、Set、Map集合框架知识大全,收藏备用

前言Java集合框架的知识在Java基础阶段是极其重要的,我平时使用List、Set和Map集合时经常出错,常用方法还记不牢,于是就编写这篇博客来完整的学习一下Java集合框架的知识,如有遗漏和错误,欢迎大家指出。以下是我整理的大致Java集合框架内容,本篇博客就是围绕以下内容展开1、集合概念1.1、概念:对象的容器,定义了对多个对象进行操作的常用方法。可实 …

Java内存溢出的解决思路 java程序内存溢出找原因

作者 |积淀来源 | urlify.cn2YZney内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。 引起内存溢出的原因有很多种,常见的有以下几种:  1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;  2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;  3.代码 …

说一下 ArrayDeque 和 LinkedList 的区别?

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。大家好,我是小彭。在上一篇文章里,我们聊到了基于链表的 Queue 和 Stack 实现 —— LinkedList。那么 Java 中有没有基于数组的 Queue 和 Stack 实现呢?今天我们就来聊聊这个话题。小彭的 Android 交流群 02 群已经建立啦~思 …

看完这篇ArrayList,offer还不来?

前言我们在提高开发效率,也应该提高代码的执行效率,注重代码的质量。如何提高,其中的一个好办法就是阅读源码,知其然知其所以然。下面我就以面试问答的形式学习我们的最常用的装载容器——ArrayList(源码分析基于JDK8)问答内容1.问:ArrayList有用过吗?它是一个什么东西?可以用来干嘛?答:有用过,ArrayList就是数组列表,主要用来装载数据,当 …

大顶堆的实现(基于数组存储的完全二叉树)

完全二叉树完全二叉树的定义满二叉树非完全二叉树,非满二叉树完全二叉树完全二叉树的特点叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部。完全二叉树的实现二叉链表:直观,但占用内存大。数组:简洁,但拓展麻烦。比较推荐使用数组存储,本文也将基于数组存储介绍大顶堆的实现。基于数组存储的完全二叉树节点与数组下标的关系假设完全二叉树的 节点 A 存储在 …