Java基础练习 —补充的小知识(不定期更新)
190420 — 包
-
java.lang
:基础常用,如System
、String
、StringBuilder
、Thread
、Object
。 -
java.util
:工具类,如Scanner
、Date
、Calendar
、Collection
、Map
。 -
java.text
:格式化工具,如DateFormat
。 -
java.io
:数据的输入输出,input
、output
。 -
java.net
: 网络编程,TCP/IP协议,Socket
套接字,URL。 -
java.sql
:数据库相关。
190504 — 数据结构
集合 -> 可变长的数组
数据结构:顺序结构、链表(链式结构)
1. 顺序结构
顺序结构:按顺序排列,每个元素都是带标号的
除了标号是连续内存中的物理空间也是连续的
底层使用数组实现 -> 集合功能
顺序结构的集合:-> 可扩容的数组
存储数据:list.add()
获得数据:list.get()
删除数据:list.delete()
修改数据:list.set()
————————
优点:查询快
缺点:插入删除慢,需要连续的物理空间,空间使用率低
2.链表
线性,空间不连续,没有标号,只有头结点
- JDK——>
LinkedList
- 底层实现:结点(数据+下一个结点的引用)
- 所有结点的访问,只能从头结点开始
- 头结点:只有
next
,没有数据的 - 空链表:
head.next = null
2.1 单向链表
单向链表:Node
- next
只能从head
开始往下寻找
2.2 双向链表
双向链表:可以从头开始,也可以从尾开始
-
node
-next/pre
,可以从head
,还可以从foot
开始 -
head
:不存元素,只有next
-
foot
:不存元素,只有pre
2.3 循环链表
循环列表:任何一个位置开始,都可以找到想要的元素
————————
优点:插入/删除 速度快,不需要连续的物理空间,空间利用率高
缺点:查询效率极低
总结:顺序结构 +链式结构 ——> 线性结构(固定顺序)
3.树状结构 -> 二叉树
还未习得。
4.栈、队列、双端队列 —> 线性结构(顺序结构)
数据、结点 方式实现
5.散列表 -> 无序 -> 哈希值 hashCode()
Java中的单位:类(Class
)、接口(Interface
)、枚举(Enum
)、注解(Annotation
)、数组
Java中的数据结构的实现 -> 集合 java.util