Giter Site home page Giter Site logo

java-notes's Introduction

写在最前面:大多数文章都是转载的,我只是做了整理工作,如果对大家有帮助,希望star一波,谢谢大家。

GitHub地址:https://github.com/ldbmcs/Java-Notes

推荐使用GitBook阅读。

Java-Notes
├─ Java
│  ├─ Java IO&NIO&AIO
│  │  ├─ Java AIO - 异步IO详解.md
│  │  ├─ Java IO - BIO 详解.md
│  │  ├─ Java IO - Unix IO模型.md
│  │  ├─ Java IO - 分类.md
│  │  ├─ Java IO - 常见类使用.md
│  │  ├─ Java IO - 概述.md
│  │  ├─ Java IO - 设计模式.md
│  │  ├─ Java N(A)IO - Netty.md
│  │  ├─ Java NIO - IO多路复用详解.md
│  │  ├─ Java NIO - 基础详解.md
│  │  └─ Java NIO - 零拷贝实现.md
│  ├─ Java JVM
│  │  ├─ JVM 优化经验总结.md
│  │  ├─ JVM 内存结构.md
│  │  ├─ JVM参数设置.md
│  │  ├─ Java 内存模型.md
│  │  ├─ 从实际案例聊聊Java应用的GC优化.md
│  │  ├─ 垃圾回收器G1详解.md
│  │  ├─ 垃圾回收器Shenandoah GC详解.md
│  │  ├─ 垃圾回收器ZGC详解.md
│  │  ├─ 垃圾回收基础.md
│  │  ├─ 如何优化Java GC.md
│  │  ├─ 类加载机制.md
│  │  └─ 类字节码详解.md
│  ├─ Java Library
│  │  └─ 使用ModelMapper的一次踩坑经历.md
│  ├─ Java 基础
│  │  ├─ Java hashCode() 和 equals().md
│  │  ├─ Java native方法以及JNI实践.md
│  │  ├─ Java serialVersionUID 有什么作用?.md
│  │  ├─ Java 泛型的类型擦除.md
│  │  ├─ Java中final关键字详解.md
│  │  ├─ Java中static关键字详解.md
│  │  ├─ Java多态的面试题.md
│  │  ├─ SPI机制详解.md
│  │  ├─ Unsafe类解析.md
│  │  ├─ 为什么 String hashCode 方法选择数字31作为乘子.md
│  │  ├─ 为什么要有抽象类?.md
│  │  ├─ 为什么说Java中只有值传递?.md
│  │  ├─ 即时编译器原理解析及实践.md
│  │  ├─ 反射机制详解.md
│  │  ├─ 异常机制详解.md
│  │  ├─ 接口的本质.md
│  │  ├─ 泛型机制详解.md
│  │  └─ 注解机制详解.md
│  ├─ Java 并发
│  │  ├─ Java 并发 - 14个Java并发容器.md
│  │  ├─ Java 并发 - AQS.md
│  │  ├─ Java 并发 - BlockingQueue.md
│  │  ├─ Java 并发 - CAS.md
│  │  ├─ Java 并发 - Condition接口.md
│  │  ├─ Java 并发 - CopyOnWriteArrayList.md
│  │  ├─ Java 并发 - CountDownLatch、CyclicBarrier和Phaser对比.md
│  │  ├─ Java 并发 - Fork&Join框架.md
│  │  ├─ Java 并发 - Java CompletableFuture 详解.md
│  │  ├─ Java 并发 - Java 线程池.md
│  │  ├─ Java 并发 - Lock接口.md
│  │  ├─ Java 并发 - ReentrantLock.md
│  │  ├─ Java 并发 - ReentrantReadWriteLock.md
│  │  ├─ Java 并发 - Synchronized.md
│  │  ├─ Java 并发 - ThreadLocal 内存泄漏问题.md
│  │  ├─ Java 并发 - ThreadLocal.md
│  │  ├─ Java 并发 - Volatile.md
│  │  ├─ Java 并发 - 从ReentrantLock的实现看AQS的原理及应用.md
│  │  ├─ Java 并发 - 公平锁和非公平锁.md
│  │  ├─ Java 并发 - 内存模型.md
│  │  ├─ Java 并发 - 原子类.md
│  │  ├─ Java 并发 - 如何确保三个线程顺序执行?.md
│  │  └─ Java 并发 - 锁.md
│  ├─ Java 框架
│  │  ├─ Logback
│  │  │  └─ 自定义 logback 日志过滤器.md
│  │  ├─ Mybatis
│  │  │  ├─ 从源码的角度解析Mybatis的会话机制.md
│  │  │  ├─ 浅析pagehelper分页原理.md
│  │  │  ├─ 深入理解Mybatis技术与原理.md
│  │  │  └─ 聊聊MyBatis缓存机制.md
│  │  ├─ Netty
│  │  │  ├─ Netty 可靠性分析.md
│  │  │  ├─ Netty 线程模型.md
│  │  │  ├─ Netty堆外内存泄露排查盛宴.md
│  │  │  └─ Netty高性能之道.md
│  │  ├─ Shiro
│  │  │  ├─ Shiro + JWT + Spring Boot Restful 简易教程.md
│  │  │  └─ 非常详尽的 Shiro 架构解析!.md
│  │  ├─ Spring
│  │  │  ├─ Spring AOP 使用介绍,从前世到今生.md
│  │  │  ├─ Spring AOP 源码解析.md
│  │  │  ├─ Spring Event 实现原理.md
│  │  │  ├─ Spring Events.md
│  │  │  ├─ Spring IOC容器源码分析.md
│  │  │  ├─ Spring Integration简介.md
│  │  │  ├─ Spring MVC 框架中拦截器 Interceptor 的使用方法.md
│  │  │  ├─ Spring bean 解析、注册、实例化流程源码剖析.md
│  │  │  ├─ Spring validation中@NotNull、@NotEmpty、@NotBlank的区别.md
│  │  │  ├─ Spring 如何解决循环依赖?.md
│  │  │  ├─ Spring 异步实现原理与实战分享.md
│  │  │  ├─ Spring中的“for update”问题.md
│  │  │  ├─ Spring中的设计模式.md
│  │  │  ├─ Spring事务失效的 8 大原因.md
│  │  │  ├─ Spring事务管理详解.md
│  │  │  ├─ Spring计时器StopWatch使用.md
│  │  │  ├─ 详述 Spring MVC 框架中拦截器 Interceptor 的使用方法.md
│  │  │  └─ 透彻的掌握 Spring 中@transactional 的使用.md
│  │  ├─ Spring Boot
│  │  │  ├─ Spring Boot 使用ApplicationListener监听器.md
│  │  │  ├─ Spring Boot引起的“堆外内存泄漏”排查及经验总结.md
│  │  │  ├─ Spring Boot的启动流程.md
│  │  │  ├─ Spring Boot自动化配置源码分析.md
│  │  │  └─ 如何自定义Spring Boot Starter?.md
│  │  └─ Spring Security
│  │     ├─ Spring Boot 2 + Spring Security 5 + JWT 的单页应用 Restful 解决方案.md
│  │     ├─ Spring Security Oauth.md
│  │     ├─ Spring Security.md
│  │     └─ 理解Oauth2.0.md
│  ├─ Java 调试排错
│  │  ├─ 调式排错 - Java Debug Interface(JDI)详解.md
│  │  ├─ 调试排错 - CPU 100% 排查优化实践.md
│  │  ├─ 调试排错 - Java Heap Dump分析.md
│  │  ├─ 调试排错 - Java Thread Dump分析.md
│  │  ├─ 调试排错 - Java动态调试技术原理.md
│  │  ├─ 调试排错 - Java应用在线调试Arthas.md
│  │  ├─ 调试排错 - Java问题排查:工具单.md
│  │  ├─ 调试排错 - 内存溢出与内存泄漏.md
│  │  ├─ 调试排错 - 在线分析GC日志的网站GCeasy.md
│  │  └─ 调试排错 - 常见的GC问题分析与解决.md
│  ├─ Java 集合
│  │  ├─ Java 集合 - ArrayList.md
│  │  ├─ Java 集合 - HashMap 和 ConcurrentHashMap.md
│  │  ├─ Java 集合 - HashMap的死循环问题.md
│  │  ├─ Java 集合 - LinkedHashSet&Map.md
│  │  ├─ Java 集合 - LinkedList.md
│  │  ├─ Java 集合 - PriorityQueue.md
│  │  ├─ Java 集合 - Stack & Queue.md
│  │  ├─ Java 集合 - TreeSet & TreeMap.md
│  │  ├─ Java 集合 - WeakHashMap.md
│  │  ├─ Java 集合 - 为什么HashMap的容量是2的幂次方.md
│  │  ├─ Java 集合 - 概览.md
│  │  └─ Java 集合 - 高性能队列Disruptor详解.md
│  ├─ Java8 以上特性
│  │  ├─ Java 10 新特性概述.md
│  │  ├─ Java 11 新特性概述.md
│  │  ├─ Java 12 新特性概述.md
│  │  ├─ Java 13 新特性概述.md
│  │  ├─ Java 14 新特性概述.md
│  │  ├─ Java 15 新特性概述.md
│  │  └─ Java 9 新特性概述.md
│  ├─ Java8 特性
│  │  ├─ Java 8 - Guide To Java 8 Optional.md
│  │  ├─ Java 8 - JRE精简.md
│  │  ├─ Java 8 - JSR310.md
│  │  ├─ Java 8 - JavaFx 2.0.md
│  │  ├─ Java 8 - Lambda 表达式.md
│  │  ├─ Java 8 - StampedLock.md
│  │  ├─ Java 8 - 其它更新.md
│  │  ├─ Java 8 - 函数式接口Function、Consumer、Predicate、Supplier.md
│  │  ├─ Java 8 - 移除Permgen.md
│  │  ├─ Java 8 - 类型推断优化.md
│  │  ├─ Java 8 - 类型注解.md
│  │  ├─ Java 8 - 重复注解.md
│  │  └─ Java 8 - 默认方法.md
│  └─ 设计模式
│     ├─ 设计模式 - JDK中的设计模式.md
│     ├─ 设计模式 - Java三种代理模式.md
│     ├─ 设计模式 - 六大设计原则.md
│     ├─ 设计模式 - 单例模式.md
│     ├─ 设计模式 - 命名模式.md
│     ├─ 设计模式 - 备忘录模式.md
│     ├─ 设计模式 - 概览.md
│     └─ 设计模式 - 没用的设计模式.md
├─ Java进阶.md
├─ README.md
├─ 云原生
│  └─ 什么是无服务器(what is serverless)?.md
├─ 分布式
│  ├─ RPC
│  │  ├─ RPC - Dubbo&hsf&Spring cloud的区别.md
│  │  ├─ RPC - Dubbo的架构原理.md
│  │  ├─ RPC - HSF的原理分析.md
│  │  ├─ RPC - 你应该知道的RPC原理.md
│  │  ├─ RPC - 动态代理.md
│  │  ├─ RPC - 协议.md
│  │  ├─ RPC - 序列化和反序列化.md
│  │  ├─ RPC - 服务注册与发现.md
│  │  ├─ RPC - 核心原理.md
│  │  ├─ RPC - 网络通信.md
│  │  └─ RPC框架对比.md
│  ├─ 分布式事务
│  │  ├─ 分布式事务 Seata TCC 模式深度解析.md
│  │  ├─ 分布式事务的实现原理.md
│  │  ├─ 常用的分布式事务解决方案.md
│  │  └─ 手写实现基于消息队列的分布式事务框架.md
│  ├─ 分布式算法
│  │  ├─ CAP 定理的含义.md
│  │  ├─ Paxos和Raft比较.md
│  │  └─ 分布式一致性与共识算法.md
│  ├─ 分布式锁
│  │  └─ 分布式锁的原理及实现方式.md
│  ├─ 协调服务
│  │  ├─ Zookeeper
│  │  │  ├─ Zookeeper - 客户端之 Curator.md
│  │  │  └─ Zookeeper -分布式协调服务 ZooKeeper详解.md
│  │  └─ etcd
│  │     └─ 高可用分布式存储 etcd 的实现原理.md
│  ├─ 搜索引擎
│  │  ├─ ElasticSearch与SpringBoot的集成与JPA方法的使用.md
│  │  ├─ 全文搜索引擎 Elasticsearch 入门教程.md
│  │  ├─ 十分钟学会使用 Elasticsearch 优雅搭建自己的搜索系统.md
│  │  └─ 腾讯万亿级 Elasticsearch 技术解密.md
│  ├─ 日志系统
│  │  ├─ Grafana Loki 简明教程.md
│  │  ├─ 分布式系统中如何优雅地追踪日志.md
│  │  ├─ 日志收集组件—Flume、Logstash、Filebeat对比.md
│  │  └─ 集中式日志系统 ELK 协议栈详解.md
│  ├─ 消息队列
│  │  ├─ 消息队列 - Kafka.md
│  │  ├─ 消息队列 - Kafka、RabbitMQ、RocketMQ等消息中间件的对比.md
│  │  ├─ 消息队列 - RabbitMQ.md
│  │  ├─ 消息队列 - 使用docker-compose构建kafka集群.md
│  │  ├─ 消息队列 - 分布式系统与消息的投递.md
│  │  ├─ 消息队列 - 如何保证消息的可靠性传输.md
│  │  ├─ 消息队列 - 如何保证消息的顺序性.md
│  │  ├─ 消息队列 - 如何保证消息队列的高可用.md
│  │  └─ 消息队列 - 消息队列设计精要.md
│  └─ 监控系统
│     └─ 深度剖析开源分布式监控CAT.md
├─ 大数据
│  └─ Flink
│     └─ Flink架构与核心组件.md
├─ 学习&成长
│  └─ 如何成为技术大牛.md
├─ 开发工具
│  ├─ Git Commit Message Guidelines.md
│  ├─ Git命令大全.md
│  ├─ Gradle vs Maven Comparison.md
│  ├─ Swagger2常用注解及其说明.md
│  └─ 简明 VIM 练级攻略.md
├─ 微服务
│  ├─ DDD
│  │  ├─ Domain Primitive.md
│  │  ├─ Repository模式.md
│  │  ├─ 从三明治到六边形.md
│  │  ├─ 应用架构.md
│  │  ├─ 聊聊如何避免写流水账代码.md
│  │  ├─ 阿里盒马领域驱动设计实践.md
│  │  ├─ 领域层设计规范.md
│  │  ├─ 领域驱动设计(DDD)编码实践.md
│  │  └─ 领域驱动设计在互联网业务开发中的实践.md
│  ├─ Dubbo
│  │  ├─ 基于dubbo的分布式应用中的统一异常处理.md
│  │  └─ 服务调用过程.md
│  ├─ Service Mesh
│  │  ├─ Istio 是什么?.md
│  │  ├─ OCTO 2.0:美团基于Service Mesh的服务治理系统详解.md
│  │  ├─ Service Mesh是什么?.md
│  │  ├─ Spring Cloud向Service Mesh迁移.md
│  │  ├─ conduit.md
│  │  └─ linkerd.md
│  └─ Spring Cloud
│     ├─ Spring Cloud Alibaba
│     │  ├─ Nacos
│     │  │  ├─ Nacos 服务注册的原理.md
│     │  │  └─ Nacos 配置中心原理分析.md
│     │  ├─ Seata
│     │  │  ├─ SEATA Saga 模式.md
│     │  │  ├─ Seata AT 模式.md
│     │  │  ├─ Seata TCC 模式.md
│     │  │  └─ Seata XA 模式.md
│     │  └─ Sentinel
│     │     ├─ Sentinel 与 Hystrix 的对比.md
│     │     └─ Sentinel.md
│     ├─ Spring Cloud Bus.md
│     ├─ Spring Cloud Config.md
│     ├─ Spring Cloud Consul.md
│     ├─ Spring Cloud Gateway.md
│     ├─ Spring Cloud Netflix
│     │  └─ Hystrix
│     │     ├─ How Hystrix Works.md
│     │     ├─ Hystrix Overview.md
│     │     ├─ Hystrix原理与实战.md
│     │     └─ Spring Cloud Hystrix基本原理.md
│     ├─ Spring Cloud OpenFeign.md
│     └─ Spring Cloud Stream.md
├─ 数据库
│  ├─ Database Version Control
│  │  ├─ Liquibase
│  │  │  ├─ Introduction to Liquibase Rollback.md
│  │  │  ├─ LiquiBase中文学习指南.md
│  │  │  └─ Use Liquibase to Safely Evolve Your Database Schema.md
│  │  ├─ Liquibase vs. Flyway.md
│  │  ├─ Six reasons to version control your database.md
│  │  └─ flyway
│  │     ├─ Database Migrations with Flyway.md
│  │     ├─ How Flyway works.md
│  │     ├─ Rolling Back Migrations with Flyway.md
│  │     └─ The meaning of the concept of checksums.md
│  ├─ MySQL
│  │  ├─ How Sharding Works.md
│  │  ├─ MySQL InnoDB中各种SQL语句加锁分析.md
│  │  ├─ MySQL 事务隔离级别和锁.md
│  │  ├─ MySQL 索引性能分析概要.md
│  │  ├─ MySQL 索引设计概要.md
│  │  ├─ MySQL出现Waiting for table metadata lock的原因以及解决方法.md
│  │  ├─ MySQL实战.xmind
│  │  ├─ MySQL的Limit性能问题.md
│  │  ├─ MySQL索引优化explain.md
│  │  ├─ MySQL索引背后的数据结构及算法原理.md
│  │  ├─ MySQL行转列、列转行问题.md
│  │  ├─ 一条SQL更新语句是如何执行的?.md
│  │  ├─ 一条SQL查询语句是如何执行的?.md
│  │  ├─ 为什么 MySQL 使用 B+ 树.md
│  │  ├─ 为什么 MySQL 的自增主键不单调也不连续.md
│  │  ├─ 为什么我的MySQL会“抖”一下?.md
│  │  ├─ 为什么数据库不应该使用外键.md
│  │  ├─ 为什么数据库会丢失数据.md
│  │  ├─ 事务的可重复读的能力是怎么实现的?.md
│  │  ├─ 大众点评订单系统分库分表实践.md
│  │  ├─ 如何保证缓存与数据库双写时的数据一致性?.md
│  │  ├─ 浅谈数据库并发控制 - 锁和 MVCC.md
│  │  ├─ 深入浅出MySQL 中事务的实现.md
│  │  └─ 深入浅出MySQL 和 InnoDB.md
│  ├─ PostgreSQL
│  │  └─ PostgreSQL upsert功能(insert on conflict do)的用法.md
│  ├─ Redis
│  │  ├─ Redis GEO & 实现原理深度分析.md
│  │  ├─ Redis 和 IO 多路复用.md
│  │  ├─ Redis分布式锁.md
│  │  ├─ Redis实现分布式锁中的“坑”.md
│  │  ├─ Redis总结.md
│  │  ├─ Redis高可用技术解决方案.md
│  │  ├─ Redlock:Redis分布式锁最牛逼的实现.md
│  │  └─ 为什么 Redis 选择单线程模型.md
│  ├─ TiDB
│  │  └─ 新一代数据库TiDB在美团的实践.md
│  └─ 数据库原理
│     └─ 为什么 OLAP 需要列式存储.md
├─ 系统设计
│  ├─ 可扩展架构
│  ├─ 基础架构
│  │  └─ 容错,高可用和灾备.md
│  ├─ 数据聚合
│  │  ├─ GraphQL及元数据驱动架构在后端BFF中的实践.md
│  │  └─ 高效研发-闲鱼在数据聚合上的探索与实践.md
│  ├─ 架构案例
│  │  └─ 微信 Android 客户端架构演进之路.md
│  ├─ 流量控制
│  │  ├─ RateLimiter
│  │  │  └─ Guava Rate Limiter实现分析.md
│  │  ├─ Sentinel
│  │  │  ├─ Sentinel 与 Hystrix 的对比.md
│  │  │  └─ Sentinel工作主流程.md
│  │  └─ 算法
│  │     └─ 分布式服务限流实战.md
│  ├─ 解决方案
│  │  ├─ 推荐系统
│  │  ├─ 秒杀系统
│  │  │  └─ 如何设计一个秒杀系统.md
│  │  └─ 红包系统
│  │     └─ 微信高并发资金交易系统设计方案--百亿红包背后的技术支撑.md
│  ├─ 高可用架构
│  │  └─ 业务高可用的保障:异地多活架构.md
│  └─ 高性能架构
├─ 计算机基础
│  ├─ 字符编码
│  │  └─ 字符编码笔记:ASCII,Unicode 和 UTF-8.md
│  ├─ 常见协议
│  │  └─ MQTT - The Standard for IoT Messaging.md
│  ├─ 操作系统
│  │  ├─ 为什么 CPU 访问硬盘很慢.md
│  │  ├─ 为什么 HTTPS 需要 7 次握手以及 9 倍时延.md
│  │  ├─ 为什么 Linux 默认页大小是 4KB.md
│  │  ├─ 为什么 TCP 协议有性能问题.md
│  │  ├─ 为什么 TCP 协议有粘包问题.md
│  │  ├─ 为什么 TCP 建立连接需要三次握手.md
│  │  ├─ 为什么 TCPIP 协议会拆分数据.md
│  │  ├─ 磁盘IO那些事.md
│  │  └─ 虚拟机的3种网络模式.md
│  ├─ 数据结构与算法
│  │  ├─ 其他相关
│  │  │  ├─ 什么是预排序遍历树算法(MPTT).md
│  │  │  ├─ 加密算法.md
│  │  │  ├─ 推荐系统算法.md
│  │  │  ├─ 数据挖掘算法.md
│  │  │  ├─ 查找算法.md
│  │  │  ├─ 缓存淘汰算法中的LRU和LFU.md
│  │  │  └─ 负载均衡算法.md
│  │  ├─ 分布式算法
│  │  │  ├─ 分布式算法 - Paxos算法.md
│  │  │  ├─ 分布式算法 - Raft算法.md
│  │  │  ├─ 分布式算法 - Snowflake算法.md
│  │  │  ├─ 分布式算法 - ZAB算法.md
│  │  │  └─ 分布式算法 - 一致性Hash算法.md
│  │  ├─ 大数据处理
│  │  │  ├─ 大数据处理 - Bitmap & Bloom Filter.md
│  │  │  ├─ 大数据处理 - Map & Reduce.md
│  │  │  ├─ 大数据处理 - Trie树数据库倒排索引.md
│  │  │  ├─ 大数据处理 - 分治hash排序.md
│  │  │  ├─ 大数据处理 - 双层桶划分.md
│  │  │  ├─ 大数据处理 - 外(磁盘文件)排序.md
│  │  │  ├─ 大数据处理 - 布隆过滤器.md
│  │  │  └─ 大数据处理算法.md
│  │  ├─ 字符串匹配算法
│  │  │  ├─ 字符串匹配 - 文本预处理:后缀树(Suffix Tree).md
│  │  │  ├─ 字符串匹配 - 模式预处理:BM 算法 (Boyer-Moore).md
│  │  │  ├─ 字符串匹配 - 模式预处理:KMP 算法(Knuth-Morris-Pratt).md
│  │  │  ├─ 字符串匹配 - 模式预处理:朴素算法(Naive)(暴力破解).md
│  │  │  └─ 字符串匹配.md
│  │  ├─ 常用算法
│  │  │  ├─ 分支限界算法.md
│  │  │  ├─ 分治算法.md
│  │  │  ├─ 动态规划算法.md
│  │  │  ├─ 回溯算法.md
│  │  │  └─ 贪心算法.md
│  │  ├─ 排序算法
│  │  │  ├─ 十大排序算法.md
│  │  │  ├─ 图解排序算法(一)之3种简单排序(选择,冒泡,直接插入).md
│  │  │  ├─ 图解排序算法(三)之堆排序.md
│  │  │  ├─ 图解排序算法(二)之希尔排序.md
│  │  │  └─ 图解排序算法(四)之归并排序.md
│  │  └─ 数据结构
│  │     ├─ 树的高度和深度.md
│  │     ├─ 红黑树深入剖析及Java实现.md
│  │     ├─ 线性结构 - Hash.md
│  │     ├─ 线性结构 - 数组、链表、栈、队列.md
│  │     └─ 逻辑结构 - 树.md
│  ├─ 服务器
│  │  ├─ Mac终端bash、zsh、oh-my-zsh最实用教程.md
│  │  ├─ Nginx强制跳转Https.md
│  │  └─ curl 的用法指南.md
│  ├─ 网络安全
│  │  ├─ 如何设计一个安全的对外接口?.md
│  │  └─ 浅谈常见的七种加密算法及实现.md
│  └─ 网络编程
│     ├─ JSON Web Token 入门教程.md
│     ├─ 两万字长文 50+ 张趣图带你领悟网络编程的内功心法.md
│     ├─ 使用 OAuth 2 和 JWT 为微服务提供安全保障.md
│     ├─ 四种常见的 POST 提交数据方式.md
│     ├─ 理解OAuth 2.0.md
│     ├─ 看完这篇HTTP,跟面试官扯皮就没问题了.md
│     └─ 详细解析 HTTP 与 HTTPS 的区别.md
├─ 质量&效率
│  ├─ Homebrew 替换国内镜像源.md
│  ├─ 工作中如何做好技术积累.md
│  ├─ 快捷键
│  │  ├─ Idea快捷键(Mac版).md
│  │  ├─ Shell快捷键.md
│  │  └─ Vim快捷键.md
│  └─ 敏捷开发
│     ├─ Scrum的3种角色.md
│     ├─ Scrum的4种会议.md
│     ├─ ThoughtWorks的敏捷开发.md
│     └─ 敏捷开发入门教程.md
├─ 运维&测试
│  ├─ Docker
│  │  ├─ Docker (容器) 的原理.md
│  │  ├─ Docker Compose:链接外部容器的几种方式.md
│  │  ├─ Docker 入门教程.md
│  │  ├─ Docker 核心技术与实现原理.md
│  │  ├─ Dockerfile 最佳实践.md
│  │  ├─ Docker开启Remote API 访问 2375端口.md
│  │  └─ Watchtower - 自动更新 Docker 镜像与容器.md
│  ├─ Kubernetes
│  │  ├─ Kubernetes 介绍.md
│  │  ├─ Kubernetes 在有赞的实践.md
│  │  ├─ Kubernetes 学习路径.md
│  │  ├─ Kubernetes如何改变美团的云基础设施?.md
│  │  ├─ NodePort、LoadBalancer 和 Ingress.md
│  │  └─ 谈 Kubernetes 的架构设计与实现原理.md
│  ├─ 压测
│  │  └─ 全链路压测平台(Quake)在美团中的实践.md
│  └─ 测试
│     ├─ Cpress - JavaScript End to End Testing Framework.md
│     ├─ Cypress
│     ├─ Spock
│     │  ├─ Groovy 简明教程.md
│     │  └─ Spock 官方文档.md
│     ├─ TDD
│     │  ├─ TDD 实践 - FizzFuzzWhizz(一).md
│     │  ├─ TDD 实践 - FizzFuzzWhizz(三).md
│     │  ├─ TDD 实践 - FizzFuzzWhizz(二).md
│     │  └─ 测试驱动开发(TDD)- 原理篇.md
│     ├─ 代码覆盖率-JaCoCo.md
│     ├─ 浅谈代码覆盖率.md
│     └─ 测试中 Fakes、Mocks 以及 Stubs 概念明晰.md
└─ 面试大纲.md

java-notes's People

Contributors

ldbmcs avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.