BestNote icon indicating copy to clipboard operation
BestNote copied to clipboard

:punch: 持续更新,Java Android 近几年最全面的技术点以及面试题 供自己学习使用

Java Android学习/面试指南

Flutter Android Java Kotlin  面试  网络 系统 系统设计  工具  数据库 算法 TODO
:iphone: :pencil2: :coffee: :unlock: :memo: :cloud: :computer: :bulb: :wrench: :floppy_disk: :pencil2: :page_facing_up:

目录

  • Android
    • 基础
    • 进阶
    • Gradle相关
    • 自定义View
    • 插件化相关
    • 热修复相关
    • 编译器相关
    • 框架源码分析
    • 性能优化
    • Android常见设计模式
    • 音视频开发
    • 开源框架
    • 应用发布
    • 打包
    • 原生功能讲解
  • Java
    • 基础
    • 容器
    • 并发
    • JVM
    • I/O
    • Java 8
    • 编程规范
  • TODO学习清单
  • Kotlin学习
  • Flutter学习
  • 面试指南
    • 备战面试
    • 常见面试题总结
    • 面经
    • Android面试专场
  • 网络协议
  • 操作系统
    • Linux相关
    • 计算机操作系统
  • 数据结构与算法
    • 数据结构
    • 算法
  • 数据库
    • MySQL
    • Redis
    • 数据库系统原理
    • SQL
    • Leetcode-Database 题解
  • 系统设计
    • 设计模式
    • 常用框架
    • 数据通信
    • 网站架构
    • 攻击技术
  • 工具
    • Git
    • Docker
    • 构建工具
    • 正则表达式
  • 常见问题

Android

基础知识

进阶

Gradle相关

自定义View

Android常见设计模式

音视频开发

热修复相关

插件化相关

编译器相关

性能优化

开源框架

应用发布

打包

  • 打包jar包或aar包
  • 发布sdk到jcenter
框架源码分析

Kotlin

Flutter

TODO学习清单

  • TODO学习清单

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 编程规范

网络

操作系统

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真的可行么

数据库系统原理

  • 数据库系统原理

SQL

  • SQL

Leetcode-Database 题解

  • Leetcode-Database 题解

系统设计

设计模式

  • 设计模式系列文章

常用框架

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年秋招)

Android面试专场

  • Android面试专场

工具

Git

  • Git入门

Docker

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

构建工具

  • 构建工具

正则表达式

  • 正则表达式

致谢

本文并非原创,通过各位博主综合而得,以便供自己方便学习,在此感谢各位前辈,并在下面注明出处

License

MIT License

Copyright (c) 2019 pengMaster

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.