2021最新快手面经主动分享:Java面试神技/技术知识集合(10个专题详细介绍)

这篇博客是作者2021年在快手Java面试后的经验分享,涵盖了JVM、Spring、Redis、MySQL、Kafka、网络、设计模式、分布式、微服务和算法等10个专题。面试中涉及基础概念、集合、并发、IO、JVM内存管理、Spring框架、Redis缓存、MySQL事务与存储引擎、Kafka消息队列、网络协议和设计模式等内容,同时包含面试策略和offer选择建议。
摘要由CSDN通过智能技术生成

2020最后一次Java面试,我去了快手。快手的面试挺有挑战性的,而且还特别有意思,感觉啥都能问到。(二面是10天前约的面试,差点要忘了)然后是HR面,前天我就收到offer。

 

一面二面啥的我都忘记具体的了,就简单的总结一下

1 基础

  • 为什么 Java 中只有值传递?
  • int 范围?float 范围?
  • hashCode 与 equals,什么关系?
  • String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的?
  • Java 序列化中如果有些字段不想进行序列化 怎么办?
  • 构造器 Constructor 是否可被 override?
  • java 异常体系?RuntimeException Exception Error 的区别,举常见的例子
  • 字符型常量和字符串常量的区别?
  • 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?

2 集合

集合这块关注一下 1.8 的实现吧,和 1.7 相比变化了很多

  • ArrayList和linkedList的区别?
  • 堆是怎么存储的,插入是在哪里?
  • HashMap和HashTable的区别?讲一下 hashMap 原理。hashMap 可以并发读么?并发写会有什么问题?
  • 集合类存放于 Java.util 包中, 主要有几种接口?
  • Array与ArrayList有什么不一样?简单介绍下 ArrayList 怎么实现,加操作、取值操作,什么时候扩容?
  • 说说ConcurrentHashMap?头插法还是尾插法?扩容怎么做?
  • 集合在迭代的过程中,插入或删除数据会怎样?

3 并发

  • notify()和notifyAll()有什么区别?
  • volatile 是什么?可以保证有序性吗?
  • 为什么wait, notify 和 notifyAll这些方法不在thread类里面?
  • SynchronizedMap和ConcurrentHashMap有什么区别?
  • 什么是线程安全?Vector是一个线程安全类吗?
  • 线程进程和线程的区别?并行和并发的区别?了解协程么?进程间如何通信:进程 A 想读取进程 B 的主存怎么办?线程间通信?线程的生命周期有哪些状态?怎么转换?wait 和 sleep 有什么区别?什么情况下会用到 sleep?怎么停止线程?怎么控制多个线程按序执行?
  • 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗?synchronized关键字最主要的三种使用方式
  • 为什么要用 join()方法?
  • 什么是多线程中的上下文切换?
  • 死锁与活锁的区别,死锁与饥饿的区别?
  • Java 中用到的线程调度算法是什么?
  • 什么是原子操作&#x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值