4/1 腾讯一面(挂)(1h05min)直接上来开问JVM和多线程。面试官摄像头也没开。1.JVM内存结构只答了元空间、虚拟机栈、堆。2.定义了两个局部变量 int a=10; new object。这两个在JVM中什么位置?答:a在虚拟机栈中。object在堆中。3.对象有没有可能在栈中答:对象在堆中。4.JAVA主要的垃圾回收方法?答:标记清除、标记整理、复制算法、分代收集算法5.可达性分析算法GCroot,它是怎么找到垃圾的?答:这块实现不太清楚,说了哪些对象可以当GCRoot(好像也说错了),然后讲沿着一个类似树的往下找。6.有哪些标记方式?答:这块不知道了然后开始垃圾收集器的拷打。7.G1垃圾收集器的优点。答:这块不是很清楚,说了并行化速度快,每块区域都可以当新生代和老年代。8.CMS收集器的不足答:这一块也不太清楚。9.CMS在哪些阶段要STW答:不会答。。。瞎答的。。10.CMS重新标记时间会很长吗?答:(不清楚)我说的不会很长,因为重新标记的一些垃圾比较少,耗时不会太长。11.垃圾回收器之间的差异答:。。。面试官看出不会垃圾回收器了,哭哭,12.有哪几种接口可以创建线程池答: 通过Executors类的静态方法创建,但一般不用这种方法。另外是用new ThreadPoolExecutor()13.给了核心线程数,阻塞队列大小,最大线程数,问线程池有几个线程去执行任务。答: 这个会,基本八股。14.假如阻塞队列用了一个无界的LinkedQueue,这时会有几个线程到阻塞队列中去。答:这个不太清楚,就回答了一般就算是链表阻塞队列也会设置队列大小。15.优先队列是如何实现的?答:这个也不太清楚,答了Executors有个Delayedpool。(其实是记混了线程池中的DelayedWorkQueue)16.volatile关键字怎么实现可见性答:先说了可见性是啥(但是当时回答成了有序性。。。哭)防止编译器优化代码,禁止指令重排序。17.面试官反问,多线程同步跟这个有什么关系。面试官想让我说volatile的读写屏障答:这个当时只有个模糊的概念。就凭记忆说了写是向上屏障,读是向下屏障。。。18.场景题:大概就是怎样让两个线程在某个条件的时候会合,然后再让线程往下执行。答:先说了join,但面试官说不对,我就说了可以加个if条件,到了这个条件停下来。然后又说可以有await()和noitify。19.如何分辨当前线程是否做完这个任务了?答:。。。还是if条件。20.面试官又问当有1000个线程的时候,加if条件太耗时,有什么解决办法?答:。。。。不会啊!!!!只说了可以放在一个队列中,没学过微服务,但简单知道点MQ,就说了可以把达到条件的先放在一个等待队列中(开始胡答了。。。)21.Linux判断性能指标答:nvidia-smi看gpu,top看cpu22.算法题:判断是否有环用了快慢指针。。。但是输入语句不会写。总结:总的来说还是基础不牢,对于一些细节、还有具体实现方面是个模糊的状态。还是得再沉淀沉淀。
点赞 11
评论 10
全部评论

相关推荐

点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务