美团Java开发实习面经(一面)
日志
美团一面(50min)
操作系统
- 
		线程和进程区别
 进程是资源分配的基本单位,线程是CPU调度的基本单位。在具体的调度上面进程除了保存相关的状态信息之外,还会将页表中的页表项更新,也就是更新虚拟地址,将进程需要的资源调入内存。这是根本的不同 基于上面的不同,进程因为分配的资源是独立的,相对于线程来说更加安全
- 
		什么叫做守护进程 
 我是将守护进程理解成后台进程,不能够独立运行。
- 
		解释下僵尸进程 
 操作系统中,父进程创建了子进程之后,需要wait或者waitpid()方法观察子进程的状态。如果父进程不调用这两个方法,那么子进程保留的一些信息(进程号)就不会释放,如果操作系统中存在大量的僵尸进程,那么会导致最后操作系统没有进程号分配给新的进程
- 
		平时有处理过僵尸进程吗? 
 操作系统有学过,通过两次fork可以避免这种情况。具体不太记得了
- 
		举个例子,如果系统中突然出现很多僵尸进程,应该怎么做? 
 突然出现大量的僵尸进程,肯定是父进程有问题的。这种情况下直接kill掉父进程,使得僵尸进程变成孤儿进程,交由操作系统的init进程进行处理
锁
- 
		乐观锁和悲观锁有了解过吗? 
- 
		数据库中悲观锁怎么实现? 
- 
		悲观锁和乐观锁哪些场景能用? 
 乐观锁容易导致CPU忙等待,适合竞争不激烈的情景。如果一个资源竞争非常激烈的话,直接悲观锁就好了。
- 
		Java里面悲观锁和乐观锁有用过吗? 
- 
		乐观锁除了忙等待还有什么问题吗? 
 ABA问题
- 
		描述一下ABA问题 
- 
		ABA问题有什么方式去解决? 
 没有实际应用过,版本号(个人一开始说的是时间戳,面试官问了时间戳使用什么精度能解决这个问题,然后我反应过来要用版本号…..)
计网
- 
		解析网址 
- 
		你刚刚说到了TCP,那么建立一个TCP/IP传输链路需要哪几个要素? 
 目的IP、源IP、目的端口、源端口和协议类型
- 
		那HTTP协议是有状态协议还是无状态协议呢? 
- 
		它为什么是无状态协议 
 这里把我问懵了,老老实实说不知道之后面试官就说两次请求之间是没关系的呀,前一次提交的表单,后一次是没有相同的信息的……..
- 
		HTTP有哪些状态码?分为哪几类? 
- 
		301和302有什么区别呢? 
 不了解。然后让我回去看看这块,业务要用。
- 
		TCP状态的变化? 
- 
		有用过网络工具吗? 
 计网用过wireshark
- 
		有没有用过linux相关的工具呢? 
 用过netstat(不了解的真的不要说……这个命令我只在查IP的时候用过)
- 
		那netstat怎么查看端口有哪些连接呢? 
 不会
数据库
- 
		MySQL中的join和left join和right join有什么区别? 
- 
		有哪些事务隔离级别 
- 
		解释一下幻读?MySQL RR级别是怎么解决幻读问题? 
 RR并没有完全解决幻读问题。innoDB可以通过MVCC机制,可以一定程度上避免幻读问题的产生
- 
		当前读和快照读有什么区别? 
- 
		RR级别下怎么进行当前读? 
 select ... for update设X锁。问我还没别的吗?我没反应过来,然后面试官就说select ... lock in share mode也是可以的…
Java
- 
		volatile有哪些特性? 
 volatile实际上是通过读写屏障实现的。读写屏障就有两个作用:缓冲失效和阻止指令重排序
- 
		那通过双重判断实现一个单例模式吧 
- 
		这里面的volatile起到什么作用呢? 
- 
		Java里面异常的继承结构清楚吗? 
- 
		平常使用中有哪些RuntimeException? 
 1/0就是一个。还有别的吗?数组越界、空指针
- 
		Java多线程的线程池参数 
- 
		描述一下线程池的调度流程? 
 我说偏了…..
- 
		写个算法吧:两个栈实现队列。(然后面试官电脑快没电了下楼拿电源) 
- 
		说一下思想吧 
- 
		知道Java中的引用级别吗 
 软引用忘记了
- 
		它们之间有什么不同看过吗? 
- 
		能举一个使用非强引用的例子? 
 之前看哪个类中的源码看到过,好像是ThreadLocal中的哪个Map。然后面试官肯定了我说的,不过看我不是很熟就让我等下回去看看
- 
		Java虚拟机新生代S0和S1有什么作用? 
- 
		说下项目架构。 
 然后问了项目的一些东西
问问题
#实习##美团##Java工程师##面经#

 投递上海得物信息集团有限公司等公司10个岗位
投递上海得物信息集团有限公司等公司10个岗位