Skip to content

Latest commit

 

History

History
264 lines (225 loc) · 14.8 KB

README2.md

File metadata and controls

264 lines (225 loc) · 14.8 KB

Android-Advance

安卓系统以及进阶教程

撰写这个工程,有两个目的。

  1. 帮助那些想系统完善Android体系的人,有一个资料
  2. 做一个知识库,丰富自己的眼界,提升自己的能力

不断挑战突破自己,即使是咸鱼,也要做最咸的那一条。技术要日有精进,要沿着目标一步一步的走过去。定一个小目标吧,半年内,加入BAT TMD这类的公司。

算法

  1. 判断单链表是否有环,并且找到相交点

  2. 逆转链表

  3. 反转一颗二叉树

  4. 单链表输出倒数第k个元素

  5. 100万个数据找出100个最大的

  6. 快排,堆排,归并排序

  7. 判断一颗二叉树是完全二叉树

  8. 分析一下常见的排序算法的稳定性

  9. 二叉树给出根节点和目标节点,找出从根节点到目标节点的路径

  10. 一个文件中有100万个整数,由空格分开,在程序中判断用户输入的整数是否在此文件中。说出最优的方法

  11. N*N的方格纸,里面有多少个正方形

  12. 时针走一圈,时针分针重合几次

  13. 求1000以内的水仙花数以及40亿以内的水仙花数

  14. 两个不重复的数组集合中,这两个集合都是海量数据,内存中放不下,怎么求共同的元素?

  15. 子串包含问题(KMP 算法)写代码实现

  16. Leetcode 动态规划】 买卖股票 I II III IV 冷却,共5题

  17. LRU算法

  18. 数组存水

  19. 两个有序数组找第k大的数

  20. 字符串动态规划

  21. 二分查找的变形

  22. 最少4个点,最多9个点,一个点经过一次,类似手机解锁,一共有多少种可能

  23. 之字形输出二叉树

  24. 如何判断一个二叉树是否为完全二叉树

  25. leetcode11 , leetcode42

  26. 给一个字符串和单词列表,判断字符串能不能由这些单词组成

  27. 二叉树最小公共祖先

  28. 一棵树里最远的两个节点间的距离

  29. 链表交叉判断

  30. 手写后序遍历非递归代码

  31. 数组中搜索子数组

了解相关的TextureView吗? HashMap的结构是怎样的,怎么存value,遇到相同的hash值的key,其value又怎么存。 String str = new String("123") 创建了几个对象,都存在哪 解释IOC AOP都是什么

JVM基础

  1. Java GC简介

  2. 操作系统如何管理内存的

  3. 自旋锁和互斥锁的区别

Java基础

  1. Java的final关键字的作用
  2. volatile 的作用,为什么会出现变量读取不一致的情况, synchronized 的区别
  3. Java 中的 Error、 Exception 的区别
  4. ArrayList 如何删除重复的元素或者指定的元素
  5. Java 异常简介
  6. Java 中内部类为什么可以访问外部类
  7. Java 泛型
  8. equals 和 hashcode 的关系
  9. Hashmap 的源码和实现方式
  10. ArrayList 和 LinkedList 的区别?造成区别的原因是什么,为什么删查的复杂度不同
  11. Java GC 了解过没有,如何判断一个对象是否可以被GC
  12. Java 线程同步了解不,同步方法在不同的实例之间是否仍然保持同步,有没有什么隐患
  13. Java 类加载机制了解不,双亲委派原理
  14. 四种引用类型的概念
  15. Java内部类详解
  16. "=="、equals和hashCode有什么区别
  17. Java 8 种数据类型 字节大小,int 4个字节,boolean几个字节
  18. java面试题之int和Integer的区别
  19. final、finally、finalize修饰符的区别
  20. finalize()方法
  21. 常见编码方式
  22. 常见数据结构与算法整理总结(上)
  23. 常见数据结构与算法整理总结(下)
  24. Android List,Set,Map集合安全 集合区别 并发集合类性能分析
  25. Java中Synchronized的用法
  26. Java内部类详解
  27. ArrayList 概述
  28. [HashMap 和 HashTable 到底哪不同 ?](http://www.importnew.com/24822.html
  29. ConcurrentHashMap总结

常见的设计模式

  1. 单利模式
  2. 单例的双重检验的实现方式
  3. 生产者消费者模式
  4. 建造者模式

计算机网络

  1. Tcp 三次握手和四次挥手
  2. 浏览器输入地址到返回结果发生了什么
  3. Tcp 是如何保证可靠性传输的
  4. Tcp/IP 协议几层
  5. 如何设计在 UDP 上层保证 UDP 的可靠性传输

操作系统

  1. 进程间通信有哪些方法
  2. 进程和线程的区别

Android相关

事件传递相关

事件总线处理

  1. 布局优化的过程
  2. 性能优化有哪方面
  3. 什么是MVP模式
  4. Activity启动过程
  5. Activity生命周期什么时候调用
  6. 热更新技术简介
  7. 避免OOM的方法
  8. 自行设计一个图片加载库的思路
  9. 布局优化的过程,为什么要进行过度绘制的优化
  10. APK里面包含哪写东西,打包过程是什么样的
  11. Handler 机制描述
  12. Android 事件分发过程
  13. HashMap 的实现过程
  14. 断点上传如何设计
  15. 生成的 apk 文件,解压后会有什么目录
  16. 讲讲 Gradle 语法、生命周期
  17. ListView 和 RecycleView 的比较
  18. 网络框架用了哪些,讲讲使用的框架的原理
  19. 事件分发机制
  20. 注解的优缺点
  21. Activity和Fragment的生命周期,Home和Back键的生命周期
  22. 写Service的两种实现方式和生命周期
  23. 静态同步方法和非静态同步方法的区别
  24. Android 多进程如何实现
  25. 子线程更新UI的方式
  26. Handler 的实现机制,画图讲解
  27. 安卓内存泄露检测以及解决方案
  28. 讲讲线程池
  29. 如果加快 Gradle 的编译速度
  30. Android 事件分发机制了解不
  31. Android 绘制过程,onMeasure 的原理,解决了什么问题
  32. LeakCanary核心原理
  33. 序列化Serializable与Parcelable原理与区别
  34. app运行中的crash崩溃异常日志收集
    • [SP是进程同步的吗?有什么方法做到同步?
    • [权限管理系统(底层的权限是如何进行 grant 的)

面经