9.6 钉钉一面安卓端(最害怕的一集)

笔试

题目是 “最长不重复字母子串长度

15分钟写完代码,讲解思路,放到main方法,提供几个测试用例。

有bug,改!改完还有bug,没事继续改!

没问题了,能优化这算法吗?性能优化。

还能优化吗?不只是性能,从各方各面,比如现在要把代码commit上去,有哪些要注意的地方?

自己没看出来,后面面试官提示了:代码缩进,入参校验。

整个笔试花了接近30分钟。

面试

  1. 主用语言是java还是kotlin?
    1. **java主要写哪些方面的内容?比如IO,并发等?**这里没答上来,因为平时并不负责某一模块,有什么需要我就去写什么,而且做的事情也比较单一,并不复杂。需要对这一块做一个刻意练习。
  2. 这里对我讲到的项目一个功能展开说
    1. **自定义注解实现检查字段上传功能。**这里我的表述有问题,我说了上传其实是把数据放到请求的body里,而他认为是上传功能,通过上面途径去上传,文件还是?这里可以对上传功能做一个润色。
    2. **还有什么场景需要用到这个功能?**定时任务,原来是用了Thread一分钟执行一次,尝试使用过AlarmWorker,但是效果较差,延迟较高,测试不通过。面试官问:这个定时任务一般配置多长时间?你是怎么保证他能在规定时间生效的?这里没有好方法,让我回去之后好好考虑间隔一段时间去执行任务到底怎么做,能不能做。
  3. 项目遇到存储需要对数据进行持久化的时候该怎么办?
    1. **sqlite用得多吗?**不多。
    2. **假设要提高查询性能一般有哪些方法?**建立索引。**怎么建?**不知道。
    3. **事务知道的多吗?**不多,知道一些原理。就没继续问了。
  4. JAVA的垃圾回收知道吗?
    1. 了解过,说了两个复制算法和标记清除。不过他好像对这个不感兴趣,打断了。
    2. JAVA常用的引用类型清楚吗?
      1. **强软弱虚引用的作用和区别,说下自己的理解。**强引用就是直接声明的引用,软引用和弱引用的对象需要继承各自的Reference类的子类。(这里介绍的也不深)
      2. 提到了ThreadLocal的Entry也用到了弱引用。(这里由于我个人发音的问题加上麦克风质量不好,我的ThreadLocal,很容易听成FredLocal。他也没打断,我一直说。到后面他才反应过来,你说的应该是ThreadLocal吧,我说是啊。然后他笑的很大声,说一直疑惑什么是FredLocal。)
  5. ThreadLocal用到了弱引用是为了防止内存泄漏,引出了内存泄漏这个话题
    1. **说下对内存泄露的理解。**提到了Handler机制,为什么会发生内存泄漏。注意怎么避免内存泄漏。
    2. **抛开Handler机制内存泄漏的例子,内存泄漏的本质是什么?**一个不再需要的对象在垃圾回收的时候应该被回收,而由于不正当的处理导致它不能被回收仍然占用着内存。
    3. **还有哪些场景需要注意内存泄漏问题?**这里也没说好,硬扯了一个注册广播和服务。这里被追问了,如果在onStop把功能停了,那原来的那些数据怎么保存?然后我说了savedInstance?,他笑了笑说,它不是用来干这个的。下去好好看看。
  6. 用过的常见的JAVA集合有哪些?知道的,用过的都可以说。
    1. 这里只说了ArrayList,LinkedList,HashMap,HashSet,ConcurrentMap
    2. **对ConcurrentMap发起提问,是用来解决什么问题,是怎么解决的?**用来解决HashMap并发写入问题。具体是什么问题?两个线程对一个HashMap的同一个桶进行操作的时候导致导致其中一个被覆盖。
  7. 设计模式用过吗?设计模式的分类,三大类。哪三大类?
    1. 创建型,结构型?不知道了。他说平时开发过程中也可以多去思考一下,会发现很多都是这几类的。
    2. **那你自己用过哪些?**了解比较深的是,单例,观察者,责任链,适配器。
    3. **自己写的话写过哪些?**单例。他好像不感兴趣(确实,这个听多了就没啥意思了,下次可以换观察者说)
    4. 设计模式的一些原则,如何理解依赖倒置原则。刚好提前看了设计模式的原则,应该是用来解决循环依赖的,然后我就说了把需要被多个模块引用的类放在低级模块也就是base模块,然后需要用到的其他模块就去引用base模块,从而避免了两个高级模块之间的互相引用。(说完他说稍等他去搜一下这个依赖倒置原则…
  8. 操作系统
    1. **你理解进程的概念吗?**说了一些基本概念,开了进程操作系统就要分配虚拟空间。这里被打断了,应该是对内存空间比较感兴趣。
    2. **怎么理解操作系统分配的内存空间?**每个进程分配的都是虚拟内存,用户申请了内存就向操作系统的页表生成一个页表项,用到这块内存再去申请物理内存。
    3. **一个应用可以有多个进程,怎么理解多进程,你们公司或者自己项目也没有用到多进程,优势是什么?**这里也不知道,纯瞎扯,比如多开一个进程分担一些进程的负担,什么负担?比如Linux限制一个进程最多打开的文件描述符是1024个,如果需要打开的fd比较多,那就多开一个(这里说出来我自己都不敢相信)
    4. **你说的是Linux的,那安卓的呢?**安卓也是基于Linux内核,应该同样受限制吧?
    5. 你结合这个跟前面说的保活一起去看一下,多进程和保活。
  9. 网络这一块,简单问几个问题(翻车)
    1. **应用层和传输层常见的协议。**应用层:HTTP,HTTPS,FTP,SNMP,FTP。传输层:TCP和UDP。
    2. **你们公司用什么协议?**HTTPS。S是什么?SSL,HTTP是明文传输,HTTPS对信息加密。双方SSL连接之后,加密发送信息,用公钥解密。(天呐我居然说了公钥,我原以为对HTTPS很熟悉了,结果在关键时刻还是忘了,忘记客户端最重要的key就是PreMaster了,它用服务器的公钥加密,只有服务器的私钥能解密。所以应该是私钥解密?但是我没有说出来是私钥,因为它不是传统的那种私钥,因为服务器是知道客户端的私钥的,所以我就不认为是私钥了)。虽然确实不是私钥,到那时我也没有解释清楚。面试官还是让我下来再好好看一下
  10. 说一下自己的优势,硬实力软实力都可以说。
    1. 这是全场最尴尬的一个环节,从来没想过,只能说自己勤奋和活泼了。

反问

钉钉安卓端分部门或者小组吗?

  1. 分的,他是IM组(不知道是IM还是IMF?),就是界面这一块,打开钉钉看到的这些界面都是他们负责的。

最后:

面试就到这里结束,后面的话,流程那种都关注一下!

alt

#秋招##面试##面经#
全部评论
感觉同一个面试官
点赞 回复 分享
发布于 2023-09-11 19:15 江苏

相关推荐

03-15 00:45
已编辑
中国科学院大学 Java
问的很简单都秒了,但是面试官没开摄像头,疑似kpi,无后续。--------------------3/14更新,3/12通知给了口头offer,3/13发了意向书,已拒。一面(35min)(25/3/6)(无后续)    1、自我介绍    2、介绍一下你的那个Python相关项目(本科毕设,web系统+算法模型提供部分接口)    3、Java面向对象有哪些特点呢?详细说一下。    4、介绍一下hashmap;为什么要把链表转换为红黑树呢?红黑树查找的时间复杂度?1.7和1.8的区别。    5、介绍一下concurrentHashmap。    6、synchronized锁和Lock锁有什么区别?    7、公平锁的一个底层是怎么实现的呢?    8、线程池的核心参数、拒绝策略、提交一个任务执行流程?    9、spring有哪些特点?(ioc/aop)    10、spring中对于循环依赖是怎么解决的?    11、MySQL和redis的区别?    12、MySQL的索引结构是什么?    13、MySQL的事务有哪些特性?怎么保证?    14、MySQL的默认隔离级别?可重复读是怎么做到的呢?    15、介绍一下MVCC和快照读readview。    16、一般在什么场景下会使用redis?    17、对于大量的请求,如果此时缓存中还没有写入数据怎么办?    18、介绍一下redis实现的分布式锁。    19、有用过es和mongo DB吗?(知道,没用过)    20、消息中间件用过吗?说一下你的使用场景?    21、一个场景,如果说有一个接口响应的比较慢,如果说让你排查,你会怎么去排查?(上下游接口、大key问题,只答了两,后面试官补充)    无手撕,反问业务。
胖墩墩的查理在学c语言:哥们我是五号面的 流程差不多
查看21道真题和解析
点赞 评论 收藏
分享
03-16 11:19
已编辑
门头沟学院 Java
已经一年没发牛客了,为什么呢,因为没脸发... 一年前的我自认为在25届中技术一流,八股无敌,项目出色,但是一年校招的蹉跎让我差点转行。24年春招收割了十几个实习 offer 之后我去了某家大厂实习到9月份转正失败,那时候的我还没有意识到噩梦将来,7月因为投秋招提前批没反馈,于是开始投了几个实习转正岗位练手又拿了3个中大厂 offer,这时的我沉浸在我自以为是的骄傲里。9月秋招正式批开始后我几乎把我能找到的所有的岗位都投了一遍,只收获了大厂海笔,0面试。10月份第一家给我面试的公司是数字马力(蚂蚁的内包),诚恳的说,当时收到这家面试是嚣张的,觉得我拿这个 offer 如探囊取物,就当个保底吧。...
中街牛奶提子:是啊,不应该在秋招的时候继续投实习岗。也劝26届的,八月末后,实习岗就不应该投,给人错误的行情认知。佬是学院本,觉得约面难,双非何尝不是一样呢,秋招战场的激烈和实习完全不同。当时我秋招的时候也是边面实习,当时面实习面一个过一个觉得自己很优越,觉得能收获一堆实习offer那秋招肯定也行。为什么要在秋招拿一堆实习offer增强自己所谓的虚荣心,当时就是贱,为了所谓的攀比虚荣心
点赞 评论 收藏
分享
评论
3
20
分享

创作者周榜

更多
牛客网
牛客企业服务