java基础
文章平均质量分 96
java基础知识笔记
sun_abcd
这个作者很懒,什么都没留下…
展开
-
Java Stream原理
文章目录一、简介二、原理2.1 如何保存操作?2.2 如何形成流?2.3 如何执行?参考一、简介流操作可以分为中间操作和结束操作。中间操作分为:无状态操作(map、fliter、skip等等)和有状态操作(需要得到所有元素才能进行,例如limit、sorted、distinct)结束操作分为:短路操作(遇到符合条件的元素就终止,如findFirst、anyMatch、findAny)和非短路操作(需要得到所有元素才能进行,如collect、max、count、forEach等)Stream的实原创 2021-03-20 14:57:40 · 3704 阅读 · 3 评论 -
Java容器源码学习-------ArrayList源码
一、简介ArrayList底层是数组,但是可以动态扩容。初始容量为10,每次扩容到1.5倍容量。当我们使用无参构造器创建ArrayList()实例后,实际上创建的是一个空数组,只有当真正往数组中放元素时才会真正分配容量,即向数组添加第一个元素时,数组扩容为10。后面只有数组放不下了,才会继续扩容。二、核心源码:Add: /** * 将指定的元素追加到此列表的末尾。 */ public boolean add(E e) { //添加元素之前,先调用ensureCa原创 2020-10-10 21:48:52 · 124 阅读 · 0 评论 -
Java容器源码学习-------LinkedList源码
一、简介LinkedList底层是一个双端队列,同时实现了Deque接口,所以LinkedList也具有队列的特性。内部的每个元素都是一个Node,其定义如下:private static class Node<E> { E item;//节点值 Node<E> next;//后继节点 Node<E> prev;//前驱节点 Node(Node<E> prev, E element, No原创 2020-10-10 21:16:01 · 102 阅读 · 0 评论 -
Java容器源码学习-------HashSet源码
一、HashSet简介HashSet是常用的容器类之一,底层为HashMap,往HashSet中存储元素实际上相当于将该元素作为HashMap的key存入到HashMap中,value统一为一个空对象。由于HashMap的key不能重复,所以Set中不能存放相同的元素。二、源码package java.util;import java.io.InvalidObjectException;import jdk.internal.access.SharedSecrets;public clas原创 2020-10-10 20:51:10 · 115 阅读 · 0 评论 -
java容器源码学习-------HashMap源码
一、HashMap简介基本结构:HashMap主要用来存放键值对。JDK1.8以前底层实现为数组加链表的形式,具体表现为一个Node数组,数组中的每个元素存储链表的第一个节点,链表主要为了解决哈希地址冲突(即拉链法)。JDK1.8后底层实现为数组加链表/红黑树的形式,当链表元素达到8个以后,会转换为红黑树 (在将链表转化为红黑树之前,首先判断数组的长度是否超过了64,如果没超过64,首先进行数组扩容,然后将元素重新hash到数组中)。HashMap中的每个元素都是一个Node,Node保存了自身的原创 2020-10-10 19:50:13 · 115 阅读 · 0 评论 -
Java需要注意的一些小知识点
一、Integer缓存问题Integer会缓存 -128到127之间的数值,这个区间内的对象会被复用。//EGpublic class Tset{ public static void main(String[] args){ Integer a = 100; Integer b = 100; Integer c = 1000; Integer d = 1000; System.out.println(a == b); System.o原创 2020-10-09 08:53:40 · 607 阅读 · 0 评论