java大厂面试题整理

面试的阿里

  1. Java基础
    a. 是否看过JDK源码(指的是list,spring,map之类的)
    答: 看过
    b. 是否看过hashMap的源码?底层实现是怎么样子的
    答: 说了1.8底层实现是数组+单链表/红黑树,接着又问红黑树的特性是什么?怎么实现的
    c. 反射了解么?能说下注解的原理么?
    答: 了解,反射类似于预加载,捕获异常classNotFoundException可能就是为了防止反射的出错
    注解的实现原理是反射,我们在通过反射去加载一个类的时候,能获取到当前这个类的属性,也可以获取到类上面的注解(就答到这里,我意识到可能错了)
    d: 了解并发编程么?了解线程池么?创建线程池的参数是什么?了解并发包么?
    答: 了解,了解过,线程创建我demo用过两种一种是创建特定线程数的,一种是不限定线程数字的,紧接着又问,假定用第一种创建线程数字为五个,那么当第六个请求过来当前线程池会怎么处理?我回答到有队列会阻塞,紧接着又问:如果过来一个一亿个请求会怎么样?会崩溃,具体的我没有了解过,但是RubbitMQ这个东西有一个峰值削减,当消息队列满了会跳转到错误页面,并发包的什么A什么,C什么我。。不大会

    e: 了解gc么?垃圾回收算法有哪些?
    答: 说了一点原理,标记清除,还有一种从上往下去寻找的(解决循环引用),答的不好

  2. 数据库
    a.了解数据库的ACID么?
    答: ACID
    A: 原子性
    C: 一致性
    I: 隔离性
    D: 持久性

    b.能解释下原子性是什么吗
    答: 原子性,我就举了银行家转账的例子,保持事务的要么全成功,要么全失败。

    C.了解数据库的隔离界别么?有哪四种?
    答: 不会。

    D. mysql数据库底层数据的存储结构是什么?
    答: 不会

  3. 中间件
    a. 用过Dubbo么?阅读过源代码么?是处于用的阶段还是源代码的阶段
    答: 用。。

今天就是问个基础,就先到这里了,问了我几年工作经验,我说不到两年,鼓励了我一下,说我掌握的还可以,蛮不错的,知道没用过的,用学过的知识类比,吧啦吧啦,面试官人蛮好的,总体来说被吊打吧,不过很享受这种感觉

2020-04-06 阿里巴巴(面试官是阿里的一个高级开发工程师,挺能聊的)

  1. 简单自我介绍

  2. 项目介绍基本情况

  3. 集合框架有熟悉的话,说下hashmap的扩容机制
  4. 为什么要重写equals和hashCode方法,重写equals能不能不重写hashCode?(没说到点子上)
  5. spring源码阅读过么,知道spring是怎么解决循环依赖的么?(表达能力有点问题)
  6. aop那块知道么,原理知道么(aop还没讲,没掌握说不了解)
  7. 常用哪些注解,requestMapping,作用在方法上,还有类上,类上是必须的么?
    说下getMapping和requestMapping的区别?
    说下responseBody和requestBody的区别?
  8. springBoot用过么?(直接回答没有)
  9. 分布式了解,读过zookeeper源码么?说下zookeeper工作原理()
    10.平时用的什么数据库,mysql用过么,用的oracle数据库,那oracle数据库的默认事务级别知道不?
    11.如果一个sql执行慢,可能是什么原因造成的,你说说如果是你碰到了,你打算怎么排查?
    12.gc了解么?讲下垃回收机制?full gc的过程?CMS垃圾回收器了解不
    13.双亲委派模型知道不?说下原理
    14.平时有做总结么,对于遇到的问题有没有做一个记录总结什么的?(不做总结的程序员,不是个合格的程序员)
    15.平时看书么,关于哪方面的?

答案是不提供了,大佬们自由发挥吧。。。。。。。。
总结:
1.基础不牢,

HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理
Spring的AOP和IOC是什么?使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别
Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点
SpringCould组件有哪些,他们的作用是什么?(说七八个)微服务的CAP是什么?BASE是什么?
设计模式(说五六个)
Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透
线程是什么,有几种实现方式,它们之间的区别是什么,线程池实现原理,JUC并发包,ThreadLocal与Lock和Synchronize区别
分布式事务(不同系统之间如何保证数据的一致性(A系统写入数据,B系统因为某些原因没有写入成功,造成数据不一致))
安全性问题(数据篡改(拿到别人的URL,篡改数据(金额)发送给系统))
索引使用的限制条件,sql优化有哪些,数据同步问题(缓存,数据库数据同步)
初始化Bean对象有几个步骤,它的生命周期
JVM内存模型,算法,垃圾回收器,调优,类加载机制(双亲委派),创建一个对象,这个对象在内存中是怎么分配的?
如何设计一个秒杀系统,(高并发高可用分布式集群)
悲观锁,乐观锁,读写锁,行锁,表锁,自旋锁,死锁,分布式锁,线程同步锁,公平锁,非公平锁分别是什么
堆溢出,栈溢出的出现场景以及解决方案
说出几种MQ之间的区别,以及为什么使用这种MQ,消息重复发送(幂等性),消息发送失败,消息掉包,长时间收不到消息,发送的消息太大造成接收不成功
单点登录实现原理
假如有上亿条数据,你如何快速找到其中一条你想要的数据(几种简单的算法)
Dubbo的运行原理,支持什么协议,与SpringCould相比它为什么效率要高一些,Zookeeper底层原理
假如你带一个团队,让你设计一个系统,你需要考虑哪些

5年Java开发经验面试字节跳动(2020-10-16)

1、在涉及支付的接口是如何保证接口的高可用,以及在遇到弱网条件下,发出的请求没有回复怎么办?

  1. 消息队列问题,如何保证消息的可靠性,不被重复消费,多个相同的消息,如何保证只消费一次?

  2. 你负责的功能模块的UV怎么去做的?对于某些某段时间内求情次数非常大的用户如何去处理呢?
  3. Redis基本数据类型底层是怎么去实现的?有了解过吗?
  4. 在浏览器输入网址敲下回车后发生了什么?从网址DNS解析到HTTP三次握手等过程
  5. 在服务的多节点情况下,如何保证请求不会被分配到坏的节点上去的?
  6. Redis分布式锁是怎么做到的?锁的过期时间怎么去设计的?如何保证当前锁不会释放掉其他锁?
  7. HTTPS和HTTP的区别,HTTPS是如何防止消息被篡改的呢?HTTPS有用到对称加密吗?哪些地方用到了?
  8. 写一个算法题吧,给一个有序的int数组和数组当中元素k,输出元素k在数组当中出现的次数。
    例如:[2,3,4,5,5,5,6,8] k=5 output:3 要去算法的时间复杂度不超过O(n),也就是说不能去遍历数组了
  9. 用两个栈实现一个队列
  10. 百度(3轮技术面):

  11. 1.synchrnoized和reentrantlock的底层实现及重入的底层原理
    monitorenter monitorexit AQS。 重入原理:entry count,state

    2.锁的四种状态及升级过程

    3.CMS和G1的异同

    4.G1什么时候引发Full GC

    5.除了CAS,原子类,syn,Lock还有什么线程安全的方式
    final

    6.HashMap和Hashtable的异同

    7.允许null键的map你知道哪些
    HashMap,LinkedHashMap,WeakHashMap

    8.null键放在HashMap的哪里
    底层数组的0号位置

    9.为什么hashtable的扩容是2倍+1
    从除留余数法,hashtable初始容量方面回答

    10.红黑树的插入时间复杂度

    11.解决哈希冲突的方式

    12.现有1T的数据,内存只有1G,该怎么对他们排序
    外部排序(多路归并)

    13.Tomcat为什么要重写类加载器

    14.tcp握手挥手过程及其状态转换

    15.mysql隔离级别

    16.B树和B+树的区别

    17.你知道哪些设计模式,它们在JDK源码中是怎么体现的

    18.Java运行时数据区

    19.说一个最熟悉的垃圾回收算法

    20.吞吐量优先和响应时间优先的回收器是哪些
    parallel scavenge和CMS

    21.类加载全过程

    22.线程池7个参数

    23.CAS的ABA问题怎么解决
    AtomicStampedReference,还可用带boolean版本戳的AtomicMarkableReference

    24.Java内存模型
    JMM共享内存模型以及8个原子操作指令

    25.什么叫做阻塞队列的有界和无界

    26.cookie和session介绍一下

    27.说一下反射,反射会影响性能吗

    28.谈一下AQS吧

    29.为什么你说AQS的底层是CAS+volatile
    state是volatile修饰的,并且设置state的方法除了有setState,还有compareAndSetState

    30.JUC包里的同步组件主要实现了AQS的哪些主要方法
    tryAcquire, tryRelease, tryAcquireShared, tryReleaseShared, isHeldExclusively

猜你喜欢

转载自blog.csdn.net/xiaoyeping/article/details/110070939