1-集合介绍 介绍汇总: 为啥要使用集合 集合的框架体系 Collection方法 1-为啥要使用集合 之前保存多个数据使用的是数组,那么数组有不足的地方,如下 长度开始时必须指定,而且一旦指定,不能更改 保存的必须为同一类型的元素(可以使用多态,保存多种类型数据) 数组进行扩容比较麻烦,添加或删除元素比较麻烦 那么集合可以带来怎样的好处呢 可以动态保存任意多个对象,使用比较方便(有自动扩容机制) 提供了一系列方便的操作对象的方法:add、remove、set、get等 集合添加或删除新元素比较容易 2-集合的框架体系 Java的集合类主要分为两大类 单列集合 从图中可以得...

  GhVAIYoOwL0A   2024年08月07日   25   0   0 Java

2-ArrayList底层结构和源码分析 介绍汇总: ArrayList的注意事项 ArrayList的运行重要步骤 补充 1-ArrayList的注意事项 ArrayList允许添加所有的元素,包括null,而且还可以多个null。 ArrayList是由数组来实现数据存储的。 ArrayList基本等同于Vector,除了ArrayList是线程不安全(执行效率高)看源码。在多线程情况下,不建议使用ArrayList。 //此为ArrayList的插入数据的方法 //该方法并没有关键字synchronized修饰,可以表明ArrayList是线程不安全的 //synchronize...

  GhVAIYoOwL0A   2024年08月07日   51   0   0 Java

3-Vector底层结构和源码分析 介绍汇总: Vector的基本介绍 Vector的运行重要步骤 底层结构和ArrayList的比较 1-Vector的基本介绍 定义说明 Vector底层也是一个对象数组,protectedObject[]elementData; Vector是线程同步的,即线程安全,Vector类的操作方法带有synchronized。 publicsynchronizedEset(intindex,Eelement){ if(index>=elementCount) thrownewArrayIndexOutOfBoundsException(ind...

  GhVAIYoOwL0A   2024年08月07日   29   0   0 Java

4-LinkedList底层结构和源码分析 介绍汇总: LinkedList的全面说明 LinkedList的底层操作机制 LinkedList的运行重要步骤 ArrayList和LinkedList比较 1-LinkedList的全面说明 LinkedList底层实现了双向链表和双端队列特点 可以添加任意元素(元素可以重复),包括null 线程不安全,没有实现同步 2-LinkedList的底层操作机制 LinkedList底层维护了一个双向链表。 LinkedList中维护了两个属性first和last分别指向首节点和尾节点。 每个节点(Node对象),里面又维护了prev、ne...

  GhVAIYoOwL0A   2024年08月07日   42   0   0 Java

5-Set接口和常用方法 介绍汇总: Set接口基本介绍 Set接口的常用方法 Set接口的遍历方式 实践练习 1-Set接口基本介绍 无序(添加和取出的顺序不一致),没有索引 不允许重复元素,所以最多包含一个null 2-Set接口的常用方法 和List接口一样,Set接口也是Collection的子接口。因此,常用方法和Collection接口一样。 3-Set接口的遍历方式 同Collection的遍历方式一样,因为Set接口是Collection接口的子接口。 可以使用迭代器 增强for循环 不能使用索引的方式获取(普通for循环方法) 4-实践练习 Setset=new...

  GhVAIYoOwL0A   2024年08月07日   68   0   0 Java

6-HashSet底层结构和源码分析 介绍汇总: HashSet的全面介绍 HashSet底层机制说明 HashSet实践练习 1-HashSet的全面介绍 HashSet实现了Set接口 HashSet实际上是HashMap(源码) publicHashSet(){ map=newHashMap<>(); } 可以存放null值,但是只能有一个null HashSet不保证元素是有序的,取决于hash后,在确定索引的结果。 不能有重复元素、对象。 实践练习 HashSethashSet=newHashSet(); hashSet.add("lucy");//可以加...

  GhVAIYoOwL0A   2024年08月07日   41   0   0 Java

7-LinkedHashSet底层结构和源码分析 介绍汇总: LinkedHashSet全面说明 LinkedHashSet底层机制说明 1-LinkedHashSet全面说明 LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组+双向链表。由于LinkedHashMap是继承HashMap的所有特性的,其双向链表是在原本的数据结点上加上了before和after指针,并且也不破坏原来HashMap中链表和红黑树的结构,来完成实现双向链表的。 LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使用链表维护元素的次序,这就保证元...

  GhVAIYoOwL0A   2024年08月07日   44   0   0 Java

8-Map接口和常用方法 Map与Collection并列存在。用于保存具有映射关系的数据:Key-Value Map中的key和value可以是任何引用数据类型,会封装到HashMap$Node对象中 Map中的key不允许重复 Map中的value可以重复 Map的key可以为null,value也可以为null,注意key为null,只能有一个,value为null,可以多个。 常用String类作为Map的key key和value之间存在单向一对一关系,即通过指定的key总能找到对应的value 遍历存储的Key-Value数据结点,是通过视图(EntrySet、Values、Ke...

  GhVAIYoOwL0A   2024年08月07日   29   0   0 Java

9-HashMap底层结构和源码分析 1-HashMap底层结构说明 HashMap底层维护的是数组+链表+红黑树,(jdk7版本的HashMap底层实现(数组+链表),jdk8版本底层实现(数组+链表+红黑树))。 数组中存放的是HashMap的内部类Node(实现Map.Entry<K,V>)数据结点。 扩容机制 HashMap底层维护了Node类型数组table,默认为null。 当创建对象时,将加载因子(loadfactor)初始化为0.75。 当添加Key-Value时,通过Key的哈希值得到在table中的索引。然后判断该索引处是否有元素,如果没有元素直接添加。如果...

  GhVAIYoOwL0A   2024年08月07日   73   0   0 Java

10-Hashtable底层结构和源码分析 介绍汇总: Hashtable的基本介绍 Hashtable底层机制说明 Hashtable和HashMap对比 1-Hashtable的基本介绍 存放的元素是键值对:即K-V Hashtable的键和值都不能为null,不然后抛出NullPointerException异常 Hashtable使用方法基本上和HashMap一样 Hashtable是线程安全的,HashMap是线程不安全的 2-Hashtable底层机制说明 Hashtable中维护的是数组+链表,来进行数据存储 Hashtable初始化 注:从初始流程图中,可以发现...

  GhVAIYoOwL0A   2024年08月07日   59   0   0 Java

11-Properties基本介绍 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存数据。(因为继承Properties,所以键值对不可以为null) Properties类使用特点和Hashtable类类似,但是请注意Properties类的键值类型都为String。虽然可以直接调用父类put和get方法,但是Properties类本身是为了处理字符串键值对,所以调用setProperty和getProperty方法。 Properties类可以用于从以.properties为文件格式的文件,将其中的数据加载到Properties类对象,...

  GhVAIYoOwL0A   2024年08月07日   31   0   0 Java

12--开发中如何选择集合实现类 开发中,选择什么集合实现类,主要取决于业务操作特点,然后根据集合实现类特性进行选择,分析如下: 先判断存储的类型(一组对象或一组键值对) 一组对象:Collection接口 允许重复:List接口 增删多:LinkedList【底层维护了一个双向链表】 改查多:ArrayList【底层维护Object类型的可变数组】 不允许重复:Set接口 无序:HashSet【底层是HashMap,维护了一个哈希表,即(数组+链表+红黑树)】 排序:TreeSet 插入与取出顺序一致:LinkedListHashSet,维护数组+双向链表 一组键值对:Map接...

  GhVAIYoOwL0A   2024年08月07日   42   0   0 Java

13-TreeSet和TreeMap基本介绍 介绍汇总: TreeSet基本介绍 TreeMap基本介绍 1-TreeSet基本介绍 TreeSet类用于存储一组对象,并将对象按照自然规则(实现Comparator接口的)或者指定Comparator对象的比较器进行排序。 TreeSet类中的底层是TreeMap。 key值不可以为null,也不可以重复。 自然规则排序和指定比较器排序 //无参构造器,使用元素的自然规则排序 publicTreeSet(){ this(newTreeMap<E,Object>()); } //指定比较器的构造器,按照该比较器中的规则进行...

  GhVAIYoOwL0A   2024年08月07日   49   0   0 Java

数据库三大范式的学习与数据库表设计的了解 内容简单介绍 对于数据库三大范式的理解以及一些设计表示要注意的方面 本章内容梳理图 数据库三大范式比较官方的定义 数据库的三大范式(NormalForms)是关系数据库设计中用于确保数据结构化、减少数据冗余、并提高数据完整性的指导和规则。 以下是三大范式的简述: 第一范式(1NF) 定义:如果关系模式R的每个属性都是不可分的数据项,则R∈1NF。简单来说,就是表中的每个字段都是最基本的单元,不可再分。 目的:消除字段中的重复组和确保每个字段的原子性。 注意:在现代的关系型数据库管理系统中,通常都默认满足第一范式。 第二范式(2NF) 前提:满足...

  GhVAIYoOwL0A   2024年03月27日   84   0   0 MySQL

作者本人使用的是vmware17Pro虚拟机,大家可以去网上找相关教程下载安装,此总结后边有多次安装遇到的bug,要是有地方不妥,欢迎相互交流 在刚开始时,我们先部署的是Linux虚拟机,在设置Linux系统基础环境时,系统就基本具有一些网络服务功能,差不多类似于现实中大型的服务器,还有设置网络这一块,把ip设成了静态的,这样我们在访问该虚拟机不用每次看它自动分配的地址了,还有就是DNS服务器,这里是用到了公共的DNS服务器。下边先解释下DNS。 DNS,全称为DomainNameSystem(域名系统),是互联网的一项核心服务,它作为分布式数据库存储和管理了全球网络资源的域名与IP地址之间的...

  GhVAIYoOwL0A   2024年03月20日   153   0   0 MySQL

作为一个Java学习者,学习不同版本的jdk,我觉得还是挺必要的,了解其中的新特性,所以这篇我写了关于对于不同版本的jdk使用安装与切换,请放心食用,实在不懂可以联系作者为你解答先来说一下安装这两个jdk的过程:8版本安装是会安装两次,先是jdk,然后是jre,所以我们在这个文件夹中有两个关于同一版本的文件夹jdk-8u401和jre-8u40111版本安装只安装一次,所以就一个文件夹jdk-11.0.22下方是一个我双版本的jdk安装目录示意图 接下来说一下安装jdk遇到的问题:这次安装是把之前的jdk完全删除后重新安装的,这个删除包括控制面板的基本卸载,C盘中programfiles两个文...

  GhVAIYoOwL0A   2024年03月19日   102   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~