随笔分类 - Java
摘要:概念 父结点:当一个结点有子节点,该结点称为其的父结点 子节点:一个结点含有的子树的根结点称为该结点的子结点 兄弟结点:拥有相同父结点的结点互称为兄弟结点 结点的度:一个结点拥有的子树的个数称为该结点的度 树的度:一棵树中,最大的结点度称为树的度 结点层次:从根开始算,根为第一层,根的子结点为第二层
阅读全文
摘要:简介 Redis(Remote Dictionary Server)是一个开源的内存数据库,遵守 BSD 协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景 特点 丰富的数据类型:Redis 不仅仅支持简单的 key-value 类型的数据,还提供
阅读全文
摘要:在学习LinkedList之前先来了解一下链表 链表 概念 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序通过链表中的指针链接次序实现的 图中的1、2、3、4、5都是结构体,称为结点;结构体包含所存的数据和下一结点的地址。顺序表中的地址是连续的,而链表中的地址是随机分配的 头结
阅读全文
摘要:我这里阅读的是JDK17关于ArrayList的源码,不过思路都是一样的 简介 ArrayList 是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。 ArrayList 继承了 AbstractList ,并实现了 List 接口。 属性设置 // 序列
阅读全文
摘要:什么是Docker Docker是一个开发、交付和运行应用程序的开放平台 Docker允许将应用程序与基础设施分开,以便快速交付软件。使用Docker,可以像管理应用程序一样管理基础设施。利用Docker交付、测试和部署代码,可以显著减少编写代码和生产环境中运行代码的延迟 容器 轻量的虚拟化技术,目
阅读全文
摘要:Java 锁 Java 中的锁是在多线程环境下,保证共享资源健康,线程安全的一种手段 线程操作某个共享资源之前,先对资源加一层锁,保证操作期间没有其他线程访问资源,操作完成后再释放锁 保持数据一致性的方法 事务管理:使用数据库事务来确保一组数据库操作要么全部成功提交,要么失败全部回滚 锁机制:使用锁
阅读全文
摘要:线程和进程 进程就是一个内存中运行的应用程序 线程是当前进程中的一个执行任务(控制单元),负责当前进程中程序的执行 区别与联系 根本区别:进程是操作系统资源分配的基本单位,线程是处理器任务调度和执行的基本单位 包含关系:一个进程可以有多个线程,至少有一个 内存分配:同一进程的线程共享本进程的地址空间
阅读全文
摘要:Collection 接口 Collection接口常用方法 boolean add(E e):在集合末尾添加元素 boolean remove(Object o):若集合中存在与o相同的元素,则删除,然后返回true void clear():清空集合内的所有元素 boolean contains
阅读全文
摘要:集合(一) 数组和集合的区别 数组是固定长度的数据结构,而集合是动态的数据结构 数组可以包含基本数据类型和对象,集合只能包含对象 数组只能存放同一类型的数据,而集合可以蹲房不同类型的 数组可以直接访问元素,集合需要通过迭代器或其他方法访问元素 集合的分类 根据上图,可以看出,Java中集合的核心就是
阅读全文
摘要:泛型 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 理解 为了可以进一步理解泛型,我们先来看一个问题 需求: 编写一个程序,在ArrayList中添加三个对象,类中要有name、age属性,输出对象的name、age属性 首先,我们先用传统方法进行编写 package
阅读全文
摘要:动态语言 动态语言,是指程序在运行时可以改变其结构(新函数可以引进,已有的函数可以被删除等结构上的变化)。如:JavaScript、Python就属于动态语言,而C、C++则不属于动态语言,从反射的角度说,Java属于半动态语言。 反射 反射就是在运行状态时,对任意一个类,都能知道类中的属性和方法,
阅读全文