![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
laoyog
看向远方。
展开
-
java线程的创建(重点:线程池的使用,线程池不允许使用Executors创建)
在上文中,线程共有6种状态,下面主要熟悉线程的创建,即由NEW到RUNNABLE的过程。java创建线程的方式一般有四种,而项目中,一般是使用线程池,所以重点在线程池的使用。1. 继承Thread2. 实现Runnable接口3. 使用Callable和Future4. 线程池1. Threadpublic class MyThread extends Threa...原创 2019-07-19 19:29:21 · 1293 阅读 · 0 评论 -
通过自定义一个HashMap来学习HashMap的数据结构
写在最前:首先要搞清楚HashMap的数据结构是怎样的,它是用来解决什么问题的,以及该数据结构中体现javabean结构的成员变量,有参/无参构造,成员方法等是如何定义的。本文所写的数据结构模拟的是jdk7,数组+链表。jdk8的红黑树只是优化链表,后续更新。可以参考下我之前的文章:《HashMap源码分析(jdk8)》我们先思考几个问题:1. 有哪些成员变量?各自的默认值是什么...原创 2019-11-25 12:17:51 · 449 阅读 · 0 评论 -
HashMap源码分析(jdk8)
1. 数据结构JDK 1.7 之前 HashMap 是数组+链表 JDK 1.8 之后 HashMap 是数组+链表+红黑二叉树2. 源码2.1 成员变量 //默认容量大小为16. 必须是2的次幂 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //HashMap 的最...转载 2019-07-15 15:53:21 · 383 阅读 · 0 评论 -
==和equals的区别上折射的源码以及问题分析
本文通过两个变量使用==和equals方法的区别,通过源码以及jvm存储结构来分析来获取多个知识点。一. 基本数据类型之间的比较二. 引用数据类型的比较三. 对应源码分析四. 引申hashCode五. 其他映射问题原创 2019-07-12 16:31:30 · 184 阅读 · 0 评论 -
ArrayList和LinkedList数据结构的区别(jdk1.8)
首先,查看这两种数据结构在源码中是怎样定义和实现的ArrayList源码解析:参考《ArrayList源码分析(基于JDK8)》;LinkedList源码解析:参考《LinkedList源码分析(基于JDK8)》我摘取了一些常见的方法的实现方式ArrayList成员变量//父类AbstractList中的变量,此变量表示ArrayList集合的修改次数,如扩容次数//...原创 2019-07-22 16:13:15 · 1279 阅读 · 1 评论