没自我介绍, 感觉这个面试官不太和蔼的样子, 非常严肃, 上来就直接问
volatile关键字讲一下
threadlocal讲一下, 里面的hashmap对应的key应该是线程对象而不是线程的id
说一下垃圾回收算法(标记算法和引用计数算法)
说一下引用计数算法, 这里一开始没明白面试官的意思, 后来才知道问的是三色标记算法.
说一下CMS收集器的四个过程.
说一下JVM锁膨胀的过程? 无锁, 偏向锁, 轻量级锁, 重量级锁
说一下java里面的四种引用, 分别有什么作用? 我只知道弱引用在WeakHashMap里有点用.
问了个jvm的题
1 2 3 4 5 6 7 8 9 10 11 12 13
| 下面这段代码,编译为字节码时,操作数栈的深度是多少,局部变量表中有几个变量
public class CalcCirc { public int doCalc() { int a=10; int b=20; int c=2; return (a+b)*c; } } 操作数栈深度很显然是2. 先算a+b, 然后再乘c. 假如是a+b*c那深度就是3了
局部变量表应该是有4个变量的, 一定不能忘了非静态方法有this指针!!
|
说一下进程之间的通信方式?
说一下linux中管道的原理, 可以双向吗?
了解linux的IO吗? 说一下(这里我主要说的是epoll)
linux共享内存怎么解决多进程同时写的问题?
编程题, 之前做过, 直接a出来了
最后竟然面试完了直接就完了, 也没问我有什么问题. 估计是凉了吧. 但是我感觉我答的还不错啊, 除了java4种引用不会之外其他的地方都差不多答上来了. 希望能过. 求 offer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| 删除有序链表中重复出现的元素 给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。 例如: 给出的链表为1→2→3→3→4→4→5, 返回1→2→5. 给出的链表为1→1→1→2→3, 返回2→3.
import java.util.*;
public class Solution {
public ListNode deleteDuplicates (ListNode head) { if(head == null || head.next == null){ return head; } ListNode dummyHead = new ListNode(0); dummyHead.next = head; ListNode begin_prev = dummyHead; ListNode begin = begin_prev.next; ListNode end = begin; while(begin != null){ while(end != null && end.val == begin.val){ end = end.next; } if(begin.next == end){ begin_prev = begin; begin = end; } else{ begin_prev.next = end; begin = end; } } return dummyHead.next; } }
|