2018.07.19 面头条安卓实习

本文记录了一场Java技术面试的全过程,涉及线程同步、锁机制、设计模式等基础知识,并探讨了JVM内存模型、方法栈机制及垃圾回收策略。此外,还考察了候选人对常见算法的理解与实现能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来个自我介绍
Blablabla
下面是正式问的问题,总体来说比较基础。面试官大佬是沿着问题来深入继续问的

1.  对线程同步/互斥理解
2.  锁的概念
    a)  包括在wait时要怎么唤醒
    b)  Wait 和 sleep的区别
3.  Synchronized 和 Lock 区别
4.  死锁的原因
5.  进程和线程的区别
6.  进程之间的数据共享
    a)  顺便问了下安卓四大组件
7.  进程最大能占用多少内存空间
8.  设计模式(我说了个生产者消费者模式
9.  用synchronized编程生产者消费者模式
10. Activity的启动模式有哪些

下面因为知道我不是科班出身(大概),然后问了些比较基础的算法题(忘了顺序

1.  红黑树(不过我不会
2.  哈夫曼编码原理
3.  二叉树知道吧(了解了解),那写个二叉树的广度遍历呗
于是我没听清广度,不小心写了个深度遍历。然后面试官开始引导应该咋写。然后我ummmmm强行按照理解写了下,然后他再提示了下……最后没写出来
4.  堆的概念。堆排序的概念(懂概念
5.  编程堆排序(不会again

算法的大概是这些了,这部分扯了有半个多小时的样子
然后大致说了说

1.  JVM的内存模型
2.  方法栈的概念,存放的东西
3.  假如从方法A跳到方法B,B 里的return机制是一个怎么样的过程
结果我说JAVA里的我不大清楚,但是可以扯一下做C/C++里的原理(我想大致是差不多的
4.  JVM的垃圾处理的时间(这个是因为扯了点C++方面的东西,然后我提到了一下用delete清内存,于是问这个)
5.  网络模型(http  TCP/IP 之类的,不过我不大会
6.  Hashmap & 是否线程安全
7.  怎么优化数据库

好了大概是这些,总时长是1小时11分钟。
应该还有一些内容忘记了,下次可以录个音
说起来面试前准备的东西用到了60%,还远远不够

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值