• List《String》中插入Int?

泛型再编译时期确认,利用反射再运行时期可以插入

  • 点击App图标,应用的启动流程
  • 线程池队列满了的操作?

如果线程数量没有达到线程池设置的最大值,创建一个非核心线程执行任务,否则抛出异常来拒绝。

  • 面向对象的三大基本特征

封装、继承、多态。

  • 线程池构造函数的含义

corePoolSize线程池中的核心线程数,核心线程一直存活在线程池中,即便他们在线程池中处于闲置状态。 maximumPoolSize线程池中所容纳的最大线程数,如果活动的线程达到这个数值以后,后续的新任务将会被阻塞。keepAliveTime非核心线程闲置时的超时时长,对于非核心线程,闲置时间超过这个时间,非核心线程就会被回收。unit用于指定keepAliveTime参数的时间单位。天(TimeUnit.DAYS),小时(TimeUnit.HOURS),分钟(TimeUnit.MINUTES),毫秒(TimeUnit.MILLISECONDS),微秒(TimeUnit.MICROSECONDS, 千分之一毫秒)和毫微秒(TimeUnit.NANOSECONDS, 千分之一微秒);workQueue线程池中保存等待执行的任务的阻塞队列。我们还能够通过实现BlockingQueue接口来自定义我们所需要的阻塞队列。threadFactory线程工厂,为线程池提供新线程的创建。ThreadFactory是一个接口,里面只有一个newThread方法。 默认为DefaultThreadFactory类。handler是RejectedExecutionHandler对象,而RejectedExecutionHandler是一个接口,里面只有一个rejectedExecution方法。

  • 泛型在编译时期有用吗

在运行时期泛型就被擦除了,可以用反射在运行时期加入不同类型。

  • 注解

内建注解,自定义注解,元Annotation

  • Volatile

对于可见性,Java提供了volatile关键字来保证可见性。
当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。
而普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什么时候被写入主存是不确定的,当其他线程去读取时,此时内存中可能还是原来的旧值,因此无法保证可见性。

  • APK编译流程

1:打包资源文件,生成R.java文件
2:处理aidl文件,生成相应的java文件(如果项目中没有定义aidl则这一步跳过)
3:编译工程源码,生成响应的class文件
4:转换所有的class文件生成class.dex文件
5:打包生成apk文件
6:对apk文件进行签名
7:对签名后的apk文件进行对齐处理

  • APK 签名类型

V1签名:
来自JDK(jarsigner), 对zip压缩包的每个文件进行验证, 不对zip本身校验,所以签名后还能对压缩包修改(移动/重新压缩文件)
对V1签名的apk/jar解压,在META-INF存放签名文件(MANIFEST.MF, CERT.SF, CERT.RSA),
其中MANIFEST.MF文件保存所有文件的SHA1指纹(除了META-INF文件), 由此可知: V1签名是对压缩包中单个文件签名验证
V2签名:
来自Google(apksigner), 对zip压缩包的整个文件验证, 签名后不能修改压缩包(包括zipalign),
对V2签名的apk解压,没有发现签名文件,重新压缩后V2签名就失效, 由此可知: V2签名是对整个APK签名验证
V2签名优点很明显:
签名更安全(不能修改压缩包)
签名验证时间更短(不需要解压验证),因而安装速度加快
注意: apksigner工具默认同时使用V1和V2签名,以兼容Android 7.0以下版本

  • Fragment传参问题

不用构造方法而,而是用setArgument() 和newInstance(),newInstace内部就是调用的setArgument,用这种方式创建的Fragment会把参数保存在bundle中,当横竖屏切换时,fragment会重建,参数也不会消失。

  • 性能优化

https://lrh1993.gitbooks.io/android_interview_guide/content/android/advance/performance-optimization.html

  • Activity四种启动模式

标准模式(standard)
栈顶复用模式(singleTop)
栈内复用模式(singleTask)
单例模式(singleInstance)

  • Activity的三种运行状态

Resumed(活动状态)Paused(暂停状态)Stopped(停止状态)

  • 进程间通信方式

Intent,contentProvider,sharedPreference,Messenger,AIDL,Socket

  • binder
  • App启动流程

Launcher进程向system_server进程发送startActivity请求,zygote创建子进程用作app的进程,app进程向system_server发送attachApplication请求,system_server再向app进程发送scheduleLaunchActivity请求,app进程收到请求通过handler向主线程发送LAUNCH_ACTIVITY消息,app主线程收到message消息后通过发射机制创建activity,在回调oncreate等方法,ui渲染后界面就显示出来。

  • Binder
  • HTTPS为什么安全
  • 并发和并行
  • http(s)的实现原理,请求报文格式,相应格式
  • 多线程,kotlin如何实现多线程,多线程加锁原理
  • tcp的三次握手
  • tcp/ip层,传输层的作用,http,https在那一层作用是什么
  • 算法

android八股文相关推荐

  1. Android项目大全

    注:打开请贴网址,有些直接通过链接打开的不正确. 1.相对布局实例 http://kukuqiu.iteye.com/blog/1018396 2.Log图文详解(Log.v,Log.d,Log.i, ...

  2. 在Android面试前背八股和学面试技巧真的有用吗?

    前言: 今年秋招以来,我集中面试了一些公司,想着至少能过一家吧,但后面发现面试安排十分紧凑,有种顾此失彼的感觉. 我刚开始的时候对Android面试的具体情况全然不知,也没有人告诉我应该注意些什么,可 ...

  3. 【面试-八股文】万字app测试 面试题,助你吊打面试官系列

    大家好,我是温大大. 最近温大大的读者们问我有没有app相关的面试题, 作为「平易近人」的大大怎么能忍心说没有呢, 这不继续爆肝 输出app测试工程师专项面试题, 本篇从:app测试基础.app 测试 ...

  4. Android复习系列③之《Android筑基》

    1.Android系统架构 应用层 应用框架层(Framwork) 系统运行库层 Linux内核层 2.四大组件 1. Activity 1.1 生命周期 下面这张图一定要仔细看看,并能理解每一个步骤 ...

  5. Android复习系列④之《Android进阶》

    Android进阶 1 Okhttp OkHttpClient相当于配置中心, 所有的请求都会共享这些配置(例如出错是否重试.共享的连接池) . 1.OkHttpCLient中的配置主要有: Disp ...

  6. 就在刚刚这份java八股文成功让我进入字节,拿到了人生第一个18k

    一.java基础 1.面向对象的三个基本特征? 面向对象的三个基本特征是:封装.继承和多态. 继承:让某个类型的对象获得另一个类型的对象的属性的方法.继承就是子类继承父类的特征和行为,使得子类对象(实 ...

  7. Android单元测试 Instrumentation

    开发中我们需要对部分功能进行单元测试,启动Activity来测试部分小功能,有点小题大作,杀鸡用牛刀. 我们可以用Android单元测试 Instrumentation 本篇只是入门,起到抛砖的效果 ...

  8. (转载) android项目大全,总有你所需的

    目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选      程序员8月书讯      项目管理+代码托管+文档协作,开发更流畅 [置顶] android项目大全,总有你所需的 标签: 源 ...

  9. android所有需要的Demo地址

    注:打开请贴网址,有些直接通过链接打开的不正确. 1.相对布局实例 http://kukuqiu.iteye.com/blog/1018396 2.Log图文详解(Log.v,Log.d,Log.i, ...

最新文章

  1. WinCE6.0 修改开机Logo方法集锦(二)
  2. 利用CSDN将图片自动存入AI Studio :pic2bml
  3. C和C++线性表的链式存储
  4. 使用JUnit规则进行干净的集成测试
  5. 在php中调用java接口吗,php 调用 java 接口
  6. ajax ssm 页面跳转_SSM用jq整合Ajax入门案例讲解
  7. 微信生态圈盈­利模式分析
  8. java netty modbus协议接收iot数据
  9. git rebase 修改提交信息
  10. Linux中删除文件夹和文件的命令
  11. 注释和特殊字符(HTML)
  12. 前端工程师做事的三重境界:我的进阶之路
  13. 排球积分程序(二)——需求分析
  14. 23王道——中序线索树
  15. EXCEL常规格式数字转换为日期时间格式的方法
  16. 食品经营许可证模板_食品流通许可证与食品经营许可证
  17. 彻底关闭Chrome浏览器更新及右上角的更新提示
  18. ppt文件提示处于受保护状处理方案
  19. Android模拟机设置中文输入法(拼音、手写、笔画等)
  20. 【四舍六入五单双法】

热门文章

  1. 做数据挖掘工作需要具备哪些思维原理?
  2. springboot项目中favicon.ico的异常处理
  3. 测试人生 | 00后0经验应届毕业生拿下2线城市15W offer,好励志~
  4. 推出全新的交互式导航和社交导航 iGibson 挑战
  5. Word 使用宏根据文件名实现文件版本号自动更新_rev00
  6. 我的大学六年--郭天祥
  7. 使用 eBPF 和 XDP 高速处理数据包
  8. 20年的嵌入式经验:如何从零开始开发一款嵌入式产品(值得收藏的高质量文章!)...
  9. 皮卡丘(pikachu) 文件上传
  10. FileZilla FTP服务器源代码分析