Java Android学习/面试指南

Java Android学习/面试指南

点我跳转github查看

目录

  • Android

    • 基础
    • 进阶
    • Gradle相关
    • 自定义View
    • 插件化相关
    • 热修复相关
    • 编译器相关
    • 框架源码分析
    • 性能优化
    • 开源框架
    • 打包
  • Java

    • 基础
    • 容器
    • 并发
    • JVM
    • I/O
    • Java 8
    • 编程规范
  • 面试指南

    • 备战面试
    • 常见面试题总结
    • 面经
    • Android面试专场
  • 网络协议

  • 操作系统

    • Linux相关
  • 数据结构与算法

    • 数据结构
    • 算法
  • 数据库

    • MySQL
    • Redis
  • 系统设计

    • 设计模式
    • 常用框架
    • 数据通信
    • 网站架构
  • 工具

    • Git
    • Docker
  • 常见问题

Android

基础知识

  • Activity详细解析
  • Service详细解析
  • IntentService详细解析
  • IntentService原理解析文章
  • ContentProvider实例详解
  • BroadcastReceiver详细解析
  • Android异步任务机制之AsycTask
  • Handler,Looper,MessageQueue关系
  • Android-SQLite的基本使用
  • Android系统相机与相册的使用
  • 图片缓存原理
  • Android数据存储的五种方式
  • Android跟随手指移动的View
  • RecyclerView的使用
  • Android获取SHA1
  • Recyclerview和Listview的异同.md
  • 初识ConstraintLayout
  • TabLayout记录
  • 用SpannableString打造绚丽多彩的文本显示效果
  • 解析ConstraintLayout的性能优势
  • Android新特性介绍,ConstraintLayout完全解析
  • Android新特性介绍,ConstraintLayout完全解析
  • Android 一个无限循环滚动的卡片式ViewPager

进阶

  • Android 触控事件解析 - Mastering The Android Touch System 笔记
  • Android 多进程使用场景
  • Android官网建议代码规范
  • 30多年编码经验总结成10条最佳实践
  • Android中的动画
  • 深入了解MVXX模式
  • Android项目总结
  • Android项目总结2
  • 自定义RadioGroup
  • Android导入项目一直在Building的解决方案
  • 基于TOTP的双向认证算法
  • Android内存泄漏总结.md
  • Handler引起的内存泄漏的案例与分析
  • Android性能优化.md
  • LeakCanary的工作过程以及原理
  • AIDL的具体实现流程
  • Android中利用异步来优化处理速度
  • 为什么选择Binder实现Android中跨进程通信
  • 三大图片缓存框架的对比
  • SVG图片在Android中的应用
  • 携程App的网络性能优化实践
  • 途牛插件化原理
  • Android分包原理
  • 插件化实现的思想
  • Android 7.0新特性总结
  • RecyclerView局部刷新的坑
  • Android单元测试
  • gradle 详解——你真的了解Gradle吗?
  • AndroidStudio-Gradle多渠道打包
  • Android基础入门教程——8.1.1 Android中的13种Drawable小结 Part 1
  • Android基础入门教程——8.1.2 Android中的13种Drawable小结 Part 2
  • Android-Drawable高级用法
  • 安卓开踩过的坑:你的 Bitmap 究竟占多大内存?
  • Android 4.4 中 WebView 使用注意事项
  • Android图像处理 - 高斯模糊的原理及实现
  • Android实战——GreenDao3.2的使用,爱不释手
  • Realm for Android详细教程
  • 给 Android 开发者的 RxJava 详解
  • Android 谈谈自动化测试
  • 检查app是否具有通知栏权限
  • Android中图片压缩分析(上)
  • Android Studio3.0更新之路(遇坑必入)
  • Android Studio3.0正式版填坑路
  • Android混合编程:WebView实践
  • runOnUiThread 、Handler.post、View.post之间的区别
  • 理解 Activity.runOnUiThread
  • 说说 getMainLooper
  • Android 探究 LayoutInflater setFactory
  • 巧用ViewPager 打造不一样的广告轮播切换效果
  • 为RecyclerView打造通用Adapter 让RecyclerView更加好用
  • MNCrashMonitor 监听程序崩溃日志,直接页面展示崩溃日志列表
  • 『进阶之路』—— 线程池
  • 从json文件到炫酷动画-Lottie实现思路和源码分析
  • Lottie动画库 Android 端源码浅析

Gradle相关

  • 如何理解 Transform API
  • Gradle自定义插件详解
  • Android 突破 DEX 文件的 64k方法数限制
  • Android Dex分包之旅
  • 美团Android DEX自动拆包及动态加载简介
  • gradle简单入门系列
  • Gradle简单配置
  • Android 如何编写基于编译时注解的项目
  • Gradle 完整指南(Android)
  • NDK-JNI开发入门教程项目

自定义View

  • 自定义View入门
  • 自定义view详细教程
  • 自定义ViewGroup入门
  • Android事件分发机制
  • CameraView
  • CheckView
  • CircleView
  • FlowLayout
  • PieView
  • SlideslipListView
  • 二阶贝塞尔曲线
  • 三阶贝塞尔曲线
  • 贝塞尔曲线Demo
  • 具有弹性的小球
  • PathMeasure

热修复相关

  • Android 热修复 Tinker Gradle Plugin解析
  • Android 热修复 Tinker接入及源码浅析
  • Android 热修复 Tinker 源码分析之DexDiff / DexPatch

插件化相关

  • 滴滴插件化方案 VirtualApk 源码解析

编译器相关

  • Android Studio 3.0 新功能解析和旧项目适配
  • Android-studio使用教程1
  • Android-studio使用教程2
  • Android-studio使用教程3
  • Android-studio使用教程4
  • Android-studio使用教程5
  • Android-studio使用教程6
  • Android-studio使用教程7

性能优化

  • Android开发性能优化总结(一)
  • Android开发性能优化总结(二)

开源框架

  • 当下流行开源框架总览
  • easypermission
  • ButterKnifeZelezny
  • RxJava+retrofit2
  • LinLog
  • Retrofit 2.0 使用教程
  • retrofit 2.0 源码解析
  • 关于 RxJava 背压
  • RxJava 2.0中backpressure(背压)概念的理解
  • Retrofit2 完全解析 探索与okhttp之间的关系

打包

  • 打包jar包或aar包
  • 发布sdk到jcenter
框架源码分析
  1. EventBus源码分析
  2. Bufferknife源码分析
  3. Glide 源码分析
  4. OKHttp 源码分析
  5. Retrofit 源码分析
  6. ViewModel 源码分析

Java

基础

  • Java 基础知识回顾
  • J2EE 基础知识回顾
  • Collections 工具类和 Arrays 工具类常见方法
  • Java常见关键字总结:static、final、this、super
  • Java常见关键字总结:static、final、this、super

容器

  • 常见问题总结:
    • 这几道Java集合框架面试题几乎必问
    • Java 集合框架常见面试题总结
  • 源码分析:
    • ArrayList 源码学习
    • 【面试必备】透过源码角度一步一步带你分析 ArrayList 扩容机制
    • LinkedList 源码学习
    • HashMap(JDK1.8)源码学习

并发

  • 并发编程面试必备:synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比
  • 并发编程面试必备:乐观锁与悲观锁
  • 并发编程面试必备:JUC 中的 Atomic 原子类总结
  • 并发编程面试必备:AQS 原理以及 AQS 同步组件总结
  • BATJ都爱问的多线程面试题
  • 并发容器总结

JVM

  • 可能是把Java内存区域讲的最清楚的一篇文章
  • 搞定JVM垃圾回收就是这么简单
  • 《深入理解Java虚拟机》第2版学习笔记

I/O

  • BIO,NIO,AIO 总结
  • Java IO 与 NIO系列文章

Java 8

  • Java 8 新特性总结
  • Java 8 学习资源推荐

编程规范

  • Java 编程规范

网络

  • 浅析socket
  • 浅析Hessian
  • 浅析RPC协议
  • 浅析dubbo服务
  • SSH原理与应用
  • 理解OAuth 2.0
  • OAuth 2和JWT - 如何设计安全的API?
  • 计算机网络常见面试题
  • 计算机网络基础知识总结
  • HTTPS中的TLS

操作系统

Linux相关

  • 后端程序员必备的 Linux 基础知识
  • Shell 编程入门

数据结构与算法

数据结构

  • 数据结构知识学习与面试

算法

  • 算法学习资源推荐
  • 算法总结——几道常见的子符串算法题
  • 算法总结——几道常见的链表算法题
  • 剑指offer部分编程题
  • 公司真题
  • 回溯算法经典案例之N皇后问题
  • 算法设计常用思想

数据库

MySQL

  • MySQL 学习与面试
  • 一千行MySQL学习笔记
  • MySQL高性能优化规范建议
  • 搞定数据库索引就是这么简单
  • 事务隔离级别(图文详解)
  • 一条SQL语句在MySQL中如何执行的
  • linux下安装MySQL
  • MySQL基础操作
  • MySQL导出数据库、表
  • Error-ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
  • ERROR-1045-(28000)--Access-denied-for-user-'debian-sys-maint'@'localhost
  • mysql设置远程链接权限
  • 关于初次安装mysql8.01遇到的问题解决

Redis

  • Redis 总结
  • Redlock分布式锁
  • 如何做可靠的分布式锁,Redlock真的可行么

系统设计

设计模式

  • 设计模式系列文章

常用框架

Spring

  • Spring 学习与面试
  • Spring中bean的作用域与生命周期
  • SpringMVC 工作原理详解

ZooKeeper

  • 可能是把 ZooKeeper 概念讲的最清楚的一篇文章
  • ZooKeeper 数据模型和常见命令了解一下,速度收藏!

数据通信

  • 数据通信(RESTful、RPC、消息队列)相关知识点总结
  • Dubbo 总结:关于 Dubbo 的重要知识点
  • 消息队列总结:新手也能看懂,消息队列其实很简单
  • 一文搞懂 RabbitMQ 的重要概念以及安装

网站架构

  • 一文读懂分布式应该学什么
  • 8 张图读懂大型网站技术架构
  • 【面试精选】关于大型网站系统架构你不得不懂的10个问题

面试指南

备战面试

  • 【备战面试1】程序员的简历就该这样写
  • 【备战面试2】初出茅庐的程序员该如何准备面试?
  • 【备战面试3】7个大部分程序员在面试前很关心的问题
  • 【备战面试4】Github上开源的Java面试/学习相关的仓库推荐
  • 【备战面试5】如果面试官问你“你有什么问题问我吗?”时,你该如何回答
  • 【备战面试6】美团面试常见问题总结(附详解答案)

常见面试题总结

  • 第一周(2018-8-7) (为什么 Java 中只有值传递、==与equals、 hashCode与equals)
  • 第二周(2018-8-13)(String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的?、什么是反射机制?反射机制的应用场景有哪些?......)
  • 第三周(2018-08-22) (Arraylist 与 LinkedList 异同、ArrayList 与 Vector 区别、HashMap的底层实现、HashMap 和 Hashtable 的区别、HashMap 的长度为什么是2的幂次方、HashSet 和 HashMap 区别、ConcurrentHashMap 和 Hashtable 的区别、ConcurrentHashMap线程安全的具体实现方式/底层具体实现、集合框架底层数据结构总结)
  • 第四周(2018-8-30).md (主要内容是几道面试常问的多线程基础题。)

面经

  • 5面阿里,终获offer(2018年秋招)

工具

Git

  • Git入门

Docker

  • Docker 入门
  • 一文搞懂 Docker 镜像的常用操作!

你可能感兴趣的:(Java Android学习/面试指南)