Freeman's Blog

一个菜鸡心血来潮搭建的个人博客

0%

面经

腾讯csig智慧供应链:

JVM:

  • 运行时内存模型√
  • 垃圾回收机制:标记算法、回收算法√
  • 类加载机制√
  • 移动到老年代有哪几种情况√

JUC:

  • 线程池怎么实现的,底层有什么数据结构
  • synchronized的底层实现√
  • volatile是什么,跟synchronized的区别,volatile是不是锁√
  • CAS√

网络:

  • 浏览器中输入地址回车会发生什么√
  • TCP/IP协议栈有哪几层√

字节跳动:

Java SE

  • HashMap的实现√
  • 接口跟抽象类的区别(Java 8, default关键字)√

JVM

  • 老年代的垃圾回收出现的时机是什么√

数据库

  • SQL语句
  • 三大范式、BCNF范式√

手撕环节

  • 给定有n个元素一个数组,求和为x的所有可能性 Leetcode 40。(15:13-15:35, 总计用时22分钟)

东方财富

面向对象

  • 抽象 封装 继承 多态√

设计模式

  • 是什么?:解决一类问题的方式√
  • 用过什么?√
  • UML?

网络

  • TCP和UDP的区别,优缺点√
  • ICMP:控制信息
  • TCP为什么要等2MSL√

操作系统

  • 进程间通信的方式√
  • 线程间通信的方式
    • 共享内存
  • IO的几种方式√
  • 进程和线程的区别√
  • 多线程和多进程的区别√
  • 虚拟内存:交换分区√

数据库

  • ACID特性√
  • 索引的数据结构√
  • 怎么用的索引√
  • 表锁和行锁√
  • 内连接和外连接√

数据结构

  • 红黑树
  • 字典树?

JVM

  • 栈内存是什么
  • 值传递 -> 引用类型,引用的复制,引用的地址

Java SE

  • List、Set、Map
  • Java泛型
  • Java内存泄漏?
  • 对象复制:浅拷贝、深拷贝
  • Java native关键字
  • 反射
  • lambda表达式

Spring

  • 是什么
  • SpringMVC
  • Spring Bean

?

Java SE

  • 多态
  • 重载和重写
  • 静态代码块(static)
  • 静态内部类

多线程

  • 线程池的原理
  • 什么时候新建线程(最大线程数)
  • 线程状态转换
  • 进程中断发生了什么
  • 不响应中断?
    • 什么时候线程不会响应中断?
  • Lock和Synchronized的区别
  • Lock的实现原理
  • volatile了解吗
    • 做了什么(原理?)
    • 防止指令重排
    • volatile读:需要读取内存
    • volatile写:刷新到内存

设计模式

  • 策略模式

JVM

  • 运行时内存模型
  • 堆里有什么
  • CMS
  • JVM调优参数
  • 堆转储
  • Full GC(Major GC)的发生时机

数据库

  • 索引数据结构
    • B+树的数据结构
  • 索引失效?
    • 复合索引
  • 事务默认隔离级别
    • 默认隔离级别
    • 可重复读
  • MVCC
    • 隐藏字段:隐藏主键,上一版本,时间戳

Redis?

  • 如何实现分布式锁

网络

  • HTTP状态码
  • TCP
    • TIME_WAIT
    • CLOSE_WAIT

Spring

  • SpringAOP
    • 实现接口:JDK、不实现接口:CGLIB
  • Bean生命周期
    • Aware接口

SpringBoot

  • 自动装配的原理

JWT