5.19快手java转安卓一面

感觉可能因为是安卓所以主要问的使java方面(当然,主要也因为我说我安卓不会)
1.问我会不会安卓
2.首先问了我对垃圾回收算法有多少了解?然后我讲了有几种垃圾回收算法和各种收集器的基本特点
3.然后问我对hashmap了解多少?可惜我hashmap准备了半天,真面试的时候就说了一下它的底层数据结构,都没有深入的去问,都是开放性问题,然后自己说,我应该多说些的,hashmap什么线程不安全,put个元素的过程,唉,面试时一紧张,忘说了,不然我可以说10分钟。
问了下hashmap是如何实现扩容,我简单答了下,不太会,看hashmap扩容源码的时候就应该仔细看,但是吧,这也没办法,我也没法预料到会问这个,要是问我增加元素就好了。
4.然后问了下我对线程池有多少了解?
5.问我对设计模式有哪些了解?我说我就知道有单例模式,然后要我写了下单例模式,然后写着写着总有小错误。(估计印象分狂减)
问了下我对static和sychronized的理解:static没有答什么,sychronize也说得不多
6.问了下我基础数据类型有哪些,我说了下
7.然后问到了“==”和hashcode和equals答得不是很好,我忘记了
如果两个对象相等,则 hashcode 一定也是相同的
两个对象相等,对两个对象分别调用 equals 方法都返回 true
两个对象有相同的 hashcode 值,它们也不一定是相等的
因此,equals 方法被覆盖过,则 hashCode 方法也必须被覆盖
hashCode() 的默认行为是对堆上的对象产生独特值。如果没有重写 hashCode(),则该 class 的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)
8.问了下我各种排序算法的时间复杂度,要我手写一下快排
这个应该写得没问题,不过我写了半天
9.然后最后第三道算法题是合并两个有序单链表
面试官提醒我了半天我还是不太会写,唉,太菜了,告诉我要用递归去做,我先画图给他讲了下大致思路,编代码就卡了(唉,我太菜了)
10最后问了我arraylist和linklist指定位置插入元素的时间复杂度
本来打算录音纪录一下面试过程然后复盘的,结果忘了,只能想起这么多了
如果我大二自学安卓时再认真点就好了,现在忘得差不多了。
不过吧,也算是在不断准备的过程中对各种知识更加熟练了(已100分来看,今天应该有50分了,大部分问的都还是回答了,但是没深入去回答,感觉面试官开放式问法就是为了快速的了解面试的人的深度),不过感觉吧,招暑期实习的公司大多都快结束了。
还是希望能有二面吧,最好还能约个时间,这样我在准备的过程中有压力会复习得比较快。唉,复习了半天mysql,结果没用上,难受。感觉如果一面没过主要就是因为我第三道题不会写,然后第一道单例模式写得小问题太多了。
这些天准备快手面试把快手java岗的几乎所有面经都整理了一下,然鹅没有很用得上,要是我算法题会就好了,不过一口吃不成胖子,只能慢慢吃了
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        if(l1==NULL){
            return l2;
        }
        if(l2==NULL){
            return l1;
        }
        if(l1->val<=l2->val){
            l1->next=mergeTwoLists(l1->next,l2);
            return l1;
        }else{
            l2->next=mergeTwoLists(l1,l2->next);
            return l2;
        }
    }
};//就是这么简单的算法题,真可惜。 
class Singleton{
    public static volatile Singleton uniqueInstance;
    public static Singleton getUniqueInstance(){
        if(uniqueInstance==null){
            synchronized(Singleton.class){
                if(uniqueInstance==null){
                    uniqueInstance=new Singleton();
                }
            }
        }
        return uniqueInstance;
    }
//这个也很基础,面试前还写了几遍,看来对其中一些细节还没真正理解。
//两次判断为空是为了保证只创建一个实例,如果两个线程经历了第一次为空,没有第二次判断的话,分别获取到锁就会创两个实例,就有问题了
//方法返回类型是Singleton类这个类型,然后变量和方法都是static修饰的,所以调用方法时是Singleton.getUniqueInstance()




#快手实习##快手##Java工程师##实习##面经#
全部评论
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2020-05-19 16:35
从我的角度来看 你这是过不了的 不过你才大二 再准备准备再说吧
点赞 回复 分享
发布于 2020-05-19 16:39
老哥,我也是在四月份通知我Java改Android我没同意,然后一直没有通知面试
点赞 回复 分享
发布于 2020-05-19 21:06
招实习的公司都还没开始好吧
点赞 回复 分享
发布于 2020-05-20 00:20
点赞 回复 分享
发布于 2020-05-20 03:09
忽然感觉自己活该过不了了,给我出的第三题是剑指offer第25题,还是个简单题,还是刷题刷太少了
点赞 回复 分享
发布于 2020-05-20 13:24

相关推荐

重邮精神病人:客户端应届基本活不过试用期
投递英雄游戏等公司10个岗位
点赞 评论 收藏
分享
6 15 评论
分享
牛客网
牛客企业服务