android面试之今日头条-字节跳动-android社招面试(附答案)(1)

}

  1. Android相关

线程的阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。
主线程Looper从消息队列读取消息,当读完所有消息时,主线程阻塞。子线程往消息队列发送消息,并且往管道文件写数据,主线程即被唤醒,从管道文件读取数据,主线程被唤醒只是为了读取消息,当消息读取完毕,再次睡眠。因此loop的循环并不会对CPU性能有过多的消耗。

  1. 项目相关
  • 用MultiDex解决何事?其根本原因在于?Dex如何优化?主Dex放哪些东西?主Dex和其他
    Dex调用、关联?Odex优化点在于什么?
  • 答案:MultiDex解决方法数65535的限制问题,即方法数不能超过65535个;方法id是short类型4个字节来存储的,所以数目范围应在0-2^32即0-65535;MultiDex工作原理分析和优化方案; 主dex中:应用启动就必须加载的类,有一个keep文件来控制;其他dex文件都是通过主dex加载进来的;odex优化点:预加载;
  • Dalvik和Art虚拟机区别?
  • 多渠道打包如何实现(Flavor、Dimension应用)?从母包生出渠道包实现方法?渠道标识替换原理?
  • Android打包哪些类型文件不能混淆?

a. 四大组件

  1. 架构

二面

  1. Glide缓存特点
  2. 问了擅长哪个方向?回答UI动画,所以就问UI相关的
  1. 算法题

public static void main(String[] args){
Counter counter=new Counter();
new Thread(new PrintOdd(counter)).start();
new Thread(new PrintEven(counter)).start();
}

static class PrintOdd implements Runnable {
public Counter counter;

public PrintOdd(Counter counter) {
this.counter = counter;
}

@Override
public void run() {
while (counter.value<=100){
synchronized (counter){
if(counter.odd){
System.out.println(Thread.currentThread().getName()+“:”+counter.value);
counter.value++;
counter.odd=!counter.odd;
counter.notify();
}
try {
counter.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
static class PrintEven implements Runnable {
public Counter counter;

public PrintEven(Counter counter) {
this.counter = counter;
}

@Override
public void run() {
while (counter.value<=100){
synchronized (counter){
if(!counter.odd){
System.out.println(Thread.currentThread().getName()+“:”+counter.value);
counter.value++;
counter.odd = !counter.odd;
counter.notify();
}
try {
counter.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

尾声

一转眼时间真的过的飞快。我们各奔东西,也各自踏上了自己的旅途,但是即使多年不见,也因为这份情谊我们依旧如从前那般“亲密”。不忘初心方得始终。加油吧,程序员们,在我看来35岁,40岁从来不是危机,只要永远不要忘记自己为何踏上征程!

为了让更多在学习中或者最近要准备面试的朋友们看到这篇文章,希望你们能多多评论,点赞+转发!

再次感谢所有给我提供过题目的朋友们,感谢一路有你!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值