上一页 1 2 3 4 5 6 7 8 9 10 ··· 31 下一页
摘要: ArrayList 初始容量:10 ,扩容因子:1,当容量达到上限后才会触发扩容。扩容公式:新容量 = 旧容量/2 + 旧容量 + 1比如:初始容量为4,其容量的每次扩充后的新容量为:4->7->11->17->26->...即每次扩充至原有基础的1.5倍LinkedListlinkedList没有 阅读全文
posted @ 2023-01-07 17:10 锐洋智能 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 1.ArrayListArrayList 初始化大小是 10扩容点规则是,新增的时候发现容量不够用了,就去扩容扩容大小规则是,扩容后的大小= 原始大小*1.5。ArrayList是一个集合,底层维护的是数组结构,查询比较快,增删慢,线程不同步2.LinkedListLinkedList 是一个双向链 阅读全文
posted @ 2023-01-07 17:07 锐洋智能 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 在 Java 开发中少不了使用 HashMap,但是通常使用 HashMap 时就是简单的进行 new 一下就可以开始使用了。比如这样: HashMap<String, Object> param = new HashMap<>(); 这样使用并不会有什么问题,但是如果在创建 HashMap 时如果 阅读全文
posted @ 2023-01-07 10:14 锐洋智能 阅读(619) 评论(3) 推荐(1) 编辑
摘要: HashMap的介绍在开始之前,先看下在官方文档中是如何介绍HashMap的: An instance of HashMap has two parameters that affect its performance: initial capacity and load factor. The c 阅读全文
posted @ 2023-01-07 10:03 锐洋智能 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 目录 一.写时复制介绍 二.CopyOnWriteArrayList介绍 三.CopyOnWriteArrayList源码解析 3.1 重要属性 3.2 getArray和setArray 3.3 构造方法 3.4 获取元素 3.5 添加元素 3.5.1 追加元素 3.5.2 指定位置插入元素 3. 阅读全文
posted @ 2023-01-06 07:44 锐洋智能 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 原理:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 图解: 桶排序: 计数排序: 基数排序: 代码示例: import java.util.ArrayList; import java.util.Arrays; import ja 阅读全文
posted @ 2023-01-06 07:14 锐洋智能 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 首先明确了这个可以在一次循环中解决即时间复杂度为O(n) 其次,在循环中,我们应能知道起始的位置,然后终止于哪个位置,当碰到终止的时候必然是元素为已经纳入我们统计中的元素。然后我们要如何确认这个元素在哪个位置,并且把一些废弃的元素丢弃掉,重新到下一次统计,直至目标数组遍历完全。 所以 阅读全文
posted @ 2023-01-06 07:13 锐洋智能 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 由于这是一个链表,所以我们一般只能获取到一个头结点,然而其他信息我们不确定。所以可以采用双指针的方法。 思路一,利用一个指针获取整个链表元素的总数,利用总数减去目标数,所以我们可以确定要删除的位置。 思路二,利用一个指针先走出目标数目,然后两个指针一起走,那么先走的指针走完时,第二个 阅读全文
posted @ 2023-01-06 07:12 锐洋智能 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 如图: 思路一,利用动态规划的方法,列出全部结果来寻找规律,我们发现45度下滑,如果连续相等的话我们可以做递加,不但可以得出最长的字符串数量还可以知道字符的位置。 思路二,这是我看别人提供的一种思路,通过将一个字符串截取部分,然后判断是否在另一个字符串中,然后不断偏移直至全部比对完, 阅读全文
posted @ 2023-01-06 07:11 锐洋智能 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 前置知识(CAS部分) (1)什么是 CAS 1.CAS(Compare And Swap,比较并交换),通常指的是这样一种原子操作: 针对一个变量,首先比较它的内存值与某个期望值是否相同,如果相同,就给它赋一个新值。 2.CAS 的逻辑用伪代码描述 : if (value == expectedV 阅读全文
posted @ 2023-01-06 07:09 锐洋智能 阅读(182) 评论(0) 推荐(0) 编辑
摘要: ArrayBlockingQueue :基于数组结构实现的一个有界阻塞队列 LinkedBlockingQueue : 基于链表结构实现的一个无界阻塞队列,指定容量为有界阻塞队列 SynchronousQueue :不存储元素的阻塞队列 LinkedTransferQueue : 基于链表结构实现的 阅读全文
posted @ 2023-01-06 07:04 锐洋智能 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 【1】为什么要使用线程池? 示例演示: //设置业务模拟 class MyRunnable implements Runnable { private int count; public MyRunnable(int count) { this.count = count; } public int 阅读全文
posted @ 2023-01-06 07:02 锐洋智能 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 【1】前言 本篇幅是对 线程池底层原理详解与源码分析 的补充,默认你已经看完了上一篇对ThreadPoolExecutor类有了足够的了解。 【2】ScheduledThreadPoolExecutor的介绍 1.ScheduledThreadPoolExecutor继承自ThreadPoolExe 阅读全文
posted @ 2023-01-06 07:01 锐洋智能 阅读(42) 评论(0) 推荐(0) 编辑
摘要: Future模式 【1】Future模式是多线程开发中常见的设计模式,它的核心思想是异步调用。对于Future模式来说,它无法立即返回你需要的数据,但是它会返回一个契约,将来你可以凭借这个契约去获取你需要的信息。 【2】通俗一点就是生产者-消费者模型的扩展。经典“生产者-消费者”模型中消息的生产者不 阅读全文
posted @ 2023-01-06 07:00 锐洋智能 阅读(829) 评论(0) 推荐(0) 编辑
摘要: 什么是CopyOnWrite容器 【1】CopyOnWrite容器是基于并发模式Copy-on-Write模式(最简单的并发解决方案)实现的用于避免共享的数据集合。 【2】CopyOnWrite容器又被成为写时复制的容器,即当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行C 阅读全文
posted @ 2023-01-06 06:58 锐洋智能 阅读(131) 评论(0) 推荐(0) 编辑
摘要: SynchronousQueue介绍 【1】SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除操作take。 【2】如图所示,SynchronousQueue 最大的不同之处在于,它的容量为 0,所以没有一个地方来暂存元 阅读全文
posted @ 2023-01-06 06:55 锐洋智能 阅读(847) 评论(0) 推荐(0) 编辑
摘要: 【1】DelayQueue 是一个支持延时获取元素的阻塞队列, 内部采用优先队列 PriorityQueue 存储元素,同时元素必须实现 Delayed 接口;在创建元素时可以指定多久才可以从队列中获取当前元素,只有在延迟期满时才能从队列中提取元素。延迟队列的特点是:不是先进先出,而是会按照延迟时间 阅读全文
posted @ 2023-01-06 06:55 锐洋智能 阅读(351) 评论(0) 推荐(0) 编辑
摘要: PriorityBlockingQueue介绍 【1】PriorityBlockingQueue是一个无界的基于数组的优先级阻塞队列,数组的默认长度是11,也可以指定数组的长度,且可以无限的扩充,直到资源消耗尽为止,每次出队都返回优先级别最高的或者最低的元素。默认情况下元素采用自然顺序升序排序,当然 阅读全文
posted @ 2023-01-06 06:54 锐洋智能 阅读(205) 评论(0) 推荐(0) 编辑
摘要: ArrayBlockingQueue介绍 ArrayBlockingQueue是最典型的有界阻塞队列,其内部是用数组存储元素的,初始化时需要指定容量大小,利用 ReentrantLock 实现线程安全。 在生产者-消费者模型中使用时,如果生产速度和消费速度基本匹配的情况下,使用ArrayBlocki 阅读全文
posted @ 2023-01-06 06:53 锐洋智能 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 什么是阻塞队列 【1】阻塞队列:从定义上来说是队列的一种,那么肯定是一个先进先出(FIFO)的数据结构。与普通队列不同的是,它支持两个附加操作,即阻塞添加和阻塞删除方法。 【2】阻塞添加:当阻塞队列是满时,往队列里添加元素的操作将被阻塞。 【3】阻塞移除:当阻塞队列是空时,从队列中获取元素/删除元素 阅读全文
posted @ 2023-01-06 06:52 锐洋智能 阅读(822) 评论(0) 推荐(1) 编辑
摘要: LinkedBlockingDeque介绍 【1】LinkedBlockingDeque是一个基于链表实现的双向阻塞队列,默认情况下,该阻塞队列的大小为Integer.MAX_VALUE,可以看做无界队列,但也可以设置容量限制,作为有界队列。 【2】相比于其他阻塞队列,LinkedBlockingD 阅读全文
posted @ 2023-01-06 06:51 锐洋智能 阅读(289) 评论(0) 推荐(0) 编辑
摘要: LinkedBlockingQueue介绍 【1】LinkedBlockingQueue是一个基于链表实现的阻塞队列,默认情况下,该阻塞队列的大小为Integer.MAX_VALUE,由于这个数值特别大,所以 LinkedBlockingQueue 也被称作无界队列,代表它几乎没有界限,队列可以随着 阅读全文
posted @ 2023-01-06 06:50 锐洋智能 阅读(696) 评论(0) 推荐(0) 编辑
摘要: 文章目录 为什么要了解扩容机制 ArrayList LinkedList Vector Stack java.util.concurrent.CopyOnWriteArrayList Queue相关的默认容量以及扩容机制 java.util.concurrent.ArrayBlockingQueue 阅读全文
posted @ 2023-01-06 06:44 锐洋智能 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 首先,数组和集合的区别: 数组是大小固定的 集合可以存储和操作数目不固定的一组数据,集合只能存放引用类型的的数据,不能存放基本数据类型 特性 List 允许重复 有序 继承自Connection Set 不允许重复 无序 继承自Connection Map 键值对 区别与List和Set,既没有继承 阅读全文
posted @ 2023-01-05 10:20 锐洋智能 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 目录 一、简介 二、遍历方式 1、ArrayList遍历方式 (1)for循环遍历 (2)foreach循环遍历 (3)Iterator迭代器遍历 2、LinkedList遍历方式 (1)for循环遍历 (2)foreach循环遍历 (3)Iterator迭代器遍历 3、HashSet遍历方式 (1 阅读全文
posted @ 2023-01-05 10:09 锐洋智能 阅读(916) 评论(0) 推荐(0) 编辑
摘要: 1.扩容加载因子的系数小于等于1,意指 即当 元素个数 超过 容量长度*加载因子的系数 时,进行扩容。eg:加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容 2.内存泄漏(溢出)2.1. Q:在Java中怎么可以产生内存泄露?A:Java中,造成内存泄露的原因有很多种。典 阅读全文
posted @ 2023-01-05 09:56 锐洋智能 阅读(480) 评论(0) 推荐(0) 编辑
摘要: https://github.com/SeleniumHQ/selenium 官方升级说明中提示了改变了日志方式了 v4.7.2 * Grid: Support file downloads on the node (#11277)* Change chromium service names fr 阅读全文
posted @ 2023-01-04 08:32 锐洋智能 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 报错信息Starting ChromeDriver 108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016}) on port 22060Only local connections 阅读全文
posted @ 2023-01-03 19:41 锐洋智能 阅读(3822) 评论(0) 推荐(1) 编辑
摘要: 文档说明 Hutool参考文档 自定义线程池ExecutorBuilder在JDK中,提供了Executors用于创建自定义的线程池对象ExecutorService,但是考虑到线程池中存在众多概念,这些概念通过不同的搭配实现灵活的线程管理策略,单独使用Executors无法满足需求,构建了Exec 阅读全文
posted @ 2023-01-01 16:35 锐洋智能 阅读(717) 评论(0) 推荐(0) 编辑
摘要: 1 线程池基础 1.1 线程池是什么? 线程池,就是一个线程的池子,里面有若干线程,它们的目的就是执行提交给线程池的任务,执行完一个任务后不会退出,而是继续等待或执行新任务。案例如下图所示:首先创建了一个线程池,线程池中有 5 个线程,然后线程池将 10000 个任务分配给这 5 个线程,这 5 个 阅读全文
posted @ 2023-01-01 10:30 锐洋智能 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 简介说明 本文用示例介绍Java中阻塞队列(BlockingQueue)的用法。队列类型 BlockingQueue有这几种类型:ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、PriorityBlockingQueue、Delayed 阅读全文
posted @ 2023-01-01 10:25 锐洋智能 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 一、LinkedBlockingQueue介绍①、LinkedBlockingQueue是一个单向链表实现的阻塞队列,先进先出的顺序。支持多线程并发操作。相比于数组实现的ArrayBlockingQueue的有界,LinkedBlockingQueue可认为是无界队列。多用于任务队列。②、Linke 阅读全文
posted @ 2023-01-01 10:22 锐洋智能 阅读(248) 评论(0) 推荐(0) 编辑
摘要: TimeUnit.SECONDS(5)线程等待五秒 TimeUnit.MILLISECONDS(5000)线程等待五秒. 两者的时间单位不一样。 内部都是Thread.sleep实现。 public static TimeUnit toTimeUnit(final HBaseProtos.TimeU 阅读全文
posted @ 2023-01-01 10:19 锐洋智能 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 使用java HashMap和使用redisTemplate操作redis的时间性能差异对比 HashMap完胜,100000条key-value数据。 使用redisTemplate读取用时5775毫秒, HashMap用时6毫秒, 新建一个springboot工程,导入redis依赖 打开开发工 阅读全文
posted @ 2022-12-26 17:28 锐洋智能 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 集群中用Redis而不用 map/guava(本机快过redis) 做缓存为什么? 观点:map或者guava实现的是本地缓存 -> redis 分布式缓存 具体比较 Redis 可以实现分布式的缓存,Map 属于本地缓存,只能存在创建它的程序里 Redis 的缓存可以持久化,Map 是内存对象,程 阅读全文
posted @ 2022-12-26 17:22 锐洋智能 阅读(395) 评论(0) 推荐(0) 编辑
摘要: Redis为什么这么快 1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是O(1); 2、数据结构简单,对数据操作也简单,Redis 中的数据结构是专门进行设计的; 3、采用单线程,避免了不必要的上下 阅读全文
posted @ 2022-12-26 17:20 锐洋智能 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 苹果手机通话中黑屏是不需要设置的,但可以将通话黑屏感应关掉。方法分为3步,以iPhone12为例,步骤如下: 第1步 点击辅助功能 打开手机设置,进入设置界面,点击辅助功能。 第2步 点击显示与文字大小 进入辅助功能界面,点击显示与文字大小。 第3步 关闭自动亮度调节 最后将自动亮度调节关闭即可。 阅读全文
posted @ 2022-12-21 09:55 锐洋智能 阅读(9678) 评论(0) 推荐(0) 编辑
摘要: 如果给你一个包含一亿行数据的超大文件,让你在一周之内将数据转化导入生产数据库,你会如何操作? 上面的问题其实是小黑哥前段时间接到的一个真实的业务需求,将一个老系统历史数据通过线下文件的方式迁移到新的生产系统。 由于老板们已经敲定了新系统上线时间,所以只留给小黑哥一周的时间将历史数据导入生产系统。 由 阅读全文
posted @ 2022-12-18 10:40 锐洋智能 阅读(1037) 评论(0) 推荐(0) 编辑
摘要: /** * <B>创 建 人:</B>Administrator <BR> * <B>创建时间:</B>2022年12月18日 上午6:28:49<BR> * * @author ReYo * @version 1.0 */ import java.io.*; public class reyo { 阅读全文
posted @ 2022-12-18 06:29 锐洋智能 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 统计某文件的文本行数,常用的方法是通过BufferedReader类的readLine()方法递归遍历文件,从而间接地统计行数。然而对于大的文本文件,尤其是一些生信的测序文件,readLine()的方法显然不能让人满意,所以,通过查阅了一些资料,找到了一些更为高效的方法。测试文件选择了一个49850 阅读全文
posted @ 2022-12-18 06:19 锐洋智能 阅读(1137) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 31 下一页