最新携程、虎牙Java开发岗面经分享

JAVA烂猪皮

共 1924字,需浏览 4分钟

 ·

2021-06-10 03:20

走过路过不要错过

点击蓝字关注我们



携程一面:

携程总部大楼(上海市长宁区金钟路),汽车票船票组,面试官两位(项目经理+开发人员)

1、项目了解

此处手绘系统架构图,并表明自己负责的哪一块,我们项目中对ES和RocketMQ使用比较多

2、线程池参数(最好是自己手写过线程池)

  • corePoolSize 指定了线程池里的线程数量

  • maximumPoolSize 指定了线程池里的最大线程数量

  • RejectPolicy 拒绝策略,当任务过多时候,如何拒绝任务

    • AbortPolicy 丢弃任务并抛出RejectedExecutionException异常。

    • DiscardPolicy 丢弃任务,但是不抛出异常。如果线程队列已满,则后续提交的任务都会被丢弃,且是静默丢弃

    • CallerRunsPolicy 丢弃队列最前面的任务,然后重新提交被拒绝的任务

    • DiscardOldestPolicy 由调用线程处理该任务

  • keepAliveTime 当线程池线程数量大于corePoolSize时候,多出来的空闲线程,多长时间会被销毁。

  • ThreadFactory 线程工厂,用于创建线程,一般可以用默认的

  • workQueue 任务队列,用于存放提交但是尚未被执行的任务

  • unit 时间单位

3、MQ的顺序消费痛点

异常后会阻塞

多个队列,分布式全局不太好处理

4、JVM内存模型

jdk1.7 永久代
jdk1.8 元空间
stack内存(栈帧)
jvm调优参数,jstack使用

5、并发编程

我在项目中CountDown等待所有线程减一结束,然后主线程获取Future中的结果

Volatile关键字使用

6、锁

synchronize 互斥锁

ReentrantLock 可重入锁(自旋锁)

7、MYSQL索引执行查看策略

使用explain查看执行策略


虎牙面试题


  • 自我介绍。

  • 项目中怎么做的服务端分页?

  • 用的mysql 还是 oracle 数据库?

  • 有一条sql 语句执行很慢,如何排查问题?

  • 如何查看sql 执行计划?explain 命令的执行结果介绍下?

  • 索引为什么能加快查询速度?

  • 问几个Java 基础知识吧,Java 虚拟机你了解吗,介绍一下,能说多少说多少?

  • 假设有一个String str = new String("hello world");这条语句创建了几个对象,分别在 JVM 的 哪个区域?

  • 假设项目中需要用到线程同步,你会考虑怎么实现?

  • Java 中的锁了解吗,介绍一下?

  • 什么是乐观锁、悲观锁,在Java 中分别有哪些实现类?

  • 线程池用过吗?

  • 如何创建线程池?

  • Executors 类可以创建哪些线程池?

  • 线程池初始化参数详细介绍?

  • 什么时候会开启核心线程以外的线程?

  • 什么时候会用到拒绝策略?Spring 原码看过吗?

  • 最后问个场景题,现在要查询数据库,数据两位2 千万行,使用多线程实现,你有什么思路

  • 吗?不能重复读取,数据全部读取完之后才进行数据操作。

  • 假设有一个线程查询失败如何处理?

  • hashmap concurrenthashmap

  • list set map

  • jvm 内存模型 垃圾回收等(都是一些常见的问烂的)

  • 进程、线程结合JVM 说

  • mysql 事务 锁 (间隙锁 next key lock)

  • mysql 事务 怎么实现的 对应相关的日志来说 undo log

  • redo log 等

  • mysql 索引优化 执行计划

  • spring 中源码看过啥 说了下 spring aop ,ioc springboot 自动装配

  • redis 项目中怎么用的。。balabal 项目相关问了还蛮多  

  • mysql 中死锁怎么解决

  • 线程池balabala 常用线程池,平时手写线程池,参数配置(7 个参数) 平时怎么设置 的

  • 无反问环节





获取往期以上更多最新面试题资料,直接转发一下这篇文章+关注公众号【Java烂猪皮】关注后回复【666】即可获取哦~




往期精彩推荐



腾讯、阿里、滴滴后台面试题汇总总结 — (含答案)

面试:史上最全多线程面试题 !

最新阿里内推Java后端面试题

JVM难学?那是因为你没认真看完这篇文章


END


关注作者微信公众号 —《JAVA烂猪皮》


了解更多java后端架构知识以及最新面试宝典


你点的每个好看,我都认真当成了


看完本文记得给作者点赞+在看哦~~~大家的支持,是作者源源不断出文的动力

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报