面试题: 各大公司已看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.若当前线程池中线程数

posted @ 2018-05-10 00:33  阿善9  阅读(105)  评论(0编辑  收藏  举报