java基础回顾
2019-06-10 11:59:50 0 举报
AI智能生成
java基础知识回顾
作者其他创作
大纲/内容
多线程
synchronized
java.util.concurrent
锁
Exchanger
CountDownLatch
CyclicBarrier
Callable/Future
Semaphore
Condition
ReentrantReadWriteLock
ReentrantLock
阻塞队列
ArrayBlockingQueue
LinkedBlockingQueue
线程池
Executors
原子操作
AtomicXXX
创建线程
继承Thread
实现Runable接口(推荐,符合面向对象思想,有效避免多继承问题)
static/final
static的用法
静态变量
静态方法
静态代码块
静态内部类
静态导包
final的用法
修饰类时,表明类不可被继承,与abstract以及interface互斥
修饰方法时,表明方法不能被覆盖重写
修饰参数时,表明不能被修改
修饰属性时,表明一经初始化便不能被改变
内部类
只有静态内部类才能使用静态属性
内部类访问可访问外部类成员变量
异常
Throwable
Exception
RuntimeException
ArithmeticException
ClassCastException
IIIegalArgumentExcetion
IIIegalStateExcetion
IndexOutOfBoundsException
NoSuchElementException
NullPointerException
ClassNotSupportedException
ClassNotFoundException
IOExceptiion
EOFException
FIleNotFoundExcetion
MalformedURLException
UnkownHostException
Error
JVM底层原理
内存结构
常用的GC算法
类的加载机制
JVM调优
数据库
mysql
mongodb
redis
Java Web
Servlet
Struts
Spring Mvc
面向对象三特性
封装
将实现细节隐藏起来,数据更加安全
继承
复用的重要手段
父子类强耦合关系,打破了封装
多态
同一行为具有多种不同表现形式或形态的能力
继承
重写
继承父类便可重写父类方法
具有比父类相同乃至更高的访问权限
只能比父类抛出更少的异常
重载
参数类型不同
参数个数不同
参数顺序不同
向上转型
屏蔽父子类的差异
数据类型
内置数据类型
byte
short
char
int
float
double
long
boolean
引用类型
String
类被final修饰,不可被继承,内部使用final char数组存储,因此字符一经创建不允许被修改,
发生内容改变,实质是创建了新的String对象
发生内容改变,实质是创建了新的String对象
String str=null未被分配内存,String str=""分配了内存
关于比较 == 比较的是地址,equals(...)比较的是内容
StringBuffer/StringBuilder
StringBuffer 线程安全
"+"号连接字符串会被编译器优化成StringBuilder
字符串常量池
数组
固定大小
内存分配是一片连续的空间
是一种特殊的对象
对象
初始化
1. 父类静态代码块
2. 子类静态代码块
3. 父类构造代码块
4. 父类构造方法
5. 子类构造代码块
6. 子类构造方法
自动类型转换
byte,short,char—> int —> long—> float —> double
集合类
Map
HashMap
数组+链表
java8 数组+链表+红黑树
初始容量16,加载因子0.75
Hashtable
和HashMap结构类似,但继承之前的Dictionary类,线程安全的
TreeMap
基于红黑树算法实现,左旋右旋
ConcurrentHashMap
结合了HashMap和Hashtable的优势,Hashtable是悲观锁(整个方法都被synchronized),效率低下,而ConcurrentHashMap将hash结构分成16个桶,每个桶拥有自己的锁,将锁更加细粒化
Properties
继承自Hashtable
Collection
Set
HashSet
容器HashMap
TreeSet
容器TreeMap
LinkedHashSet
继承自HashSet
List
ArrayList
基于数组实现,插入删除需要开辟新的内存空间,并拷贝旧数组(Arrays.copyOf(...)),耗时,
查询可通过索引查询,故查询快,插入慢,扩容 1.5capacity
查询可通过索引查询,故查询快,插入慢,扩容 1.5capacity
初始容量10,加载因子0.5
LinkedList
基于链表实现,插入删除不需要执行复制操作,查询需要遍历整个链表,故查询慢,插入快
Stack
继承Vector,进一步封装,线程安全 2capacity
Vector
基于数组实现,和ArrayList具有相同特性,唯一不同的就是它是线程安全的,动态扩容未指定则为2capatity, 指定了就capacity+inc
初始容量10,加载因子1
框架学习
Spring
SpringMvc
SpringBoot
Struts2
Mybatis
Hibernate
中间件
Memcached
Redis
消息队列
RabbitMq
RocketMq
kafka
activeMq
zeroMq
设计模式
创建型
单例模式
原型模式
工厂方法模式
抽象工厂模式
建造者模式
结构型
代理模式
适配器模式
桥接模式
装饰模式
外观模式
享元模式
组合模式
行为型
模板方法模式
策略模式
命令模式
职责链模式
状态模式
观察者模式
中介者模式
迭代器模式
访问者模式
备忘录模式
解释器模式
算法
排序算法
冒泡排序
快速排序
查找算法
二分查找
设计原则
开闭原则
里斯替换原则
依赖倒置原则
单一职责原则
接口隔离原则
迪比特法则
合成复用原则
0 条评论
下一页