java
文章平均质量分 87
永不止步——
广交朋友。
展开
-
java手写HashMap
手写HashMapJDK1.7 的HashMap 是基于,数组和单向链表实现。大致原理是:当put的元素的时候,根据key的值和数组的大小,获取该元素在数组中存入的位置,如果当前位置是空,直接添加一个节点。反之,遍历链表进行添加或者修改。HashMap的扩容机制是,当容器内存储的元素个数大于,负载因子和数组的大小的乘积的时候,进行扩容,默认是2倍。并且需要重新,计算数组中的元素的位置。p...原创 2020-02-05 17:03:45 · 219 阅读 · 0 评论 -
java手写LinkedList
手写LinkedListLinkedList 的底层实现是一个双向链表,内部维护一个,start节点和一个end节点。start节点是用来查询,通过,start.next.next…获取。end节点是用来添加,每次新增元素直接新建节点放到end的后面,使其成为新的end。package com.work.one.listUtils.impl;import com.work.one.li...原创 2020-02-05 17:01:57 · 226 阅读 · 0 评论 -
Java手写ArrayList
手写ArrayListArrayList 是基于数组的实现,底层主要的难点是,数组移动,实现数组的删除或者添加,核心方法是,System.arraycopy(elementData, index, elementData, index + 1, size - index);代码实现,首先定义公共的接口:public interface MyList<E> { ...原创 2020-02-05 17:00:36 · 148 阅读 · 0 评论 -
主线程等待其他线程处理完毕, 获取其他线程的结果通知,类似于 Future 的用法,基于wait 和 notify的用法
代码实现如下:package blockque;/** * * 主线程等待其他线程处理完毕, * 获取其他线程的结果通知, * 类似于 Future 的用法 * */public class TestWait { public static void main(String[] args) { RequestData requestData = n...原创 2020-01-10 17:29:03 · 219 阅读 · 0 评论 -
java并发编程专题
线程池原理分析并发包(计数器)CountDownLatchCountDownLatch 类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自...原创 2020-01-09 16:30:24 · 161 阅读 · 0 评论 -
Java生产者和消费者队列
package blockque;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.TimeUnit;public class Test { public static void main(S...原创 2020-01-09 14:28:57 · 363 阅读 · 0 评论 -
maven添加依赖
1、提取需要的jar文件,并cmd 转到maven bin目录假设要添加的jar包是jbarcode-0.2.8.jar,可执行如下:2、mvn install:install-file -Dfile=F:\jbarcode.jar -DgroupId=com.mycompany.myproduct -DartifactId=abc -Dversion=1.0 -Dpackaging=j...原创 2019-11-12 17:17:18 · 1078 阅读 · 0 评论 -
Centos7上安装jdk1.8
qweqwee原创 2019-06-05 16:34:07 · 80 阅读 · 0 评论