回馈牛客,发一些面试中遇到的问题

这里仅列举一些本人在面试中发挥未到100%的题目,供大家排坑。欢迎评论区补充遇到的一些冷门问题。

Java基础

  • 为什么notify和wait方法必须在synchronized方法中使用?
  • finally方法一定会被执行么?
  • 抽象类能否跨包继承?
  • BIO用了哪些设计模式
  • Java四种引用的具体应用场景

JVM

  • 如何降低GC的概率
  • JVM在new对象时会不会发生抢占?如何设计堆内存分配的线程安全?
  • 讲讲STW、SafePoint和SafeRegion
  • FullGC触发的场景

集合

  • 使用HashMap的put()时,如何判断key是否已存在(默写源码中的if()判断语句)
  • Vector绝对线程安全么?
  • CLH队列如何实现非公平与公平?

多线程

  • CountDownLatch和CycleBarrier在使用场景上的区别(别说计数器不可重置这种没营养的)
  • Lock与Synchronized的区别(结合使用场景,要求有多少说多少)
  • 讲讲ThreadLocal引发的内存泄露(key弱引用)以及解决方案
  • 常量、成员变量以及字面量在JVM中的存储位置

缓存&消息队列

  • Redis的使用场景
  • MQ的使用场景
  • Redis与DB如何保持一致性(结合强一致性、弱一致性、缓存一致性回答)
  • MQ如何在不去重的前提下避免消息多次发送?
  • Redis的多路复用咋实现的(我不知道讲select、poll、epoll是否正确,没看过源码)

负载均衡

  • Nginx和Apache的具体区别(结合使用场景回答)
  • 对Nginx缓存的理解(静态资源)

分布式

  • 大型分布式Session共享的解决方案
  • 不利用分布式事务实现两个事务的一致性
  • 如何设计uuid使其满足唯一性、稳定性、高并发性
  • 如何实现单点登录

数据库

  • MySQL中索引如何组织?B+树的非叶子节点存储什么内容?
  • 数据库中联合查询涉及哪些关键字
  • 可以用uuid做主键么?
  • DB中的乐观锁和悲观锁怎么用?(这个我是真的没上手过,拒绝当sqlboys)
  • MySQL的双写机制
  • 讲讲事务的传播行为
  • 最左前缀是否支持范围查询
  • 讲讲你对DB连接池的理解(让你自己设计一个)
  • ssh时代的JDBC连接过程

网络

  • HTTPS握手机制(要结合非对称加密和对称加密)
  • TCP四次挥手时的两个状态Time_wait 和 Close_wait属于哪一方?在哪一次通信后进入对应的状态?
  • 如何实现UDP的可靠传输?

算法

  • 快排的极致优化
  • 冒泡排序的极致优化

Android

  • 四大组件、五大存储、六大布局
  • 对DataBinding的理解
  • 对EventBus的理解
  • RelativeLayout和LinearLayout的细致对比(从性能、绘制原理上分析)
  • 如何自定义Layout
  • IPC与Binder的理解
  • Activity启动过程(要求极细致)
  • Handler、Looper以及message
  • Fragement与Activity的关系
  • 讲讲ANR的原因以及解决方案
  • 讲讲你对Android动画的理解
  • Android应用从点图标到完全启动经历了什么?
  • view的measure过程
  • 如何优化页面卡顿
  • Android持久化方案

开放题

#Java工程师##面经##校招#
全部评论
大佬牛批
1 回复
分享
发布于 2019-11-11 16:45
牛批!
点赞 回复
分享
发布于 2019-11-11 17:02
阅文集团
校招火热招聘中
官网直投
大佬最后去了哪
点赞 回复
分享
发布于 2019-11-11 17:16
我遇到一个为何要设计双亲委派机制…当时懵了。
点赞 回复
分享
发布于 2019-11-12 13:48

相关推荐

1.自我介绍2.项目介绍(三个面试问了三次,居然还没有想好话术)(全部结合的项目和我的答案问的)3. 登录是怎么做的(jwt)4. jwt具体是什么,说一下5.JWT自动令牌的方式用的是cookie还是session,cookie和session有什么区别6.登陆的时候输入账号密码后请求后台登录接口,后台要做什么操作7.controller层要做什么配置呢?8. 我要找到对应的ip端口下的数据库表,要做什么配置(我答的mp的配置)9.Spring Boot的配置写在哪(properties)10. properties加了配置的话它就好了吗(用mp在实体类里面接service,写表名)11. 真正去读这个表对应的那个表的数据库的时候是在哪里读的呢,就是让数据库和实体类产生关系的地方是在哪里呢?12. Redis和那个数据库有什么区别?13. 现在要读一个用户的信息是怎么个读法呢(我结合项目回答了)14. 你怎么保证Redis和数据库的数据的一致性呢15. 写过sql吗(我说没写,用mp了)16. 缓存穿透17.怎么解决缓存穿透18. 布隆过滤器(我说用Redisson现成的那个,要求我解释了一下布隆过滤器怎么过滤掉数据的)19. Linux的命令(我说不知道,我拿来部署redis,边查边用)20. redis有几种数据结构21. Redis是单线程还是多线程(单线程)22. 单线程的redis快在哪里23. 用过消息中间件吗24.你说从磁盘读写慢,具体为什么慢你知道吗?如果磁盘存储连续,还慢吗?25. 用过线程池吗,为什么要用线程池,有什么好处26. 我创建一个线程的话有几种方式?(我说threadlocal)27. 创建一个类让他变成线程类呢?(实现runnable接口,继承thread类)28. 启动一个线程用哪个方法(start)29. start和run有什么区别?30.hashmap用过吗?jdk7和jdk8的hashmap底层的数据结构有什么区别31. sql增删改查关键字是哪几个?32.反问面试官说我存在的问题:1.只知道一个大概,不能深挖2.不会写sql,复杂的表查询一定需要sql3.数据结构欠缺,不知道jdk7/8 hashmap的区别,以后无法优化程序4.不了解前端
点赞 评论 收藏
转发
4 84 评论
分享
牛客网
牛客企业服务