字节抖音支付java实习一面(2022.2.23),估计凉了
首先想说的就是阿里和字节的面试体验都是超好的,字节一面是一个小哥,看起来挺温柔,也会引导你
(自我介绍1分钟)
1、说说String、String Builder、StringBuffer的区别?
首先讲了一下String的不可变性,然后说了一下Stringbuffer是线程安全的,然后这里怎么也想不出来到底怎么说StringBuilder的特点了(建议回答的时候先说出三者的特点,然后讲讲自己的操作,StringBuffer是如何保证线程的安全的,String是如何进行存储并且产生了一个新的对象这个也讲讲,可以讲讲它存放的具***置在哪里?StringBuilder又是怎么一个线程不安全的?2、怎么保证http的可靠传输?
当时就是讲了一下http和https的区别,然后就是http是明文传输,然后回答了一下TCP的确认连接,也就是三次握手四次挥手这些,感觉没有答到点上(建议回答的时候回答TCP如何保证数据可靠性,从校验和、序列号、确认应答机制(ACK)、超时重传、流量控制、拥塞控制以及三次握手和四次挥手多方面进行解答)3、说说单例模式?他们是线程安全的吗?如何保证线程安全?
这里就说了一下懒汉、饿汉、饱汉,以及他们的代码是怎么写的,以及优化它们如何保证安全,以及讲了一下他们对应的缺点这些。4、http和https的区别讲讲?
这里就举了一个例子,就是当你搜索浏览器的地址的时候,浏览器如何进行请求DNS的区别,如何进行的解密,当然,这个是https,然后说了一下http是明文传输,也说了它的缺点5、synchronized你是怎么用的?可以怎么用?
这里就说了一下用在哪里,说了一下synchronized的性质。6、线程池是怎么创建的,参数的类型你能够说说吗?
答的还不错,就是之前简单的标准线程池如何创建,自己创建的话又是如何创建,创建的过程中对应的参数也答了一下7、进程和线程的关系是什么?你能说说进程间的通信方式吗?说完之后你还可以说说线程之间的一个通信方式?
讲了进程间的通信方式,但是漏说了线程间的通信方式,说了一下二者之间的关系8、Redis说说它的五种数据类型?然后zset能讲讲吗?Redis的持久化机制,你能够讲讲?缓存击穿说说?
于是我就开始说了一大堆的AOF和RDB是如何进行持久化的,不过下来还是要进行复盘一下redis相关的知识。zset就是有序性质,AOF和RDB,二者是怎么进行的,面试官问了一下你的redis是如何进行数据持久化的,我说是AOF,然后还问了一下缓存击穿,缓存击穿我就从原因开始讲,然后又从它的方式上面如何进行解决的来讲。9、float和double讲讲?Java的总的一个数据类型讲讲?
就是精度嘛,float是单精度,有四个字节,double是双精度,有八个字节,单精度的有效位数是八位,双精度是16位的,但其实百度上又说float是七位,因为还有正负号。10、MySQL有哪些索引?
直接说了有普通索引、唯一索引、主键索引、组合索引、全文索引,然后说了一下索引的好处和坏处,这里也可以进行一下实践,如自己建立一下这些索引,让你的记忆能够根深蒂固。11、GC的机制讲讲?说说标记整理算法的过程?
这里就说了一下垃圾清除的几大算法以及如何对新生代和老年代进行的垃圾回收。12、深拷贝和浅拷贝?
这里答得不好13、nginx的反向代理讲讲?
这还答得不错,就是为什么要进行反向代理,如何进行的反向代理,以及原理。14、http的版本之间的区别?
就说了一下1.0、1.1、2.0之间的区别。15、http是如何保证可靠传输的?
16、JVM内存模型你了解吗?可以简单讲讲你是怎么做的吗?
这个就是回答了五个内存区域,然后还举了一下存储的东西分别放在了什么地方17、如何保证线程安全,除了synchronized
回答了可以创建线程池,还有valtaile,18、Mysql里面的隔离性你能讲讲吗?
这个就首先介绍了为什么出现了Mysql隔离性,是因为会出现脏读、不可重复读、幻读这些,然后是如何脏成的,然后说了一下隔离级别这些。
17、八皇后(这个实在想不出来怎么ac,但是说了一下思路)?两个栈实现一个队列(ac)
反问:请问面试官您认为一个优秀的毕业生应该具备什么样的学习态度或者技术掌握能力呢?
面试官:应该更加注重踏实的学习态度,学习任何技术都要深究下去,不能只是蜻蜓点水,然后还有一个就是坚持,我看你有写博客的习惯,这是一个很好的,要保持下去,还有就是基础知识的掌握,高楼平地起,要打好根基。
#Java求职##实习##面经##字节跳动##java工程师#