美文网首页Java开发技巧Java学习笔记
从阿里、美团、滴滴面试回来,想和Java程序员谈一谈感悟及面经

从阿里、美团、滴滴面试回来,想和Java程序员谈一谈感悟及面经

作者: Java技术剑 | 来源:发表于2020-04-11 14:46 被阅读0次

    最近面试了阿里、京东、美团、滴滴等大型互联网公司,最终收到了美团offer,这次面试过后,我把面试过的公司的面试题做了一个整理。这篇文章是我凭回忆记录的,面试题没有顺序,不分先后,接下来公布我去阿里、京东、美团等一线互联网公司的面试题:

    一、阿里巴巴面试

      1、开发中Java用得比较多的数据结构有哪些?

      2、谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的?

      这些数据结构中是线程安全的吗?假如你回答HashMap是线程安全的,接着问有没有线程安全的map,接下来问conurren包。

      3、对JVM熟不熟悉?简单说说类加载过程,里面执行的哪些操作?问了GC和内存管理,平时在tomect里面有没有进行过相关的配置。

      4、说一下http协议、get和post的基本区别,接着问tcp/ip协议,三次握手,窗口滑动机制。

      5、开发中用了哪些数据库?回答mysql;储存引擎有哪些?然后问了我悲观锁和乐观锁问题使用场景、分布式集群实现的原理。

      6、springmvc和mybatis的工作原理,有没有看过底层源码?

    二、京东金融面试

      1、Dubbo超时重试;Dubbo超时时间设置

      2、如何保障请求执行顺序

      3、分布式事物与分布式锁(扣款不要出现负数)

      4、分布式session设置

      5、执行某操作,前50次成功,第51次失败a全部回滚b前50次提交第51次抛异常,ab场景分别如何设置Spring(传播性)

      6、Zookeeper有哪些用

      7、JVM内存模型

      8、数据库垂直和水平拆分

      9、MyBatis如何分页;如何设置缓存;MySQL分页。

      10、熟悉IO么?与NIO的区别,阻塞与非阻塞的区别。

      11、分布式session一致性

      12、分布式接口的幂等性设计「不能重复扣款」

    三、美团面试

      1、最近做的比较熟悉的项目是哪个?画一下项目技术架构图。

      2、JVM老年代和新生代的比例?

      3、YGC和FGC发生的具体场景

      4、jstack,jmap,jutil分别的意义?如何线上排查JVM的相关问题?

      5、线程池的构造类的方法的5个参数的具体意义?

      6、单机上一个线程池正在处理服务如果忽然断电该怎么办?(正在处理和阻塞队列里的请求怎么处理?)

      7、使用无界阻塞队列会出现什么问题?

      8、接口如何处理重复请求?

      9、具体处理方案是什么?

      10、如何保证共享变量修改时的原子性?

      11、设计一个对外服务的接口实现类,在1,2,3这三个主机(对应不同IP)上实现负载均衡和顺序轮询机制(考虑并发)

    四、滴滴面试

      1、自我介绍;技术特点

      2、兴趣是什么;优势是什么

      3、jvm、jre以及jdk三者之间的关系?

      4、Dubbo的底层原理,Zookeeper是什么

      5、cincurrentMap的机制;TreeMap;Volatil关键字

      6、快速排序;广度优先搜索(队列实现)

      7、缓存的雪崩以及穿透的理解?

      8、HashMap的key可以重复吗?

      9、synchronized和lock的区别?

      10.开发一个大型网站你会考虑哪些问题?

    以上就是全部的面试题目,针对以上知识点,结合当前互联网公司的技术需求及主流技术,我整理了一份Java核心知识点全解析。不少公司很重视高并发高可用的技术,特别是一线互联网公司,分布式、JVM、spring源码分析、微服务等知识点已经是面试的必考题。这些东西可能你们平时在工作中接触过,但是并没有深入的学习过,希望这份资料对正在面试的朋友或是遭遇技术瓶颈的程序员们提供一点思路。

    Java核心知识点整理

    由于整个文档内容特别多,共有29个Java核心技能全解析,所以在这里只简单介绍下大概有哪些知识点。

    资料领取方式:转发+关注,然后私信回复【干货】即可获得免费领取方式。

    Java核心知识点整理

    JVM

    线程

    JVM内存区域

    JVM运行时内存

    垃圾回收与算法

    JAVA 四种引用类型

    GC分代收集算法 VS 分区收集算法

    GC垃圾收集器

    JAVA IO/NIO

    JVM 类加载机制

    JAVA集合

    接口继承关系和实现

    List

    ArrayList(数组)

    Vector(数组实现、线程同步)

    LinkList(链表)

    Set

    HashSet(Hash表)

    TreeSet(二叉树)

    JAVA多线程并发

    JAVA并发知识库

    JAVA线程实现/创建方式

    4种线程池

    线程生命周期(状态)

    终止线程4种方式

    sleep与wait 区别

    start与run区别

    JAVA后台线程

    JAVA锁

    线程基本方法4.1.11. 线程上下文切换

    同步锁与死锁

    线程池原理

    JAVA阻塞队列原理

    CyclicBarrier、CountDownLatch、Semaphore的用法

    volatile关键字的作用(变量可见性、禁止重排序)

    如何在两个线程之间共享数据

    JAVA基础

    JAVA异常分类及处理

    JAVA反射

    JAVA注解

    JAVA内部类

    JAVA泛型

    JAVA序列化(创建可复用的Java对象)

    JAVA复制

    Spring 原理

    Spring 特点

    Spring 核心组件

    Spring 常用模块

    Spring 主要包

    Spring 常用注解

    Spring第三方结合

    Spring IOC原理

    Spring APO原理

    Spring MVC原理

    Spring Boot原理

    JPA原理

    Mybatis缓存

    Tomcat架构

    微服务

    服务注册发现

    API 网关

    配置中心

    事件调度(kafka)

    服务跟踪(starter-sleuth)

    服务熔断(Hystrix)

    Hystrix断路器机制

    API管理

    Netty 与RPC

    Netty 原理

    Netty 高性能

    Netty RPC实现

    关键技术

    核心流程

    消息编解码

    通讯过程

    RMI实现方式

    分布式缓存

    缓存雪崩

    缓存穿透

    缓存预热

    缓存更新

    缓存降级

    Zookeeper

    Zookeeper概念

    Zookeeper角色

    Zookeeper工作原理(原子广播)

    Znode有四种形式的目录节点

    Kafka

    Kafka概念

    Kafka数据存储设计

    partition的数据文件(offset,MessageSize,data)

    数据文件分段segment(顺序读写、分段命令、二分查找)

    数据文件索引(分段索引、稀疏存储)

    生产者设计

    负载均衡(partition会均衡分布到不同broker上)

    批量发送

    压缩(GZIP或Snappy)

    消费者设计

    算法

    一致性算法

    Java算法

    数据结构

    加密算法

    由于整个文档内容特别多,共有29个Java核心技能全解析,所以在这里只简单介绍下大概有哪些知识点。

    资料领取方式:转发+关注,然后私信回复【干货】即可获得免费领取方式

    相关文章

      网友评论

        本文标题:从阿里、美团、滴滴面试回来,想和Java程序员谈一谈感悟及面经

        本文链接:https://www.haomeiwen.com/subject/pbbymhtx.html