gitextract_bgwjn77o/ ├── LICENSE ├── README.md └── docs/ ├── .nojekyll ├── android/ │ ├── Android-Interview/ │ │ ├── .gitignore │ │ ├── Activity/ │ │ │ ├── Activity Task和Process.md │ │ │ ├── App优雅退出.md │ │ │ ├── README.md │ │ │ ├── onCreate源码分析.md │ │ │ ├── onSaveInstanceState源码内核分析.md │ │ │ ├── 为什么service里面startActivity抛异常.md │ │ │ ├── 深入理解Activity启动流程.md │ │ │ ├── 深刻剖析activity启动模式-1.md │ │ │ ├── 深刻剖析activity启动模式-2.md │ │ │ └── 深刻剖析activity启动模式-3.md │ │ ├── Android/ │ │ │ ├── Android基础面试核心内容.md │ │ │ ├── Android视频教程.md │ │ │ ├── Android面试精华题目总结.md │ │ │ ├── Android面试重点.md │ │ │ ├── Android面试题-1.md │ │ │ ├── Android面试题-2.md │ │ │ ├── Android高级面试10大开源框架源码解析.md │ │ │ ├── BAT大咖助力全面升级Android面试.md │ │ │ ├── README.md │ │ │ ├── 平台架构.md │ │ │ └── 接口安全.md │ │ ├── HR/ │ │ │ ├── README.md │ │ │ ├── 人事面试宝典.md │ │ │ ├── 人事面试宝典一之自我介绍.md │ │ │ └── 人事面试宝典二之离职.md │ │ ├── Java/ │ │ │ ├── 115个Java面试题及回答.md │ │ │ ├── 66道经典的Java基础面试题集锦.md │ │ │ ├── J2SE基础面试核心内容.md │ │ │ ├── J2SE高级面试核心内容.md │ │ │ ├── Java面试题-1.md │ │ │ ├── Java面试题-2.md │ │ │ ├── Java高级软件工程师面试考纲.md │ │ │ ├── README.md │ │ │ ├── 数据库求差.md │ │ │ └── 深拷贝浅拷贝.md │ │ ├── README.md │ │ ├── SUMMARY.md │ │ ├── Service/ │ │ │ ├── Android面试题-Service.md │ │ │ ├── Android面试题-Service不死之身.md │ │ │ ├── IntentService源码分析.md │ │ │ └── README.md │ │ ├── book.json │ │ ├── 开发遇到的问题/ │ │ │ ├── Context原理分析.md │ │ │ ├── README.md │ │ │ ├── ViewPager和Fragment使用过程中会遇到哪些问题.md │ │ │ ├── 手把手教你如何解决as jar包冲突.md │ │ │ ├── 机型适配之痛.md │ │ │ ├── 终极解决ViewPager.setCurrentItem中间页面过多解决方案.md │ │ │ ├── 解决字体适配.md │ │ │ ├── 软键盘顶出去解决方案.md │ │ │ └── 迭代开发的时候如何向前兼容新旧接口?.md │ │ ├── 性能优化/ │ │ │ ├── Android应用UI性能分析.md │ │ │ ├── App应用启动分析与优化.md │ │ │ ├── README.md │ │ │ ├── 与IPC机制相关面试题.md │ │ │ ├── 与性能优化相关试题一.md │ │ │ ├── 与性能优化相关试题三.md │ │ │ ├── 与性能优化相关试题二.md │ │ │ └── 内存泄漏监测.md │ │ ├── 源码分析/ │ │ │ ├── Android源码编译实现静默安装和静默偷拍.md │ │ │ ├── README.md │ │ │ ├── Volley源码剖析.md │ │ │ ├── okhttp内核剖析.md │ │ │ └── 注解框架内部实现原理.md │ │ ├── 登陆注册/ │ │ │ ├── Oauth的实现原理.md │ │ │ ├── README.md │ │ │ ├── Token的实际意义.md │ │ │ └── 微信扫码登录内部实现原理.md │ │ ├── 经验分享/ │ │ │ ├── 2016年4月某公司面试题及面试流程.md │ │ │ ├── 2017届实习生招聘面经.md │ │ │ ├── Andorid-15k+的面试题.md │ │ │ ├── Android 暑期实习生面试经验谈.md │ │ │ ├── Android 曲折的求职之路.md │ │ │ ├── BAT无线工程师面试流程详细解析.md │ │ │ ├── README.md │ │ │ ├── 一个五年Android开发者百度、阿里、聚美、映客的面试心经.md │ │ │ ├── 一个程序员的血泪史.md │ │ │ ├── 互联网公司面试经验总结.md │ │ │ ├── 互联网巨头BAT3内部员工的真实状况.md │ │ │ ├── 史上最全 Android 面试资料集合.md │ │ │ ├── 国内一线互联网公司内部面试题库.md │ │ │ ├── 工作三年后,我选择离开腾讯.md │ │ │ ├── 我为什么离开锤子科技?.md │ │ │ ├── 我为什么要离开华为?.md │ │ │ ├── 扫清Android面试障碍.md │ │ │ ├── 技术硬碰硬—阳哥带你玩转上海Android招聘市场.md │ │ │ ├── 杭州找 Android 工作的点点滴滴.md │ │ │ ├── 给培训班出来的一点不成熟的小建议.md │ │ │ ├── 腾讯公司程序员面试题及答案详解.md │ │ │ ├── 阿里+百度+CVTE面经合集.md │ │ │ └── 面试心得与总结:BAT、网易、蘑菇街 .md │ │ ├── 网络编程/ │ │ │ ├── Android客户端和服务端如何使用Token和Session.md │ │ │ ├── README.md │ │ │ ├── 推送原理.md │ │ │ ├── 简单阐述一下及时推送原理?.md │ │ │ └── 阐述一下对XMPP协议理解以及优缺点?.md │ │ └── 面试技巧/ │ │ ├── README.md │ │ ├── 我在面试中最喜欢问开发者的问题,和回答思路.md │ │ ├── 程序员面试宝典.md │ │ └── 罗永浩新东方万字求职信.md │ ├── AndroidNote/ │ │ ├── AdavancedPart/ │ │ │ ├── 1.热修复实现(一).md │ │ │ ├── 2.热修复实现(二).md │ │ │ ├── 3.热修复_addAssetPath不同版本区别原因(三).md │ │ │ ├── ART与Dalvik.md │ │ │ ├── Android WorkManager.md │ │ │ ├── Android6.0权限系统.md │ │ │ ├── Android卸载反馈.md │ │ │ ├── Android启动模式详解.md │ │ │ ├── Android开发不申请权限来使用对应功能.md │ │ │ ├── Android开发中的MVP模式详解.md │ │ │ ├── ApplicationId vs PackageName.md │ │ │ ├── BroadcastReceiver安全问题.md │ │ │ ├── ConstraintLaayout简介.md │ │ │ ├── Handler导致内存泄露分析.md │ │ │ ├── Library项目中资源id使用case时报错.md │ │ │ ├── Mac下配置adb及Android命令.md │ │ │ ├── MaterialDesign使用.md │ │ │ ├── RecyclerView专题.md │ │ │ ├── 如何让Service常驻内存.md │ │ │ ├── 屏幕适配之百分比方案详解.md │ │ │ ├── 布局优化.md │ │ │ ├── 性能优化.md │ │ │ ├── 注解使用.md │ │ │ └── 通过Hardware Layer提高动画性能.md │ │ ├── AndroidStudioCourse/ │ │ │ ├── Android Studio你可能不知道的操作.md │ │ │ ├── AndroidStudio中进行ndk开发.md │ │ │ ├── AndroidStudio使用教程(第一弹).md │ │ │ ├── AndroidStudio使用教程(第七弹).md │ │ │ ├── AndroidStudio使用教程(第三弹).md │ │ │ ├── AndroidStudio使用教程(第二弹).md │ │ │ ├── AndroidStudio使用教程(第五弹).md │ │ │ ├── AndroidStudio使用教程(第六弹).md │ │ │ ├── AndroidStudio使用教程(第四弹).md │ │ │ └── AndroidStudio提高Build速度.md │ │ ├── Android基础/ │ │ │ ├── Activity详细解析.md │ │ │ ├── Android-SQLite的基本使用.md │ │ │ ├── Android中相机与相册的详细使用.md │ │ │ ├── Android异步任务机制之AsycTask.md │ │ │ ├── Android数据存储的五种方式.md │ │ │ ├── Android获取SHA1.md │ │ │ ├── Android跟随手指移动的view.md │ │ │ ├── BroadcastReceiver详细解析.md │ │ │ ├── ContentProvider实例详解.md │ │ │ ├── Handler,Looper,MessageQueue关系.md │ │ │ ├── IntentService详细解析.md │ │ │ ├── RecyclerView的简介.md │ │ │ ├── Service详细解析.md │ │ │ ├── tablayout记录.md │ │ │ ├── test.kt │ │ │ └── 图片缓存原理.md │ │ ├── Android开源框架相关/ │ │ │ ├── Android当下最流行的开源框架总结.md │ │ │ ├── Android黑科技——ButterKnifeZelezny.md │ │ │ ├── Picasso-android-load-image-layout.md │ │ │ ├── RxJava+retrofit2实现安卓中网络操作.md │ │ │ ├── 一款Android的Log、Toast的库.md │ │ │ └── 动态申请权限库:easypermissions使用与源码解析.md │ │ ├── Android性能优化相关/ │ │ │ └── LeakCanary工作过程以及原理.md │ │ ├── Android打包相关/ │ │ │ ├── Android发布sdk到jcenter.md │ │ │ └── Android将library打包成jar文件或aar文件.md │ │ ├── Android报错记录/ │ │ │ ├── Android报错-Manifest merger failed with multiple errors, see logs.md │ │ │ └── Android报错2.md │ │ ├── Android编译器相关/ │ │ │ ├── AndroidStudio使用教程(第一弹).md │ │ │ ├── AndroidStudio使用教程(第七弹).md │ │ │ ├── AndroidStudio使用教程(第三弹).md │ │ │ ├── AndroidStudio使用教程(第二弹).md │ │ │ ├── AndroidStudio使用教程(第五弹).md │ │ │ ├── AndroidStudio使用教程(第六弹).md │ │ │ └── AndroidStudio使用教程(第四弹).md │ │ ├── Android自定义View/ │ │ │ ├── Android事件分发机制.md │ │ │ ├── PathMeasure.md │ │ │ ├── 三阶贝塞尔曲线.md │ │ │ ├── 二阶贝塞尔曲线.md │ │ │ ├── 自定义ViewGroup入门.md │ │ │ ├── 自定义View——CameraView.md │ │ │ ├── 自定义View——CheckView.md │ │ │ ├── 自定义View——CircleView.md │ │ │ ├── 自定义View——FlowLayout.md │ │ │ ├── 自定义View——PieView.md │ │ │ ├── 自定义View入门.md │ │ │ └── 自定义view——sideslipListView.md │ │ ├── Android进阶/ │ │ │ ├── AndroidStudio导入工程一直在Building的解决方案.md │ │ │ ├── Android中的动画.md │ │ │ ├── Android内存泄漏总结.md │ │ │ ├── Android性能优化.md │ │ │ ├── Android项目总结.md │ │ │ ├── Android项目总结2.md │ │ │ ├── Android项目总结3.md │ │ │ ├── Handler引起的内存泄漏以及分析.md │ │ │ ├── MVP+RxJava+Retrofit2+Dagger实战.md │ │ │ ├── Recyclerview和Listview的异同.md │ │ │ ├── iterm2+vim打造完美终端.md │ │ │ ├── jvm-serializers.md │ │ │ ├── 基于OTP算法的双向认证.md │ │ │ ├── 检查app是否有推送权限.md │ │ │ ├── 深入了解MVXX模式.md │ │ │ └── 自定义RadioGroup.md │ │ ├── Android面试相关/ │ │ │ ├── Android5.0-6.0-7.0新特性.md │ │ │ ├── Android中常见面试题.md │ │ │ ├── Android中弱引用与软引用.md │ │ │ ├── Android图片三级缓存.md │ │ │ ├── Android推送实现原理.md │ │ │ ├── Asset目录与res目录的区别.md │ │ │ ├── JSON的定义.md │ │ │ ├── Java中Error和Exception.md │ │ │ ├── ListView性能优化.md │ │ │ ├── Service保活.md │ │ │ ├── 如何实现Activity切换的动画.md │ │ │ ├── 如何提高Activity启动速度.md │ │ │ ├── 如何终止App的运行.md │ │ │ └── 面试题.md │ │ ├── AppPublish/ │ │ │ ├── Android应用发布.md │ │ │ ├── Zipalign优化.md │ │ │ └── 使用Jenkins实现自动化打包.md │ │ ├── ArchitectureComponents/ │ │ │ ├── 1.简介(一).md │ │ │ ├── 2.集成(二).md │ │ │ ├── 3.Lifecycle(三).md │ │ │ ├── 4.LiveData(四).md │ │ │ ├── 5.ViewModel(五).md │ │ │ ├── 6.Room(六).md │ │ │ └── 7.PagingLibrary(七).md │ │ ├── BasicKnowledge/ │ │ │ ├── Android入门介绍.md │ │ │ ├── Android动画.md │ │ │ ├── Android四大组件之ContentProvider.md │ │ │ ├── Android四大组件之Service.md │ │ │ ├── Android基础面试题.md │ │ │ ├── Android编码规范.md │ │ │ ├── Ant打包.md │ │ │ ├── Bitmap优化.md │ │ │ ├── Fragment专题.md │ │ │ ├── Home键监听.md │ │ │ ├── HttpClient执行Get和Post请求.md │ │ │ ├── JNI_C语言基础.md │ │ │ ├── JNI基础.md │ │ │ ├── ListView专题.md │ │ │ ├── Parcelable及Serializable.md │ │ │ ├── PopupWindow细节.md │ │ │ ├── SDK Manager无法更新的问题.md │ │ │ ├── Scroller简介.md │ │ │ ├── ScrollingTabs.md │ │ │ ├── Selector使用.md │ │ │ ├── SlidingMenu.md │ │ │ ├── String格式化.md │ │ │ ├── TextView跑马灯效果.md │ │ │ ├── WebView总结.md │ │ │ ├── Widget(窗口小部件).md │ │ │ ├── Wifi状态监听.md │ │ │ ├── XmlPullParser.md │ │ │ ├── adb logcat使用简介.md │ │ │ ├── 下拉刷新ListView.md │ │ │ ├── 代码混淆.md │ │ │ ├── 任务管理器(ActivityManager).md │ │ │ ├── 修改系统组件样式.md │ │ │ ├── 内存泄漏.md │ │ │ ├── 多线程断点下载.md │ │ │ ├── 安全退出应用程序.md │ │ │ ├── 屏幕适配.md │ │ │ ├── 应用后台唤醒后数据的刷新.md │ │ │ ├── 应用安装.md │ │ │ ├── 开发中Log的管理.md │ │ │ ├── 开发中异常的处理.md │ │ │ ├── 快捷方式工具类.md │ │ │ ├── 手机摇晃.md │ │ │ ├── 搜索框.md │ │ │ ├── 数据存储.md │ │ │ ├── 文件上传.md │ │ │ ├── 来电号码归属地提示框.md │ │ │ ├── 来电监听及录音.md │ │ │ ├── 横向ListView.md │ │ │ ├── 滑动切换Activity(GestureDetector).md │ │ │ ├── 病毒.md │ │ │ ├── 知识大杂烩.md │ │ │ ├── 短信广播接收者.md │ │ │ ├── 程序的启动、卸载和分享.md │ │ │ ├── 竖着的Seekbar.md │ │ │ ├── 自定义Toast.md │ │ │ ├── 自定义控件.md │ │ │ ├── 自定义状态栏通知.md │ │ │ ├── 自定义背景.md │ │ │ ├── 获取位置(LocationManager).md │ │ │ ├── 获取应用程序缓存及一键清理.md │ │ │ ├── 获取手机中所有安装的程序.md │ │ │ ├── 获取手机及SD卡可用存储空间.md │ │ │ ├── 获取联系人.md │ │ │ ├── 读取用户logcat日志.md │ │ │ ├── 资源文件拷贝的三种方式.md │ │ │ ├── 超级管理员(DevicePoliceManager).md │ │ │ ├── 锁屏以及解锁监听.md │ │ │ ├── 零权限上传数据.md │ │ │ ├── 音量及屏幕亮度调节.md │ │ │ └── 黑名单挂断电话及删除电话记录.md │ │ ├── Dagger2/ │ │ │ ├── 1.Dagger2简介(一).md │ │ │ ├── 2.Dagger2入门demo(二).md │ │ │ ├── 3.Dagger2入门demo扩展(三).md │ │ │ ├── 4.Dagger2单例(四).md │ │ │ ├── 5.Dagger2Lay和Provider(五).md │ │ │ ├── 6.Dagger2Android示例代码(六).md │ │ │ ├── 7.Dagger2之dagger-android(七).md │ │ │ ├── 8.Dagger2与MVP(八).md │ │ │ └── 9.Dagger2原理分析(九).md │ │ ├── Git/ │ │ │ └── git详细教程.md │ │ ├── Go/ │ │ │ └── Go的练习代码.md │ │ ├── Gradle&Maven/ │ │ │ ├── Gradle专题.md │ │ │ └── 发布library到Maven仓库.md │ │ ├── IOSNote/ │ │ │ └── Ios上架app需要的图标尺寸.md │ │ ├── IPC.md │ │ ├── ImageLoaderLibrary/ │ │ │ ├── Glide简介(上).md │ │ │ ├── Glide简介(下).md │ │ │ └── 图片加载库比较.md │ │ ├── JavaKnowledge/ │ │ │ ├── Base64加密.md │ │ │ ├── Git简介.md │ │ │ ├── HashMap实现原理分析.md │ │ │ ├── Http与Https的区别.md │ │ │ ├── JVM垃圾回收机制.md │ │ │ ├── Java基础面试题.md │ │ │ ├── MD5加密.md │ │ │ ├── MVC与MVP及MVVM.md │ │ │ ├── RMB大小写转换.md │ │ │ ├── Top-K问题.md │ │ │ ├── Vim使用教程.md │ │ │ ├── hashCode与equals.md │ │ │ ├── volatile和Synchronized区别.md │ │ │ ├── 八种排序算法.md │ │ │ ├── 剑指Offer(上).md │ │ │ ├── 剑指Offer(下).md │ │ │ ├── 动态代理.md │ │ │ ├── 单例的最佳实现方式.md │ │ │ ├── 原子性、可见性以及有序性.md │ │ │ ├── 常用命令行大全.md │ │ │ ├── 常见算法.md │ │ │ ├── 强引用、软引用、弱引用、虚引用.md │ │ │ ├── 数据加密及解密.md │ │ │ ├── 数据结构.md │ │ │ ├── 死锁.md │ │ │ ├── 生产者消费者.md │ │ │ ├── 算法的复杂度.md │ │ │ ├── 线程池简介.md │ │ │ ├── 网络请求相关内容总结.md │ │ │ ├── 获取今后多少天后的日期.md │ │ │ └── 设计模式.md │ │ ├── JavaNote/ │ │ │ ├── Javaee/ │ │ │ │ └── Spring-boot入门.md │ │ │ ├── Java相关/ │ │ │ │ ├── ArrayList、LinkedList、Vector的异同.md │ │ │ │ ├── Des加密算法.md │ │ │ │ ├── HashTable和HashMap的异同.md │ │ │ │ ├── JVM类加载器.md │ │ │ │ ├── JVM虚拟机基础知识.md │ │ │ │ ├── Java中Error和Exception.md │ │ │ │ ├── Java利用ExecutorService实现同步执行大量线程.md │ │ │ │ ├── Java利用listener实现回调,即观察者模式.md │ │ │ │ ├── Java回调的原理与实现.md │ │ │ │ ├── Java基础知识.md │ │ │ │ ├── Java注解的编写与Java的反射机制.md │ │ │ │ ├── 发布jar包到Maven中央仓库.md │ │ │ │ └── 面向对象的六大原则以及常见的十七种设计模式.md │ │ │ └── 设计模式相关/ │ │ │ ├── 单例模式.md │ │ │ ├── 单例模式的四种实现方式.md │ │ │ ├── 观察者模式.md │ │ │ └── 设计模式概括.md │ │ ├── KotlinCourse/ │ │ │ ├── .idea/ │ │ │ │ ├── KotlinCourse.iml │ │ │ │ ├── misc.xml │ │ │ │ ├── modules.xml │ │ │ │ └── workspace.xml │ │ │ ├── Kotlin学习教程(一).md │ │ │ ├── Kotlin学习教程(七).md │ │ │ ├── Kotlin学习教程(三).md │ │ │ ├── Kotlin学习教程(九).md │ │ │ ├── Kotlin学习教程(二).md │ │ │ ├── Kotlin学习教程(五).md │ │ │ ├── Kotlin学习教程(八).md │ │ │ ├── Kotlin学习教程(六).md │ │ │ ├── Kotlin学习教程(十).md │ │ │ └── Kotlin学习教程(四).md │ │ ├── Kotlin相关/ │ │ │ └── Kotlin-for-android.md │ │ ├── Linux/ │ │ │ └── Android-GitLabCi配置.md │ │ ├── MacNote/ │ │ │ ├── Mac平台重新设置MySQL的root密码.md │ │ │ ├── SSH原理与应用.md │ │ │ ├── mac上常用命令.md │ │ │ ├── mac本地生成ssh-key.md │ │ │ ├── mac终端与服务器保持连接.md │ │ │ ├── nodejs与npm的更新.md │ │ │ ├── paw-for-mac.md │ │ │ ├── 一些mac上面安装环境的指令.md │ │ │ ├── 如何在mac上安装java1-8.md │ │ │ └── 项目中遇到的单词.md │ │ ├── READMENote.md │ │ ├── ReactNative相关/ │ │ │ ├── React Native 的ES5 ES6写法对照表.md │ │ │ ├── ReactNative入门.md │ │ │ ├── ReactNative利用CodePush实现热更新.md │ │ │ ├── ReactNative报错记录.md │ │ │ ├── ReactNative调试心得.md │ │ │ ├── Touchable系列组建讲解.md │ │ │ └── 短信验证码倒计时控件.md │ │ ├── RxJavaPart/ │ │ │ ├── 1.RxJava详解(一).md │ │ │ ├── 2.RxJava详解(二).md │ │ │ ├── 3.RxJava详解(三).md │ │ │ ├── 4.RxJava详解之执行原理(四).md │ │ │ ├── 5.RxJava详解之操作符执行原理(五).md │ │ │ ├── 6.RxJava详解之线程调度原理(六).md │ │ │ └── 7.RxJava系列全家桶.md │ │ ├── ScriptNote/ │ │ │ ├── GitHub基础操作.md │ │ │ ├── 一篇文章学懂Shell脚本.md │ │ │ ├── 封装一些GitHub常用命令.md │ │ │ └── 简单的Shell脚本.md │ │ ├── SourceAnalysis/ │ │ │ ├── Activity启动过程.md │ │ │ ├── Activity界面绘制过程详解.md │ │ │ ├── Android Touch事件分发详解.md │ │ │ ├── AsyncTask详解.md │ │ │ ├── InstantRun详解.md │ │ │ ├── ListView源码分析.md │ │ │ ├── Netowork/ │ │ │ │ ├── HttpURLConnection与HttpClient.md │ │ │ │ ├── HttpURLConnection详解.md │ │ │ │ ├── Retrofit详解(上).md │ │ │ │ ├── Retrofit详解(下).md │ │ │ │ ├── Volley源码分析.md │ │ │ │ └── volley-retrofit-okhttp之我们该如何选择网路框架.md │ │ │ ├── VideoView源码分析.md │ │ │ ├── View绘制过程详解.md │ │ │ ├── butterknife源码详解.md │ │ │ └── 自定义View详解.md │ │ ├── Tools&Library/ │ │ │ ├── Android开发工具及类库.md │ │ │ ├── Github个人主页绑定域名.md │ │ │ ├── MAT内存分析.md │ │ │ ├── Markdown学习手册.md │ │ │ ├── 性能优化相关工具.md │ │ │ ├── 目前流行的开发组合.md │ │ │ └── 调试平台Flipper.md │ │ ├── VideoDevelopment/ │ │ │ ├── Android WebRTC简介.md │ │ │ ├── Android音视频开发.md │ │ │ ├── DLNA简介.md │ │ │ ├── 搭建nginx+rtmp服务器.md │ │ │ ├── 视频播放相关内容总结.md │ │ │ ├── 视频解码之软解与硬解.md │ │ │ └── 音视频基础知识.md │ │ ├── WebNote/ │ │ │ ├── MySQL相关/ │ │ │ │ ├── ERROR-1045-(28000)--Access-denied-for-user-'debian-sys-maint'@'localho.md │ │ │ │ ├── Error--ER_TRUNCATED_WRONG_VALUE_FOR_FIELD.md │ │ │ │ ├── Mysql导出数据库、表(有无数据).md │ │ │ │ ├── mysql基础操作.md │ │ │ │ └── 云服务器linux下安装MySQL.md │ │ │ └── NodeJS相关/ │ │ │ ├── koa框架对post内容读取并解析.md │ │ │ ├── nodejs查询数据库后将值返回前端.md │ │ │ ├── nodejs项目在云服务器的部署.md │ │ │ ├── test.html │ │ │ └── 淘宝cnpm.md │ │ ├── webRTC相关/ │ │ │ ├── WebRTC-Android源码解析.md │ │ │ ├── WebRTC——Android入门.md │ │ │ ├── WebRTC——AudioRenderer解析.md │ │ │ ├── WebRTC——AudioSource、VideoSource解析.md │ │ │ ├── WebRTC——AudioTrack-VideoTrack解析.md │ │ │ ├── WebRTC——IceCandidate、SdpObserver、CameraSession解析.md │ │ │ ├── WebRTC——MediaSource-java解析.md │ │ │ ├── WebRTC——MeidaStreamTrack解析.md │ │ │ ├── WebRTC——PeerConnection-java解析.md │ │ │ ├── WebRTC——PeerConnectionFactory-java解析.md │ │ │ ├── WebRTC——VideoFileRenderer解析.md │ │ │ └── WebRTC——VideoRenderer解析.md │ │ ├── 内存性能.md │ │ └── 网络协议/ │ │ ├── SSH原理与应用.md │ │ ├── 浅析Hessian协议.md │ │ ├── 浅析RPC协议.md │ │ ├── 浅析dubbo服务.md │ │ └── 浅析socket.md │ ├── interview/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── android/ │ │ │ ├── README.md │ │ │ ├── SUMMARY.md │ │ │ ├── activity-view-window.md │ │ │ ├── arch.md │ │ │ ├── binder.md │ │ │ ├── broadcast.md │ │ │ ├── canvas.md │ │ │ ├── draw.md │ │ │ ├── event.md │ │ │ ├── eventbus.md │ │ │ ├── handler.md │ │ │ ├── intent.md │ │ │ ├── keep-live.md │ │ │ ├── launchmod.md │ │ │ ├── lifecicle.md │ │ │ ├── listview.md │ │ │ ├── okhttp.md │ │ │ ├── optimize.md │ │ │ ├── push.md │ │ │ ├── questions.md │ │ │ └── version.md │ │ ├── architecture/ │ │ │ ├── 1-cap.md │ │ │ ├── README.md │ │ │ ├── concurrent/ │ │ │ │ ├── 1-flow_control.md │ │ │ │ └── README.md │ │ │ ├── design/ │ │ │ │ ├── 1-tinyURL.md │ │ │ │ └── README.md │ │ │ └── distributed/ │ │ │ ├── 1-session.md │ │ │ ├── 2-cache.md │ │ │ ├── 3-lock.md │ │ │ ├── 4-transaction.md │ │ │ ├── 5-mq.md │ │ │ ├── 6-zk.md │ │ │ ├── 7-kafka.md │ │ │ ├── 8-rpc.md │ │ │ ├── 9-dubbo.md │ │ │ └── README.md │ │ ├── basic/ │ │ │ ├── README.md │ │ │ ├── algo/ │ │ │ │ ├── README.md │ │ │ │ ├── algo.md │ │ │ │ ├── hash.md │ │ │ │ ├── kmp.md │ │ │ │ ├── mst.md │ │ │ │ ├── path.md │ │ │ │ ├── questions.md │ │ │ │ ├── search.md │ │ │ │ ├── skip_list.md │ │ │ │ ├── sort.md │ │ │ │ └── tree.md │ │ │ ├── cryptology.md │ │ │ ├── database/ │ │ │ │ ├── README.md │ │ │ │ ├── concurrent_control.md │ │ │ │ ├── index.md │ │ │ │ ├── innodb.md │ │ │ │ ├── join.md │ │ │ │ ├── mysql.md │ │ │ │ ├── questions.md │ │ │ │ ├── redis.md │ │ │ │ ├── sql.md │ │ │ │ └── transaction.md │ │ │ ├── net/ │ │ │ │ ├── README.md │ │ │ │ ├── base_protocol.md │ │ │ │ ├── http.md │ │ │ │ ├── https.md │ │ │ │ ├── ip.md │ │ │ │ ├── osi.md │ │ │ │ ├── questions.md │ │ │ │ └── tcp.md │ │ │ └── op/ │ │ │ ├── README.md │ │ │ ├── arch.md │ │ │ ├── concurrency.md │ │ │ ├── device.md │ │ │ ├── disk.md │ │ │ ├── interrupt.md │ │ │ ├── io.md │ │ │ ├── linux.md │ │ │ ├── memory.md │ │ │ ├── os.md │ │ │ └── questions.md │ │ ├── fromwork/ │ │ │ ├── README.md │ │ │ ├── mybatis/ │ │ │ │ ├── 1-question.md │ │ │ │ ├── 2-cache.md │ │ │ │ └── 3-proxy.md │ │ │ └── spring/ │ │ │ ├── 1-ioc.md │ │ │ ├── 2-design-partten.md │ │ │ ├── 3-aop.md │ │ │ └── README.md │ │ └── java/ │ │ ├── 1-oop.md │ │ ├── 17-questions.md │ │ ├── 2-operator.md │ │ ├── 3-exception.md │ │ ├── 4-generics.md │ │ ├── 5-object.md │ │ ├── 6-StringBuilder.md │ │ ├── 7-proxy.md │ │ ├── README.md │ │ ├── collection/ │ │ │ ├── 1-collection.md │ │ │ ├── 2-HashMap.md │ │ │ ├── 3-Concurrenthashmap.md │ │ │ └── 4-BlockQueue.md │ │ ├── concurrent/ │ │ │ ├── 1-thread.md │ │ │ ├── 2-volatile.md │ │ │ ├── 3-synchronized.md │ │ │ ├── 4-AQS.md │ │ │ ├── 5-threadlocal.md │ │ │ ├── 6-interrupt.md │ │ │ └── 7-CountDownLatch.md │ │ ├── gc/ │ │ │ ├── 11-jvm-gc.md │ │ │ └── 12-jvm-object-life-cycle.md │ │ └── jvm/ │ │ ├── 1-jvm-class-load-init.md │ │ ├── 2-jvm-class-loader.md │ │ ├── 3-dispatcher.md │ │ └── 4-jvm-architecture.md │ ├── self.md │ └── sources/ │ ├── JavaGarbageCollection.md │ ├── JavaMemoryMode.md │ ├── activity_onnewIntent.md │ ├── adsl.md │ ├── app_start_step.md │ ├── application.md │ ├── application_service.md │ ├── asynctask.md │ ├── binder.md │ ├── butterknife.md │ ├── davik_art.md │ ├── design_v28.md │ ├── eventbus.md │ ├── fifo.md │ ├── foreach.md │ ├── fragment_lazy_load.md │ ├── frame.md │ ├── glide.md │ ├── handle_leak.md │ ├── hash_confict.md │ ├── hotfix.md │ ├── imagedownload.md │ ├── iterationAndroidrecursion.md │ ├── java8.md │ ├── javaCopy.md │ ├── javabasic.md │ ├── javacollection.md │ ├── killprocess_system_exit.md │ ├── kotlin/ │ │ └── builderModel.kt │ ├── livedata.md │ ├── lru.md │ ├── media_player.md │ ├── netsafe.md │ ├── okhttp.md │ ├── onMeasure.md │ ├── recyclerView_listview.md │ ├── reference.md │ ├── requestlayout_invalidate_postInvalidate.md │ ├── retrofit.md │ ├── rxjavademo.md │ ├── seven_design_principles.md │ ├── singleInstance.md │ ├── synchronized_lock.md │ ├── thread_principle.md │ ├── tomcat_cache.java │ ├── tomcat_lru_cache.java │ ├── transactiontoolargeexception.md │ ├── tree.md │ ├── tu.md │ ├── v4_v7_v8_v13.md │ ├── view_root.md │ ├── viewmodel.md │ ├── volatile.md │ ├── volley_algorithm.md │ ├── wait_sleep.md │ ├── weakHashMap.md │ ├── workManager.md │ └── yield_join.md ├── data/ │ └── java-recommended-books.md ├── dataStructures-algorithms/ │ ├── Backtracking-NQueens.md │ ├── 公司真题.md │ ├── 几道常见的子符串算法题.md │ ├── 几道常见的链表算法题.md │ ├── 剑指offer部分编程题.md │ ├── 数据结构.md │ └── 算法学习资源推荐.md ├── database/ │ ├── MySQL Index.md │ ├── MySQL.md │ ├── MySQL高性能优化规范建议.md │ ├── Redis/ │ │ ├── Redis.md │ │ ├── Redis持久化.md │ │ ├── Redlock分布式锁.md │ │ └── 如何做可靠的分布式锁,Redlock真的可行么.md │ ├── 一千行MySQL命令.md │ ├── 一条sql语句在mysql中如何执行的.md │ └── 事务隔离级别(图文详解).md ├── essential-content-for-interview/ │ ├── BATJrealInterviewExperience/ │ │ └── 5面阿里,终获offer.md │ ├── MostCommonJavaInterviewQuestions/ │ │ ├── 第一周(2018-8-7).md │ │ ├── 第二周(2018-8-13).md │ │ └── 第四周(2018-8-30).md │ ├── PreparingForInterview/ │ │ ├── JavaInterviewLibrary.md │ │ ├── JavaProgrammerNeedKnow.md │ │ ├── interviewPrepare.md │ │ ├── 如果面试官问你“你有什么问题问我吗?”时,你该如何回答.md │ │ ├── 程序员的简历之道.md │ │ └── 美团面试常见问题总结.md │ ├── 手把手教你用Markdown写一份高质量的简历.md │ ├── 简历模板.md │ └── 面试必备之乐观锁与悲观锁.md ├── github-trending/ │ ├── 2018-12.md │ ├── 2019-1.md │ ├── 2019-2.md │ ├── 2019-3.md │ └── JavaGithubTrending.md ├── java/ │ ├── ArrayList-Grow.md │ ├── ArrayList.md │ ├── BIO-NIO-AIO.md │ ├── Basis/ │ │ ├── Arrays,CollectionsCommonMethods.md │ │ └── final、static、this、super.md │ ├── HashMap.md │ ├── J2EE基础知识.md │ ├── Java IO与NIO.md │ ├── Java基础知识.md │ ├── Java编程规范.md │ ├── Java虚拟机(jvm).md │ ├── Java集合框架常见面试题总结.md │ ├── LinkedList.md │ ├── Multithread/ │ │ ├── AQS.md │ │ ├── Atomic.md │ │ ├── BATJ都爱问的多线程面试题.md │ │ ├── ConcurrentProgramming1-并发编程基础知识.md │ │ └── 并发容器总结.md │ ├── What's New in JDK8/ │ │ ├── JDK8接口规范-静态、默认方法.md │ │ ├── Java8Tutorial.md │ │ ├── Java8教程推荐.md │ │ ├── Lambda表达式.md │ │ ├── README.md │ │ ├── Stream.md │ │ ├── 改进的类型推断.md │ │ └── 通过反射获得方法的参数信息.md │ ├── synchronized.md │ ├── 可能是把Java内存区域讲的最清楚的一篇文章.md │ ├── 多线程系列.md │ ├── 搞定JVM垃圾回收就是这么简单.md │ └── 这几道Java集合框架面试题几乎必问.md ├── network/ │ ├── HTTPS中的TLS.md │ ├── 干货:计算机网络知识总结.md │ └── 计算机网络.md ├── notes/ │ ├── Leetcode-Database 题解.md │ ├── SQL.md │ ├── 攻击技术.md │ ├── 数据库系统原理.md │ ├── 构建工具.md │ ├── 正则表达式.md │ ├── 计算机操作系统 - 内存管理.md │ ├── 计算机操作系统 - 概述.md │ ├── 计算机操作系统 - 死锁.md │ ├── 计算机操作系统 - 目录.md │ ├── 计算机操作系统 - 目录1.md │ ├── 计算机操作系统 - 设备管理.md │ ├── 计算机操作系统 - 进程管理.md │ └── 计算机操作系统 - 链接.md ├── operating-system/ │ ├── Shell.md │ └── 后端程序员必备的Linux基础知识.md ├── system-design/ │ ├── data-communication/ │ │ ├── dubbo.md │ │ ├── message-queue.md │ │ ├── rabbitmq.md │ │ └── 数据通信(RESTful、RPC、消息队列).md │ ├── framework/ │ │ ├── SpringBean.md │ │ ├── SpringMVC 工作原理详解.md │ │ ├── Spring学习与面试.md │ │ ├── ZooKeeper.md │ │ └── ZooKeeper数据模型和常见命令.md │ ├── website-architecture/ │ │ ├── 8 张图读懂大型网站技术架构.md │ │ ├── 【面试精选】关于大型网站系统架构你不得不懂的10个问题.md │ │ └── 分布式.md │ └── 设计模式.md └── tools/ ├── Docker-Image.md ├── Docker.md └── Git.md