归纳别人的字节跳动后台开发实习生一二面经

一面(一个小时)
1、int和Integer、final关键字
Integer是int 的封装类,java有自动装箱和自动拆箱。自动装箱:将基本数据类型转换为引用数据类型(对象),自动拆箱:将引用数据类型转换为基本数据类型。
归纳别人的字节跳动后台开发实习生一二面经_第1张图片
区别:

  • int是基本数据类型,Integer是引用数据类型;
  • int默认值是0,Integer默认值是null;
  • int类型直接存储数值,Integer需要实例化对象,指向对象的地址。

值比较:

  • 都是封装类,都是new出来的,肯定不相等。因为对象的内存地址不一样。
  • 都是封装类,都不是new出来的,如果值在-128~127之间,那就相等,否则不相等。
  • 如果是封装类和基本类型进行比较,只要数值相等那就相等,否则就不相等。因为封装类和基本数据类型进行比较的时候会有一个自动拆箱操作。
  • 都是基本数据类型,如果数值相等,那就相等;否则不相等。
    final关键字,博客借鉴:
    https://blog.csdn.net/qq_42651904/article/details/87708198
    https://blog.csdn.net/stypace/article/details/42102181
    2、hashmap的get、rehash
    3、jvm如何判断对象是否可被回收,哪些可以做为GC Roots
    4、输入网址发生了哪些事情
    5、浏览器渲染页面问题(HTML,CSS)
    6、redis分布式锁、Tomcat、nginx、项目部署过程
    7、其它编程语言的内存管理如何实现,如c/c++
    算法题:
    1、两数相加(LeetCode 2)

二面(一个小时)
1、怼项目,问的很深
2、redis的网络模型,为什么不用线程池而用单线程
3、操作系统的spinlock与Java中的锁的区别(因为简历中提到了死锁)
4、MySQL的主从复制原理,读写分离在代码层如何实现的
5、redis的mget与pipeline的区别
算法题:
1、数组中每个数右边第一个比它大的元素(LeetCode 1019)
2、二叉树的最近公共祖先(LeetCode 236)

你可能感兴趣的:(笔试面试题)