目录
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
插件化相关
编译器相关
- 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
性能优化
开源框架
- 当下流行开源框架总览
- easypermission
- ButterKnifeZelezny
- RxJava+retrofit2
- LinLog
- Retrofit 2.0 使用教程
- retrofit 2.0 源码解析
- 关于 RxJava 背压
- RxJava 2.0中backpressure(背压)概念的理解
- Retrofit2 完全解析 探索与okhttp之间的关系
打包
框架源码分析
Java
基础
- Java 基础知识回顾
- J2EE 基础知识回顾
- Collections 工具类和 Arrays 工具类常见方法
- Java常见关键字总结:static、final、this、super
- Java常见关键字总结:static、final、this、super
容器
- 常见问题总结:
- 源码分析:
并发
- 并发编程面试必备:synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比
- 并发编程面试必备:乐观锁与悲观锁
- 并发编程面试必备:JUC 中的 Atomic 原子类总结
- 并发编程面试必备:AQS 原理以及 AQS 同步组件总结
- BATJ都爱问的多线程面试题
- 并发容器总结
JVM
I/O
Java 8
编程规范
网络
- 浅析socket
- 浅析Hessian
- 浅析RPC协议
- 浅析dubbo服务
- SSH原理与应用
- 理解OAuth 2.0
- OAuth 2和JWT - 如何设计安全的API?
- 计算机网络常见面试题
- 计算机网络基础知识总结
- HTTPS中的TLS
操作系统
Linux相关
数据结构与算法
数据结构
算法
数据库
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
系统设计
设计模式
常用框架
Spring
ZooKeeper
数据通信
- 数据通信(RESTful、RPC、消息队列)相关知识点总结
- Dubbo 总结:关于 Dubbo 的重要知识点
- 消息队列总结:新手也能看懂,消息队列其实很简单
- 一文搞懂 RabbitMQ 的重要概念以及安装
网站架构
面试指南
备战面试
- 【备战面试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 (主要内容是几道面试常问的多线程基础题。)