Java
文章平均质量分 77
Aries66666
While the world sleeps , you dream.
展开
-
Java 异常
文章目录一、Java异常架构与异常关键字Java异常简介Java异常架构1、Throwable2、Error(错误)3、Exception(异常)运行时异常编译时异常4、受检异常与非受检异常受检异常非受检异常Java异常关键字二、Java异常处理声明异常抛出异常捕获异常如何选择异常类型常见异常处理方式1、直接抛出异常2、封装异常再抛出3、捕获异常4、自定义异常5、try-catch-finally6、try-with-resource三、Java异常常见面试题1、Error 和 Exception 区别是什原创 2021-09-02 21:59:37 · 1134 阅读 · 0 评论 -
什么是死锁?死锁如何解决?
1、死锁是什么?死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。当多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进,这种情况就是死锁。很显然,如果没有外力的作用,那么死锁涉及到的各个进程都将永远处于封锁状态。2、死锁产生的四个必要条件(1)互斥条件:进程要求对所分配的资源(如打印机)进行排他性控制,即在一段时间内某资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。(2)不剥夺条件:进程所获得的原创 2021-08-30 22:14:30 · 20836 阅读 · 1 评论 -
猴子排序
基本思想 把一个无序的数组进行乱排序,然后看其是否会有序,有可能一次之后就有序了,也有可能很多次后依然无序。 最佳情况 O(n)O(n)O(n),平均 O(n∗n!)O(n*n!)O(n∗n!),最坏可执行直到世界的尽头。原创 2021-08-20 22:22:21 · 296 阅读 · 0 评论 -
排序算法之基数排序
简介 基数排序(radix sort)属于 “分配式排序”(distribution sort),又称 “桶子法”(bucket sort)或 bin sort, 顾名思义,它是通过键值的部分信息,将要排序的元素分配至某些"桶"中,以达到排序的作用, &nbs原创 2021-08-19 22:26:45 · 580 阅读 · 0 评论 -
排序算法之桶排序
简介 **桶排序(Bucket sort)**或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里,每个桶子再个别排序,有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序。 桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间 Θ(n)Θ(n)Θ(n)原创 2021-08-16 21:10:31 · 157 阅读 · 0 评论 -
Java 集合
文章目录1)说说常见的集合有哪些吧?2)使用集合框架的好处?3)集合框架底层数据结构4)迭代器Iterator是什么?5)Iterator和ListIterator有什么区别?6)HashMap与HashTable有什么区别?7)如何决定使用HashMap还是TreeMap?8)HashMap的put方法的具体流程?9)HashMap的扩容操作是怎么实现的?10)HashMap是怎么解决哈希冲突的?什么是哈希?什么是哈希冲突?HashMap的数据结构hash()函数JDK1.8新增红黑树总结11)HashM原创 2021-08-14 18:37:59 · 1819 阅读 · 0 评论 -
排序算法之计数排序
简介 计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。 它的优势在于在对一定范围内的整数排序时,它的复杂度为 O(n+k)O(n+k)O(n+k)(其中 k 是整数的范围),快于任何比较排序算法。原创 2021-08-13 22:29:00 · 322 阅读 · 0 评论 -
排序算法之堆排序
简介 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。 堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即父节点结点的键值或索引总是小于(或者大于)它的子节点。堆的概念 在介绍堆排序之前,简单介原创 2021-08-11 22:57:54 · 3109 阅读 · 1 评论 -
排序算法之快速排序
简介 快速排序(QuickSort)是对冒泡排序算法的一种改进。 快速排序通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。基本思想 &n原创 2021-08-01 22:55:44 · 494 阅读 · 0 评论 -
排序算法之归并排序
简介 归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。基本思想 &nb原创 2021-07-30 22:40:26 · 877 阅读 · 0 评论 -
IDEA 使用阿里巴巴 Java 开发规约插件教程
“统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本” .原创 2021-07-29 21:43:15 · 1682 阅读 · 0 评论 -
排序算法之希尔排序
简介 希尔排序(Shell Sort)是插入排序的一种,又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排原创 2021-07-28 23:50:04 · 151 阅读 · 0 评论 -
Linux 下卸载 openjdk,安装 jdk
Linux 下卸载 openjdk,安装 jdk原创 2021-07-23 23:03:05 · 2436 阅读 · 1 评论 -
排序算法之插入排序
简介 插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。 插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表,进行待插入位置查找,原创 2021-07-16 23:01:53 · 381 阅读 · 0 评论 -
排序算法之选择排序
简介 选择排序(Selection sort)是一种简单直观的排序算法。 它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。 &n原创 2021-07-15 22:53:38 · 92 阅读 · 0 评论 -
面向对象设计的七大原则
面向对象设计原则简介 常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充。设计原则名称设计原则简介单一职责原则(Single Responsibility Principle, SRP)类的职责要单一,不能将太多的职责放在一个类中开闭原则(Open-Closed Principle, OCP)软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件原创 2021-07-14 22:22:57 · 2118 阅读 · 0 评论 -
排序算法之冒泡排序
简介 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 &原创 2021-07-12 23:01:33 · 132 阅读 · 0 评论 -
睡眠排序
基本思想 睡眠排序算法是一种比较另类有趣的排序算法,其核心思想与多线程、CPU调度机制相关,是通过多线程让每一个数据元素睡眠一定的时间,睡眠时间要和自身数据大小存在一定的规律,睡眠时间短的先进行输出,睡眠时间长的后输出,从而实现数据有序输出。缺陷 (1)当数据很大时,会睡眠很长时间,程序运行时间较长,效率比较低。原创 2021-07-11 22:56:29 · 261 阅读 · 0 评论 -
在 windows 和 linux 环境下,SimpleDateFormat 转换格式不一致的问题
1、问题提出 首先,我们这里有个需求,需要根据 yyyy-MM-dd 格式的时间的字符串,获取这天是周几。2、分析 通过 SimpleDateFormat ,把字符串形式,yyyy-MM-dd 格式的日期先转化为 Date 类型的日期。 &原创 2021-07-07 10:41:26 · 706 阅读 · 0 评论