面试详解

一场饿了么的面试

前几天通过朋友的推荐,参加了饿了么的java开发的面试,所以在此来介绍一下具体问的问题吧。
现在的普遍面试都是从浅到深的,从一个小的方面来引出更深层次的知识。
所以问的知识点主要分为以下几部分:
1.java基本,这些都属于基本的基本
对于jsdk中所有常用包的了解,
如:java.net;java.util;java.lang,java.io等;
对于面向对象的理解。
2.对于集合的使用
ArrayList的实现
LinkedList的实现
ArrayList与LinkedList的相同点与不同点。
HashMap的实现
LinkedHashMap的实现

3.对于多线程的问题
线程同步的方法
线程同步的实现
volatile的使用及原理
线程同步的特性(原子性,可见性,有序性)
线程之间的通信问题。(生产者与消费者问题)
锁的几种类型以锁之间的转换

4.concurrent包下的并发类
相关的原子类
相关的一些并发集合:
CopyAndWriteXX的实现
ConcurrentHashMap的实现
相关的阻塞队列与并发队列的区别
关于线程池的实现,
线程池中的相关参数与运行机制
CountDownLatch与CyclicBarrier的使用

5.网络方面:
TCP的三次握手与四次挥手。
网络七层架构

6.linux
安装软件的相关命令
查看cpu的使用情况
查看某进程cpu的使用情况

7.jvm
内存分布
分代算法
jvm优化
可达性算法
循环引用的解决方法

8.中间件的使用
消息中间件的掌握(activeMQ、RabbitMQ)
exchange的类型:
redis的使用
版本控制工具的了解: git、SVN

9.框架方面
mybatis的一级缓存与二级缓存
spring的核心包
spring的启动流程
spring aop的实现
spring的循环注入的解决。

10.项目方面
项目的具体描述
自己的主要职责
中间遇到的问题

11.代码方面
给定n个数,计算他们分别在2^0~2^m下的个数;
如: 2 3 5 6 7
0~2: 0;
2~4 : 2;
4~8:3;

在多线程下对于一个请求进行限流处理

编写一个单例模式。

你可能感兴趣的:(面经)