Java
戒不掉的码瘾
业精于勤,荒于嬉;骐骥一跃,不能十步;驽马十驾,功在不舍
展开
-
集合(三)HashMap源码分析
集合(一)扒掉ArrayList的外衣集合(二)走进LinkedList的内心集合(三)HashMap背后的故事前两篇学习了ArrayList和LinkedList的源码,一个是数组一个是双向链表,今天一起来看看HashMap(Jdk1.8)。HashMap的数据结构是什么样呢我们直接先看其put方法来看它是把数据放在什么结构内的。这里我们看有一个hash(ke...原创 2020-03-31 10:28:00 · 179 阅读 · 0 评论 -
集合(二)LinkedList源码分析
LinkedList是什么?* Doubly-linked list implementation of the {@code List} and {@code Deque}* interfaces. Implements all optional list operations, and permits all* elements (including {@code null})....原创 2020-03-30 14:33:08 · 131 阅读 · 0 评论 -
集合(一)ArrayList源码分析
ArrayList是什么?颤抖的小手敲开门ArrayList的大门,发现她竟然是Object[] elementData数组。我们知道数组的长度是有限制的,那ArrayList是如何实现的ArrayList构造函数有无参和有参,无参...原创 2020-03-27 11:12:55 · 146 阅读 · 0 评论 -
Android面试(一)Java虚拟机内存结构分析
1、Java虚拟机内存结构模型Java虚拟机内存模型区域分:JVM堆、方法区、虚拟机栈、本地方法栈、程序计数器。JVM堆:所有线程共享的运行时内存区域,是GC回收的主场所,Java堆保存Java的实例对象,从内存回收对象的存活来分析,堆又可以分为新生代、老年代。方法区:方法区是线程共享的运行时内存区域,存储虚拟机加载的类的结构信息,如常量、方法、属性字段、静态变量等。虚拟机栈:线程...原创 2020-03-17 18:03:04 · 262 阅读 · 0 评论 -
Java位非~运算符详解
在java中int数据类型一般是四个字节,一个字节8位,一个完整的int类型是32位。在计算机内是以二进制进行存储的,计算机在存储某个数据时,是存储的数据的补码。补码与原码关系:正数补码与原码相同,负数补码是原码减1后取反。例如:5原码是:00000000 00000000 00000000 00000101补码是:00000000 00000000 00000000 0000...原创 2019-05-29 11:06:34 · 4353 阅读 · 1 评论 -
Java位运算符
1、位异或(^)运算规则:两个数转为二进制,然后从高位开始比较,如果相同则为0,不相同则为1。例如:3^53的二进制:00115的二进制:0101计算结果二进制:0110 十进制:62、位与(&)运算规则:两个数都转为二进制,然后从高位开始比较,如果两个数都为1则为1,否则为0。例如:3&53的二进制:00115的二进制:0101计算结...原创 2019-05-29 09:28:12 · 158 阅读 · 0 评论 -
Java多线程:彻底搞懂线程池
熟悉Java多线程编程的同学都知道,当我们线程创建过多时,容易引发内存溢出,因此我们就有必要使用线程池的技术了。目录1 线程池的优势2 线程池的使用3 线程池的工作原理4 线程池的参数4.1 任务队列(workQueue)4.2 线程工厂(threadFactory)4.3 拒绝策略(handler)5 功能线程池5.1 定长线程池(FixedThreadP...转载 2019-08-16 16:14:16 · 435 阅读 · 0 评论