社招-字节跳动-初/中级 Java 后端-一面面经
-
Java HelloWorld 从输入到执行这个步骤都有哪些事情
-
为什么要分为 JRE 和 JDK,两者区别?为什么需要这样分开呢?
-
Linux 系统是干嘛的,对 Linux 的理解
-
Linux 的命令
-
从文本文件里面过滤和统计的命令是什么(管道的操作,不怎么熟悉)
-
-
进程和线程的区别
-
线程之前的通信方式,进程之间的通信方式
-
零拷贝的概念是什么意思
-
多线程怎么实现线程安全(只能回答上来锁)
-
其实可以分为互斥同步和非互斥同步,前者是锁的实现方式,后者是类似于 CAS 这样的形式
-
-
HashMap 线程不安全,怎么样才能安全
-
其他的一些线程安全的容器有哪些?(有没有同步的 List 之类的?)
-
线程池的有了解过嘛
-
线程池里面的队列有哪些实现?
-
线程池的队列是线程安全的嘛?(答不上来)
-
HashMap 是否无序?LinkedMap 有序的实现?
-
TreeMap 和 LinkedMap 的区别 ?
-
LRU 怎么实现?用什么来实现(没有很能答上来)
-
默认的话是用一个 HashMap + 一个排序链表组成
-
LinkedHashMap 本身就支持设定按照访问顺序排序,所以可以直接用 LinkedHashMap 实现
-
-
分布式锁的实现(回答了 setnx 方式,又提了 set + 过期时间 + NX 来解决死锁问题)
-
各个服务之间持锁差距过大怎么办?比如一个服务需要持锁一个小时另一个需要持锁1分钟,怎么办?
-
HTTP 协议Method 有哪些 ?GET 和 POST 的区别 ?GET 能不能传 body ?Header 的 value 可以用二进制 ?
-
了解 RPC 嘛?讲一讲大概概念?
-
Http 还是 RPC 哪个好一点(没有了解具体的区别)
-
用过 MQ 嘛?如何保证有序?消息丢失?
-
引入的 SDK 其依赖的包与项目本身引入的包有冲突应该怎么解决?(回答了 maven 可以引入依赖的时候剔除某些包)
-
算法题-层序遍历二叉树