Java底层原理
文章平均质量分 91
云里飞鸟轻轻摇摆
这个作者很懒,什么都没留下…
展开
-
注解原理剖析与实战
Java注解及其应用原创 2023-02-25 22:14:00 · 924 阅读 · 0 评论 -
#数据结构--基于双端链表实现双端队列
4.8.3.5 源码package com.yzh.maven.entity;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import com.yzh.maven.base.abstracts.MyQueueAbstract;import com.yzh.maven.base.da...原创 2019-05-04 19:29:43 · 575 阅读 · 0 评论 -
#数据结构--基于数组实现双端队列
4.8.4.6 源码package com.yzh.maven.entity;import java.util.ConcurrentModificationException;import java.util.EmptyStackException;import com.yzh.maven.base.abstracts.MyQueueAbstract;import com.yzh.ma...原创 2019-05-04 19:27:14 · 450 阅读 · 0 评论 -
#栈--基于链表实现栈
3.4.2.2 基于本地创建的链表实现栈package com.yzh.maven.entity;import com.yzh.maven.base.dao.MyStackDao;public class MyLinkedStack<E> implements MyStackDao<E>{ private int size; private MyDobbleL...原创 2019-05-04 19:22:43 · 300 阅读 · 0 评论 -
#面试--单链表常见面试题汇总
2.7.4.3.8.1 找出单链表中的倒数第k个元素,实现该方法这是一道经典的笔试题,其实实现该方法十分简单。直接找倒数第k个元素似乎不太容易,要想找出倒数第k个元素,我们可以从第k个元素和倒数第k个元素的关系来获取倒数第k个元素。该关系如下所示。从上图可以看出来,倒数第k个节点的索引 = size – (k+1)。所以方法实现如下:/**@functionName reverseGe...原创 2019-05-04 18:57:22 · 735 阅读 · 0 评论 -
#Java源码分析--LinkedList容器之实现单链表(2)
2.7.4.2单链表add方法的实现2.7.4.2.1循环法但是,从上面链表添加元素的操作来看,一点也不觉得优雅,而且它将所有的节点数据信息全部暴露给外部了。在Java中,将数据信息暴露给外部已经违背它的设计特点—封装的完整性。那么,如何进行改进呢?实际上,我们可以这样考虑,由于第一个节点可以表示为头节点.getNext(),第二个节点可以表示为头节点.getNext().getNext(),...原创 2019-05-04 18:39:12 · 247 阅读 · 0 评论 -
#Java源码分析--LinkedList容器(1)
2.7.1 链表的概念链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作。2.7.2 链表的分类从链表的实现方式可以把链表分为单链表,循环链表,双向链表...原创 2019-05-04 18:25:42 · 152 阅读 · 0 评论 -
#源码分析篇--Java集合操作(9)重写顺序表的toString()方法
2.6.12 重写顺序表的toString()方法默认情况下,普通类都是继承了Object超类的toString(),这个方法如下所示:public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode());}在打印某个对象时,其实是省略了toString(),因...原创 2019-01-02 02:19:00 · 631 阅读 · 0 评论 -
# 源码分析篇--Java集合操作(8)根据源码设计一个顺序表
2.6.6 get(int index)方法我们知道,顺序表中的get方法通过元素的索引获取底层数组的元素。我们可以把该方法理解为顺序表的查询操作,该方法返回元素范型类型,源代码如下所示:public E get(int index) { //范围检查rangeCheck(index);return elementData(index);}rangeCheck(index);方法...原创 2019-01-02 02:12:33 · 174 阅读 · 0 评论 -
源码分析篇--Java集合操作(7)自己实现一个add()方法
2.6.5 自己实现一个add()方法分析:add()方法涉及到扩容,扩容需要size(顺序表大小)、顺序表底层支持数组、默认容量大小以及默认的控元素数组四个必要属性,代码实现如下所示。package com.yzh.maven.main;/** * @className MyArrayList<E> * @description 创建一个顺序表 * @author yz...原创 2018-12-31 13:41:32 · 770 阅读 · 3 评论 -
源码分析篇--Java集合操作(6)顺序表的扩容原理
2.6.4 顺序表的扩容原理之add()方法的实现原理add()方法用于将元素动态添加到ArrayList容器中。将数据保存在list后,我们可以通过该list进行CRUD操作。我们知道,list(列表)的底层是由数组设计的,因此,数组具备了哪些优缺点,list就具备了哪些优缺点。我们知道,链表与数组是两种不同的数据结构,数据结构可以分为线性结构和非线性结构,在线性结构中,存储方式又分为连续存...原创 2018-12-31 13:35:18 · 556 阅读 · 0 评论 -
源码分析篇--Java集合操作(5)
2.6 ArrayList容器ArrayList类实现了List接口,它继承自AbstractList抽象类,继承机构如下所示:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Seri...原创 2018-12-31 13:23:37 · 158 阅读 · 0 评论 -
源码分析篇--Java集合操作(4)
2、List的实现类List是一个接口,继承自Collection接口,包为java.util.*,由于继承的特性,因此,List接口具有了Collection接口的全部方法。但是,List本身又重新定义了这些方法:int size();boolean isEmpty();boolean contains(Object o);Iterator iterator();Object[] t...原创 2018-12-31 12:57:11 · 134 阅读 · 1 评论 -
源码分析篇--Java集合操作(3)
二、Collection接口Collection是一个集合顶层接口,位于java.util包下,继承了Iterable接口, public interface Collection extends Iterable { Iterable接口只有一个iterator()方法,如下所示。public interface Iterable<T> { /** * Ret...原创 2018-12-31 12:35:14 · 144 阅读 · 0 评论 -
源码分析篇--Java集合操作(2)
4、两大集合接口在Java集合中,有两大集合,一个是Collection接口及其实现类,另一个是Map接口及其实现类。下面给出这两种集合的框架图。如下所示。4.1Collection接口框架图4.2Map接口框架图从上面两个框架图可以看出,Cllection接口和Map接口是两大顶层接口。二者最为显著的区别是:Cllection接口的实现类及其子类的元素都是单一的,不可分割的元素,而M...原创 2018-12-31 12:27:40 · 158 阅读 · 0 评论 -
源码分析篇--Java集合操作(1)
一、集合框架1、集合框架体系图2、集合的概念 Java集合是使程序能够存储和操纵元素不固定的一组数据。 所有Java集合类都位于java.uti包中。与Java数组不同,Java集合中不能存放基本数据类型,只能存放对象的引用。但是在JDK5.0以后的版本当中,JAVA增加了“自动装箱”和“自动拆箱”的机制,比如如果要存入一个INT类型的数据,JVM会把数据包装成Integer然后再存入集合...原创 2018-12-31 12:16:12 · 174 阅读 · 0 评论 -
#Java集合框架--ArrayList容器的构造器
ArrayList类实现了List接口,它继承自AbstractList抽象类,继承机构如下所示:public class ArrayList extends AbstractListimplements List, RandomAccess, Cloneable, java.io.Serializable其中,AbstractList抽象类的继承结构如下所示:public abstrac...原创 2018-12-10 23:14:13 · 862 阅读 · 0 评论 -
#底层原理&经典面试题--Integer类型的大小比较
(1)Integer i = 156;Integer j =156;if(i == j)System.out.println(true);System.out.println(true);(2)Integer i1 = 126;Integer j1 = 126;if(i1 == j1)System.out.println(true);System.out.println(tr...原创 2018-11-11 07:02:44 · 695 阅读 · 0 评论