- 博客(9)
- 收藏
- 关注
原创 Comparable与Comparator
引言今天面试官问我,来说一下你对集合排序的了解,心里一凉,思考许久弱弱的来了一句我只用过Arrays.sort()方法。然后晚上我就抓紧开始研究学习Java集合排序的使用以及原理。概述Java中的集合排序包括数组排序都离不开两个接口:Comparable与Comparator接口,下面我们来一一说明。Comparable接口简介Comparable接口是排序接口,也就是说如果一个类实现了Comparable接口,就说明该类支持排序。而在一些有序集合如TreeMap作为key值以及TreeSet中不
2022-03-21 21:34:08
280
转载 Java垃圾回收机制
前言对于 JVM 来说,我们都不陌生,其是 Java Virtual Machine(Java 虚拟机)的缩写,它也是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM 有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统,其本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java 语言的可移植性就是建立在 JVM 的基础之上的,任何平台只要装有针对于该平台的 Java 虚拟机,字节码文件(.class)就可以在该平台上运行,这
2021-11-29 19:14:53
267
转载 Java线程池
原文链接:https://blog.csdn.net/mu_wind/article/details/113806680初识线程池我们知道,线程的创建和销毁都需要映射到操作系统,因此其代价是比较高昂的。出于避免频繁创建、销毁线程以及方便线程管理的需要,线程池应运而生。线程池优势降低资源消耗:线程池通常会维护一些线程(数量为 corePoolSize),这些线程被重复使用来执行不同的任务,任务完成后不会销毁。在待处理任务量很大的时候,通过对线程资源的复用,避免了线程的频繁创建与销毁,从而降低了系统
2021-11-22 19:06:55
83
原创 Java多线程
1、多线程与多进程首先我们来了解一下什么是进程,什么是线程?进程: 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志。线程: 线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单
2021-11-19 16:40:02
478
原创 Java类--HashMap
1、概述我们都知道HashMap是一个非常常用的数据结构,在java8之前是有数组+链表组合构成,在java8及之后都用的是数组+链表+红黑树组合构成。数组的每个地方都存储了kv键值对即Key-Value,这些键值对在java7中叫Entry,在java8中叫Node。其实HashMap的底层原理就是哈希表,我么都知道哈希表是通过哈希函数计算元素应该放在数组的哪个位置,如果有两个元素通过哈希函数计算出来的值相同就会产生哈希冲突,而链表以及红黑树就是我们来解决哈希冲突的方法。我们通过HashMap的源码来
2021-11-11 10:19:44
760
原创 Java类--ArrayList
1、概述ArrayList可以说是我们最常用的集合类了,底层通过数组实现,同时允许有空值存在。首先我们看源码中ArrayList类的继承以及实现:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable我们可以看出,ArrayList继承了AbstractList,实现了Li
2021-11-08 19:22:55
307
原创 Java异常处理机制
1、什么是Java异常 异常在我们的生活中就是一些跟往常不一样的,不太正常的现象。在Java中,异常就是指程序出现了一些错误,也就是说程序没有按照我们想要的方向走。就比如说:我们写的一个模块传入的数据不符合你的要求;你访问在线的服务但是你的网络连接败;你查询数据库的数据为空;你访问的文件不存在或者文件的格式跟你所想的不一样;程序在运行的时候JVM出错了或者内存空间用完了等等。这些异常发生在程序运行期间,中断了正在执行程序的正常指令流。1.1、异常体系结构 在Java中,所有的异常都是对象,他们
2021-11-01 19:45:25
422
原创 Java类---String
1、概述 String类也就是我们常说的字符串类,在java开发可以说是处处可见。在String类中封装了很多关于字符串的处理方法,下面我们来研究研究这些方法如何使用。2、实例化我们都知道java的对象实例化一般都是通过关键字new来实例化,对于基本类型我们可以通过=直接赋值,对于String对象来说这两种方法都是可以的,但是有一定的区别。2.1、new创建与直接赋值首先我们来看一下这两种赋值的比较结果:public static void main(String[] args) {
2021-10-28 19:52:20
104
原创 Java类---Object
一、概述 我们在Java的一些IDE如IDEA中在一个实例的对象后点一个.,我们会发现有很多我们根本没有定义的方法: 这些方法其实都来自于所有java类的父类Object类中定义的。正因为Object是所有类的父类,所以extend Object关键字就被省略了。 从上图我们可以看出Object中有以下方法:getClass()、hashCode()、equals()、clone()、toString()、notify()、notifyAll()、wait()。其中clone()不能直接
2021-10-26 19:20:15
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人