2022
05-17
05-17
java基础-数组扩容详解
目录数组与链表的比较:ArrayList:LinkedList:总结数组与链表的比较:数组通过下标访问的话是O(1)数组一旦声明长度就是固定的数组的数据是物理逻辑均连续的链表增删要快一些,数组遍历快一些长度一定的话,数组的存储空间比链表要小ArrayList:ArrayList是List接口的实现类,它是支持根据需要而动态增长的数组;java中标准数组是定长的,在数组被创建之后,它们不能被加长或缩短。这就意味着在创建数组时...
继续阅读 >
目录一.线程池简介二、四种常见的线程池详解三、缓冲队列BlockingQueue和自定义线程池ThreadPoolExecutor总结一.线程池简介线程池的概念线程池就是首先创建一些线程,它们的集合称为线程池,使用线程池可以很好的提高性能,线程池在系统启动时既创建大量空闲的线程,程序将一个任务传给线程池。线程池就会启动一条线程来执行这个任务,执行结束后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。线程...
背景AbstractMethodError异常对于我来说还是比较不常遇见的,最近有幸遇到,并侥幸的解决了,在这里把此种场景剖析一番,进入正题,下面是AbstractMethodError在Java的异常机制中所处的位置:现在明确了AbstractMethodError所具有的特性:1.它是Error的子类,Error类及其子类都是被划分在非检查异常之列的,就是说这些异常不能在编译阶段被检查出来,只能在运行时才会触发。2.通过API文档里面的解释大致得出的结论就是说A依赖于B,...
目录哈希Hash算法介绍分布式存储场景场景描述:实现思路:缺点:一致性Hash算法节点增加场景节点减少场景节点分布不均匀虚拟节点增加节点节点减少总结哈希Hash算法介绍哈希算法也叫散列算法,不过英文单词都是Hash,简单一句话概括,就是可以把任意长度的输入信息通过算法变换成固定长度的输出信息,输出信息也就是哈希值,通常哈希值的格式是16进制或者是10进制,比如下面的使用md5哈希算法的示例md5("123456")=>"e10adc3949b...
目录一.冷静分析二.直接开装2.1初级炫2.2普通炫2.3高级炫2.4再炫一波拿到当前key与对应的数量2.5MapReduce炫git仓库直达List<String>strings=Lists.newArrayList("name=kk","sex=1","tel=1111","email=xx@qq.com","name=ww","name=yy");一.冷静分析如上代码,你现在要做一个分组的Map将上面list的值读取出来,然后分组统计类似于Map<String,List<String>>将Key相同的Val全部存到一个list里面二.直接开装不会真有...
一、reservedcodecachesize参数介绍该参数是JvM虚拟机调优中调整内存大小的一个设置参数,值得大小设置直接影响到CodeCache的大小,而jvm编译的代码有常常存放在CodeCache中,而CodeCache的空间内存又支撑着jvm的正常运行,如果该空间不足jvm虚拟机将会发生问题,并且性能持续降低。CodeCache就是所谓的代码缓存,由于JVM虚拟机的内存默认是有大小限制的,因此代码缓存区域肯定也是有一定大小限制,一般的Windows电脑上64位系...
目录概念插入排序直接插入排序代码实现性能分析希尔排序代码实现性能分析选择排序直接选择排序代码实现性能分析堆排序代码实现性能分析交换排序冒泡排序代码实现性能分析快速排序代码实现性能分析非递归实现快速排序代码实现性能分析归并排序归并排序代码实现性能分析非递归实现归并排序代码实现性能分析海量数据的排序问题总结概念排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上...
目录1、synchronized的作用2、synchronized的语法3、Monitor原理4、synchronized的原理4.1偏向锁4.2轻量级锁4.3锁膨胀4.4重量级锁4.5自旋锁4.6锁消除4.7锁粗化5、锁升级过程总结1、synchronized的作用为了避免临界区的竞态条件发生,有多种手段可以达到目的。阻塞式的解决方案:synchronized,Lock非阻塞式的解决方案:原子变量synchronized,即俗称的【对象锁】,它采用互斥的方式让同一时刻至多只有一个线程能持有【对象...
目录前提Loom项目简单介绍VirtualThread使用小结前提之前很长一段时间关注JDK协程库的开发进度,但是前一段时间比较忙很少去查看OpenJDK官网的内容。Java协程项目Loom(因为项目还在开发阶段,OpenJDK给出的官网https://openjdk.java.net/projects/loom中只有少量Loom项目相关的信息)已经在2018年之前立项,目前已经发布过基于JDK17编译和JDK18编译等早期版本,笔者在下载Loom早期版本的时候只找到JDK18编译的版本:下载入口在:...
目录ThreadPool线程池的优势线程池的特点1线程池的方法(1)newFixedThreadPool(2)newSingleThreadExecutor(3)newScheduledThreadPool(4)newCachedThreadPool2线程池底层原理3线程池策略及分析拒绝策略如何设置maximumPoolSize大小ThreadPool线程池的优势线程池做的工作主要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出的线程排队等候,等待其他线程执...