面试题: 各大公司已看1 没用
JVM有哪些分区?
程序计数器,java虚拟机栈,本地方法栈,堆,方法区(java栈中存放的是一个一个的栈帧,每一个栈帧对应一个被调用的方法。栈顶包括局部变量表,操作数栈,方法的返回地址,指向当前方法所属的类运行时常量池的引用,附加信息)。JVM中只有一个堆。方法区中最重要的是运行时常量池。
mysql使用的引擎
(1)Mylsam:不支持事务,适用于选择密集型,插入密集型,mysql默认的引擎。
(2)innodb:适用于更新密集型,支持事务,自动灾难恢复,行级锁,外键约束。
(3)memory:出发点是速度,采用的逻辑存储介质是内存。
(4)merge:一组myisam表的结合
linnx查看文件内容的命令
Cat:从第一行开始显示内容,并将所有内容输出
Tac:从最后一行开始显示内容,并将所有内容输出
Head:只显示前几行
Tail:只显示后几行
nl:和Cat一样,只是nl要显示行号
线程池ThreadPoolExecutor
corepoolsize: 核心池的大小,默认的情况下,在创建了线程池后,线程池中线程数为0,当有任务来之后,就会创建一个线程去执行任务,当线程池中线程数达到corepoolsize后,就把任务放在任务缓冲队列中。
Maximumpoolsize: 线程池中最多创建多少个线程。
Keeplivetime: 线程没有任务执行时,最多保存多久时间会终止,默认情况下,当线程池中线程数>corepoolsize时,Keeplivetime才起作用,直到线程数不大于corepoolsize。
workQueue: 阻塞队列,用来存放等待被执行的任务。
threadFactory: 线程工厂,用来创建线程。
线程池的状态
1.当线程池创建后,初始为running状态
2.调用shutdown方法后,进入shotdown状态,不再接受新的任务,等待已有的任务执行完毕
3.调用shutdownnow方法后,进入stop状态,不再接受新的任务,并且会尝试终止正在执行的任务。 -
4.当处于shutdown或stop状态,并且所有工作线程已经销毁,任务缓存队列已清空,线程池被设为terminated状态。
当有任务提交到线程池之后的一些操作:
1.若当前线程池中线程数