快手一面凉经

面试的时候断网两次,好惨啊。按照牛友的经验,快手都是连续面试的,而一面面试官却让我等消息。哎,估计凉了。不过面试官还是很好的,断网两次也没有介意,nice。

然后面试情况,前面表现还可以,但是,到了后面的时候,算法写的不好,一道跳台阶,我以为是变态跳台阶,就按照变态跳台阶说了。没想到,是最简单的跳台阶。。。。无语了。第一次视频面试写算法,这方面还是表现不好。下次注意了,视频面试最重要的还是认真听,然后再进行一个分析,再动手,而不是试图从脑海搜索题目,然后就开干。

那么,面经写上:

  1. 写一个单例模式
    答:一个类的构造函数私有化,然后在类中定义一个私有静态变量,通过一个静态函数get获得私有变量实例即可实现单例。如果想要懒加载,可以用上双重检验锁在get函数中。

    public class SingleObject {
    //创建 SingleObject 的一个对象
    private static SingleObject instance = new SingleObject();
    
    //让构造函数为 private,这样该类就不会被实例化
    private SingleObject(){}
    
    //获取唯一可用的对象
    public static SingleObject getInstance(){
       if(instance==null){
           syscronicsed(this){
               if(instance==null){
                     instance = new SingleObject();
                 }
             }
       }
       return instance;
    }
    
    public void showMessage(){
       System.out.println("Hello World!");
    }
    }
  2. 跳台阶算法,剑指的原题.只不过不用递归,用的是一个栈加循环实现。

  3. error和exception的区别。举例子
    答:error是错误,而exception是异常。
    error是jvm无法解决处理的错误,一旦发生,进程坏死,停止运行。常见的错误有:oom,NoClassDefFoundError,StackOverflowError。
    而exception是异常。有两个类别:运行期和非运行期:
    其中运行期是程序负责搞定的,即,不要catch的,而非运行期是编译器负责的,要显式的catch。
    运行期异常有:空指针,下标越界异常,数字格式异常
    而非运行期有:ClassNotFoundException和IO操作异常。(这两类是要显示捕获的,所以加载mysql驱动的时候,要catch。)

  4. 补充一个:ClassNotFoundException和NoClassDefFoundError的区别
    答:
    当应用程序运行的过程中尝试使用类加载器去加载Class文件的时候,如果没有在classpath中查找到指定的类,就会抛出ClassNotFoundException。
    当JVM在加载一个类的时候,如果这个类在编译时是可用的,但是在运行时找不到这个类的定义的时候,JVM就会抛出一个NoClassDefFoundError错误。比如当我们在new一个类的实例的时候,如果在运行是类找不到,则会抛出一个NoClassDefFoundError的错误。
    (这个情况是我们的class文件被删除了)
    总结:当动态加载Class的时候找不到类会抛出异常,当编译后找不到类的时候,会抛error

  5. 强应用和弱应用和软引用的区别。
    答:强引用,就是标记了引用,不会直接回收的;而弱引用是gc下一次回收会发现的。而软引用我忘了,回答不知道。
    回去好好查了一下后发现:
    强引用,在内存不足的时候,宁可报错:oom,也不会回收。而我们程序中有些对象其实没有这么重要,那些对象我们可以用引用级别标明。这样内存不足的时候,标记了软弱虚引用的对象会被回收。
    而软引用是:在gc后还内存不足的时候,才会去回收,平时不会回收;
    弱引用是:在GC的时候,不管内存空间足不足都会回收这个对象。
    虚引用:直接回收了,就像没有引用一样gcroot找不到一样。但是会有一个回调函数,比如打印一个日志:我被回收了之类的。

  6. hahsmap的扩容。
    答:就是新开一个2倍大小的空间,然后用头插法插入到新的位置;而1.8版本的话,是会用位运算求出节点的位置。

  7. spring的ioc和aop
    答:简单解释了一下,动态代理和代理的两个类别;还有就是反射机制实现了ioc加载bean。而aop是动态代理实现了扩招功能。

  8. 计算机网络的7层结构:
    答:物理层,链路层,网络层,传输层,应用层(应用层,展示层,通信层)

  9. tcp的三次握手,以及为什么要三次握手。
    答:防止消息在网络中延迟,导致建立无用的通道

  10. private那四个权限的限制
    答:一个是标记的变量只能自己使用,一个是标记的变量可以让父子都可以访问,一个是可以接收同一个包的其他类的引用,一个是所有的其他包都可以引用。

  11. http的状态码和每个状态码的含义
    答:我说出了5类状态码的含义,但是,每一类状态码中,具体每个类别有那些码,我还真不知道。这个问题,发现很多面试官喜欢问,要好好准备这个了。

  12. 网络中传输层的作用
    答:就是跨主机两个进程之间通信,比如接用tcp之类的,端口端口之间搭建通道,就是传输层解决的。让两个进程可以实现通常。屏蔽了网络,物理等底层。

  13. 还有一道题,是这样的:Number[] a=new Integer[]{0},问,编译是否通过?
    答:我说的是,编译不可以,赋值的时候,没有指定大小。结果是,不会有错误。。。因为后面赋值{0},就代表,这个数组的大小赋值为了1,而且初值为0。

  14. 还有一道题是countdownlatch的,看代码,判断输出是什么。
    答:我看了以后,发现没有保证原子性,所以i++输出的结果不会如预期。而后让我将他改为串行,我用了join,用了lock,用了sysc三个进行上锁。实现了一个同步。同时,为了保证可见性,还在共有变量上加上了一个volatile。

    总结

    面试常见的题目需要搞懂来,同时,面试的时候一定有题目是你没有遇到的,这个时候,不要慌,按照自己学习到的知识体系,进行一个良好的分析即可,相信自己。还有就是视频的笔试,需要认真听题目,不要没听完题目就开始做题。冷静是面试最基本的素质。虽说平时很优秀,但是不是每一个面试官都可以在面试过程中了解你平时的表现的。哪怕你简历写的很好,在面试中也要从容展示自我,才可以表现出自己的优点。

#快手##Java工程师##实习##面经#
全部评论
😂偶遇校友,你找到实习了吗
点赞 回复 分享
发布于 2020-05-13 23:07
答主,你的回答就像上面写的这么简单吗
点赞 回复 分享
发布于 2020-05-10 13:58
是实习面试吗
点赞 回复 分享
发布于 2020-05-09 22:34
单例模式那里,定义成员变量的时候不用初始化吧
点赞 回复 分享
发布于 2020-05-08 12:46
应该没凉吧
点赞 回复 分享
发布于 2020-05-08 12:41
30号一面的,也是等消息,应该凉了
点赞 回复 分享
发布于 2020-05-07 19:31
楼主已经很强了
点赞 回复 分享
发布于 2020-05-07 19:15

相关推荐

04-10 11:02
已编辑
北方民族大学 全栈开发
“无名小卒,还是名扬天下?”我知道很多人都不觉得我能走到今天这一步,当然,也包括我自己。在我的人生里,有两部作品刻下了最深的烙印:《斗破苍穹》与《龙族》。它们总被人拿来对照:一边是萧炎的桀骜轻狂,一边是路明非的怯懦衰颓。有人说,天蚕土豆没见过魂天帝,但江南见过真凯撒。我时常觉得,自己就是那个衰小孩路明非。可路明非可以开挂,我不可以;我也无数次幻想过,能拥有萧炎那般年少轻狂的人生,可我没有他与生俱来的逆天天赋。我只是个平庸的普通人,一个看过《斗破苍穹》却开不了挂的路明非,只能一步一步往上爬。从我下定决心找实习的那一刻起,我就给自己定下了目标:“我一定要为字节跳动卖命.jpg”。萧炎有他的三年之约,我有我的两年半之约(其实是一年半)。2024.11.20,科大讯飞的第一封实习offer落进邮箱,我迈出了这场奔赴的第一步。2025.8.18,放弃百度转正的安稳机会,转身走进前路未卜的不确定里。我很感谢我在百度的mentor,是她从茫茫人海选中了我,给了我大厂实习的机会。即便有段时间我状态差、产出不理想,她依旧愿意认可我、希望我留下转正。2025.11.14,我选择走进字节跳动,以实习生的身份重新出发。2026.3.25 - 3.31,一周速通上海飞书,幸遇赏识我的伯乐,斩获Special Offer。被告知面试通过的那一刻,我的内心无比平静,就像这个offer本就该属于我。不是侥幸,是应得的。这一路,有人看轻过我的出身,不相信我能走到这里;也有人在我看不见前路的时候,替我举过灯。没有他们的鼓励与支撑,就没有今天站在这里的我。我看到了自强不息的激荡,那是一个双非的伟大乐章!我是雨夜迈巴赫,我要开启属于我的新篇章了。
在看牛客的本杰明很勇...:真心祝贺l总 我永远的偶像 我滴神
春招至今,你收到几个面试...
点赞 评论 收藏
分享
评论
5
21
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务