java
一、object的方法有哪些
protected Object clone()创建并返回此对象的一个副本
boolean equals(Object obj) 判断其他某个对象是否与此对象相等
protected void finalize()当垃圾回收期确定不存在此对象的更多引用时,由对象的垃圾回收期调用此方法
Class<?> getClass()返回次Object的运行时类
int hashCode()返回此对象的哈希码值
void notify()唤醒在此对象监视器上等待的单个线程
void notifyAll()唤醒在此对象监视器上等待的所有线程
String toString()返回该对象的字符串表示
void wait()在其他线程调用此对象的notify()或notifyAll()之前,导致当前线程等待
void wait(long timeout) 在其他线程调用此对象的notify()或notifyAll()之前,或超过指定时间量之前,导致当前线程等待
void wait(long timeout, int nanos)在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
二、多线程的实现方式,多线程的状态和方法,A,B,C,D顺序实现的方式
实现方式
1、继承Thread类
2、实现Runable接口或Callable
2、线程池Executors
多线程的状态和方法
状态:新建状态、就绪态、运行态、休眠态(阻塞、等待)、死亡
方法:start()线程开始、run(线程运行)、sleep()线程休眠 、yield()线程回到就绪态
多线程顺序实现方式
- Thread类的join方法:使宿主线程阻塞指定时间或者直到寄生线程执行完毕
- CountDownLatch类:指定计数器,当计数器清零即取消阻塞
CyclicBarrier
API
多线程之间的通信
①同步
这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信。
②while轮询的方式volatile
③wait/notify机制
④管道通信就是使用java.io.PipedInputStream 和 java.io.PipedOutputStream进行通信
jvm
jvm的内存结构,jvm各区域的作用,如何判断应该回收,没有引用是什么意思,垃圾收集算法,垃圾回收算法
哪几个区域会发生内存溢出
内存泄露的查找方式
集合的种类
hashMap的寻址方式,hashMap扩容算法,equels和==的区别
hashmap的容量是16,hashcode值是2018,怎么存放
数据库
char和varchar的区别
三范式
索引定义,类别,创建
sql注入查找,sql注入的防范