快手Java实习一面(转载)

作者:huatep122
链接:https://www.nowcoder.com/discuss/421572?type=post&order=time&pos=&page=1&channel=
来源:牛客网

参加了4.12的快手笔试,但是一直没有收到面试邀请,噗,原来是我没有走内推,直接在官网投递的。。。面试官是个年轻温柔安静的小哥哥,体验非常棒。

时间:5.1

问题:

  1. 万年不变的集合开头,hashmap底层数据结构,什么时候转化为红黑树,put操作的流程,讲定位下标的时候说到了扰动,又问扰动的过程和好处(讲一半小哥哥网不稳定,掉线了,,,)https://blog.csdn.net/the_one_and_only/article/details/81665098?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1
  2.  数组和链表/红黑树组成的,简单来说,HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,仅需一次寻址即可;如果定位到的数组包含链表,对于添加操作,其时间复杂度为O(n),首先遍历链表,存在即覆盖,否则新增;对于查找操作来讲,仍需遍历链表,然后通过key对象的equals方法逐一比对查找。所以,性能考虑,HashMap中的链表出现越少,性能才会越好。

    put流程:

     扰动:https://www.zhihu.com/question/20733617

  3. hashmap线程安全吗?线程安全的方式有哪些? 不安全
  4. concurrenthashmap怎么样去保证线程安全的  (分段锁)https://blog.csdn.net/qq_41737716/article/details/90549847 
  5.  put操作时,把当前这个下标锁住,不让其他的线程修改。

    JDK1,8,用了乐观锁CAS,

6.常见排序算法的时间复杂度(干,我为什么要说桶排序,明明不记得了)

7.算法题:一棵树的右视图,小哥哥说在框里写,,,我还没问能不能用ide呢,,,

 

 层次遍历,只记录每一行最后一个元素即可,二叉树层次遍历可以看这个:https://www.cnblogs.com/lzh1043060917/p/12826640.html

8.面试官:项目怎么部署的。我:单机项目,springboot内嵌的tomcat。面试官: 那你访问页面的时候怎么找到你的方法?我:一开始没听明白,后来理解了,是url访问的流程加springmvc的过程,emmm不好意思,中间忘记说tomcat干啥活了

https://www.cnblogs.com/wangjiming/p/10487832.html   (不太懂,大概是下面这样吧)

 

 

9.进程?线程?进程和线程的通信方式?进程调度算法(不会)

https://www.cnblogs.com/qianqiannian/p/7010909.html

 

 进程间通信主要包括管道、系统IPC(包括消息队列、信号量、信号、共享内存等)、以及套接字socket。

 

 

10.TCP连接断开的流程简单描述

  四次挥手,图上写错了

 

 

11.每种垃圾回收算法的原理和适用,G1简单说了下设计思想

https://www.nowcoder.com/tutorial/94/3c8ee97ffa0e44c2b00c63a2a0a611fa

 

 

标记清除;标记整理;复制算法;增量算法(如果一次性将所有的垃圾进行处理,需要造成系统长时间的停顿,那么就可以让垃圾收集线程和应用程序线程交替执行。每次,垃圾收集线程只收集一小片区域的内存空间,接着切换到应用程序线程。依次反复,直到垃圾收集完成。

 

 

 

12.一个链表有没有环怎么判断

快慢指针    https://blog.csdn.net/u010983881/article/details/78896293

 

 

大概就是这些内容了,还有些忘记了,鱼的记忆,是我没错。祝大家节日快乐~~~
---------------------------------------------------------------------
鱼想起了一个问题,开始问的是基本数据类型各占多少位,char好像答错了,原谅身为菜鸡的我。float能不能准确的表示小数,int类型的范围

1.字节:byte:用来计量存储容量的一种计量单位;位:bit

2.一个字节等于8位  1byte = 8bit

char占用的是2个字节 16位,所以一个char类型的可以存储一个汉字。

整型:

byte:1个字节 8位 -128~127

short :2个字节 16位 (-2^15~2^15-1)

int :4个字节 32位 (-2^31~2^31-1)

long:8个字节 64位 (-2^63~2^63-1)

浮点型:

float:4个字节 32 位

double :8个字节 64位

 
 
 
还有Throwable接口下的异常和错误     https://blog.csdn.net/a499663321/article/details/80614515
 

 

 

 

 

 

 

posted @ 2020-05-06 16:47  弓呆的胖次  阅读(326)  评论(0编辑  收藏  举报