变量
任何语言都有变量
Java
基本数据类型
局部变量/全局变量
集合
存储变量
线性表 List
ArrayList(数组长度可变,默认的初始化长度是10,底层是objdct数组)
LinkedList (链表)数组
使用场景:在频繁更新,插入时使用链表,访问时使用数组(通过index直接访问)
线程安全:CopyOnWriteArraylist
-
两者都是有序的,且元素的迭代顺序与插入顺序一致。
-
选择依据:
-
ArrayList
:适合频繁随机访问(如通过索引读取元素)的场景。 -
LinkedList
:适合频繁插入/删除元素(如在中间或头部操作)的场景
-
Map K-V
HashMap LinkedHashMap
HashMap 底层: 数组 + 链表 哈希冲突 拉链法
当我们put一个a时,通过哈希算法,会算出来一个哈希值,然后根据哈希值算出来一个位置,将这个a放在这个位置,如果以后有别的类属于b,c,d,算出来的哈希值,位置值和a一样,这些数据不会覆盖,会变成链表排在后面,当排列的多了之后就会性能下降,于是变成红黑树
线程安全:
HashTable(底层是synchroniz加锁)
ConcurrentHashMap 底层是CAS(Conmpare And Swap / 比较和交换)+分段锁 实现 锁的粒度越小性能越好
异常
异常处理机制,处理程序出现问题的解决方案
反射
实现框架
动态的获取类的一些信息,包括方法,构造器,属性,方法
IO
input/output
输入输出流
文件
线程
进程的最小的工作单元
面向对象
封装
继承
子类继承父类
多态
多种形态,一个接口有多个实现类