一些文章资讯汇总(IT技术向)

各类资讯汇总

  • 写在前面(声明)
  • Java基础
    • 二进制、编码相关
    • String
      • List
      • Map
    • IO相关
    • HTTP
    • 线程
    • JVM
    • 算法
    • 设计模式
    • 规范
    • 其他
    • yaml
  • 常用框架/组件
    • Netty
    • Spring
    • SpringBoot
      • 缓存
    • ORM框架
      • Mybatis
      • Hibernate
      • 数据库连接池
    • 微服务
      • Dubbo
      • SpringCloud
      • Dubbo Spring Cloud
    • Redis相关
      • Redis
      • Redisson
      • 待研究(疑问)
    • ZooKeeper
    • 消息中间件
      • kafka
      • RocketMQ
      • RabbitMQ
      • ActiveMQ
    • Nginx
    • Solr
    • ElaticSeacher
    • Netty
    • MySQL
    • FDFS
  • 事务
  • 架构设计
  • 问题处理
  • 操作系统
    • Linux
  • 常用工具
    • IDE
      • IDEA
      • Eclipse
    • 设计工具
    • 版本管理工具
    • 项目管理工具
    • 其他
  • 面试/职场
    • 面试题汇集
    • 职场
  • 开源项目

写在前面(声明)

声明:这里的各个内容基本都是平时看到的一些觉得有用的文章资讯的链接汇总,里面的内容都不是我的创作!
做个快乐的搬运工!

Java基础

  • Java抽象类与接口的区别
  • 深入理解Java的接口和抽象类
  • Java SimpleDateFormat 没那么简单
  • 反射 — Java 高级开发必须懂的
  • 一篇文章了解 Java 反射和应用
  • 走进java_符号引用与直接引用
  • Java常见集合的默认大小及扩容机制
  • 为什么要先高16位异或低16位再取模运算 备注:右移16位,自己的高半区和低半区异或,就是为了混合原始哈希码的高位和低位,以此来加大低位随机性。
  • HashSet、TreeSet、CopyOnWriteArraySet和CopyOnWriteArrayList
  • 使用try-with-resources优雅关闭资源 jdk1.7语法糖
  • Java8新特性之一:Lambda表达式
  • Java8新特性之二:方法引用
  • Java8新特性之三:Stream API
  • Java8新特性之四:接口默认方法和静态方法
  • Java8新特性之五:Optional
  • 二进制、编码相关

  • java二进制相关基础
  • 二进制实战技巧
  • 一篇文章彻底弄懂Base64编码原理
  • Base64 的原理、实现及应用
  • String

  • 细说 Java 中的字符和字符串
  • 探秘Java中的String、StringBuilder以及StringBuffer
  • StringBuffer和StringBuilder的扩容问题
  • List

    备注:

    1. ArrayList 扩容机制int newCapacity = oldCapacity + (oldCapacity >> 1);
    2. ArrayList复制的时候需要注意深浅拷贝问题;新建一个List去接受新值也是浅拷贝;Collections.copy()为深拷贝,其他都基本是浅拷贝;
  • Java ArrayList 工作原理及实现
  • Java ArrayList 踩坑记录
  • 关于 ArrayList 的 5 道面试题
  • java List复制:浅拷贝与深拷贝
  • java.util.Collections.copy()方法注意点
  • Java 数据结构- ArrayList 最细致的解析笔记
  • ArrayList中remove方法的坑
  • CopyOnWriteArrayList实现原理以及源码解析
  • CopyOnWriteArraySet
  • Map

  • JDK1.7中HashMap底层实现原理
  • 一文搞定HashMap的实现原理(jdk1.8)
  • Java并发编程笔记之ConcurrentHashMap原理探究
  • ConcurrentHashMap 使用:每个 Key 只调用 1 个方法
  • Java并发包concurrent——ConcurrentHashMap
  • IO相关

  • Java transient关键字
  • Java字节流与字符流的区别
  • Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream
  • 如何给女朋友解释什么是BIO、NIO和AIO?
  • Java NIO:浅析I/O模型
  • Java NIO:NIO概述
  • java中多种写文件方式的效率对比实验
  • Java IO 性能优化大PK,什么场景用啥,都给你总结好啦!
  • 支撑百万并发的"IO多路复用"技术你了解吗?
  • 大文件拆分方案的java实践
  • HTTP

  • Http 连接池
  • HTTP协议又冷又实用的技能大全!
  • 线程

  • Java多线程之Callable和Future
  • 线程的应用及挑战
  • 从jvm层面了解线程的启动和停止
  • Thread.join的作用和原理
  • ThreadLocal的使用及原理分析

  • 你了解乐观锁和悲观锁吗?
  • Synchronized原理分析
  • synchronized的源码分析
  • Volatile的作用及原理
  • Java 中的 Unsafe 与 CAS
  • 一句话撸完重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等各种锁 ---- 不看后悔系列

  • Java线程池解析
  • 关于线程池,这些“根儿上”的东西你不能不知道!
  • 没那么简单的线程池
  • 如何优雅的使用和理解线程池
  • 线程池最常用的 4 种类型解析!
  • 教你如何监控 Java 线程池运行状态
  • 别再乱改数据库连接池的大小了!
  • Java 中的锁
  • JVM

  • JVM 参数详解
  • JVM体系结构认知
  • jvm知识点总览
  • 内存模型、可见性、指令重排序
  • 配置参数
  • 深入了解 Java 之虚拟机内存
  • Java内存区域与虚拟机类加载机制
  • ClassLoader解惑 备注:很全,包括了tomcat的一些加载器
  • jvm之java类加载机制和类加载器(ClassLoader)的详解
  • 计算机内存和Java内存组件
  • 垃圾回收算法与 JVM 垃圾回收器综述
  • (jvm调优)一、linux内存查看命令
  • (jvm调优)二、Java内存模型及性能优化及Java垃圾回收
  • 咱们从头到尾说一次 Java 垃圾回收
  • 扒一扒 JVM 的垃圾回收机制
  • Java内存模型深度剖析
  • String内存溢出异常(错误)可能的原因及解决方案
  • Tomcat中垃圾回收调优
  • tomcat 内存泄漏存入dump文件
  • 一次让人难以忘怀的排查频繁Full GC过程
  • 算法

  • Java 常用的八种排序算法与代码实现
  • 面试时写不出排序算法?看这篇就够了
  • 设计模式

  • 一些设计上的基本常识
  • 桥接模式(Bridge)
  • 装饰模式(Decorator)
  • 职责链模式(Chain Of Responsibility)
  • 规范

  • 前后分离接口规范
  • 前后端分离后API交互如何保证数据安全性?
  • 如何 mock 数据
  • 怎样提供一个好的移动 API 接口服务
  • 别在 Java 代码里乱打日志了,这才是正确的打日志姿势
  • Java 编程军规
  • Java 编程风格军规,看这一篇就够了
  • java 性能优化:35 个小细节,让你提升 java 代码的运行效率
  • Java性能优化的50个细节
  • 《代码整洁之道》读书笔记
  • 优秀的代码都是如何分层的?
  • MySQL高性能优化规范建议
  • 恕我直言,在座的各位根本不会写 Java!
  • 阿里巴巴Java开发手册思维导图
  • 44个Java代码性能优化总结
  • Apache项目 架构师的30条设计原则
  • 一份非常完整的 MySQL 规
  • 其他

  • Java 环境下使用 AES 加密的特殊问题处理
  • JAVA实现图片等比缩放,图片截取功能--封装类
  • yaml

  • YAML快速入门
  • 常用框架/组件

  • 高效 Java 人必须知道的十大框架
  • Spring MVC & Boot & Cloud 技术教程汇总
  • Netty

  • 看完这篇还不清楚Netty的内存管理,那我就哭了!
  • Spring

  • Spring AOP 的实现原理
  • Spring AOP 的实现机制
  • 手把手教你用 Java 实现 AOP
  • 你必须要懂的 Spring:Aop
  • 深入分析 Spring 框架中 AOP 与动态代理的整合原理
  • Spring AOP是什么?你都拿它做什么?
  • Spring中AOP相关源码解析
  • springAOP底层源码深度解析
  • 学完 Aop,连动态代理的原理都不懂?
  • spring 依赖注入时,什么时候会创建代理类
  • Spring 常犯的十大错误
  • Spring中的18个注解,你会几个?
  • @RequestMapping 用法详解之地址映射
  • SpringBoot

  • Spring Boot启动原理解析
  • 这样深度Spring Boot的源码解析,看完帮你立即提升一个台阶!
  • SpringBoot 整合长连接心跳机制
  • 给你一份超详细 Spring Boot 知识清单
  • 两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践
  • Spring Boot 2.x 新特性总结及迁移指南
  • springboot+dubbo+redis+RabbitMQ 项目整合实例【附完整源码】
  • springboot多数据源读写分离和主库数据源service层事务控制
  • springboot注解@NotNull,@NotBlank,@Valid自动判定空值
  • spring boot-整合CAS Client实现单点登陆验证
  • Spring Boot 配置优先级顺序
  • Springboot中logback配置日志按天分割
  • SpringBoot项目单元测试
  • SpringBoot项目中,拦截器获取Post方法的请求body

  • 基于springboot的RestTemplate、okhttp和HttpClient对比

  • SpringBoot中建立WebSocket连接(STOMP)
  • websocket实例问题
  • SpringBoot2.0集成WebSocket,实现后台向前端推送信息 备注:使用CopyOnWriteArraySet存储连接对象不合理,因为该类只适合读多写少的场景
  • spring自带的定时任务功能@EnableScheduling
    注意:
    1. 默认的 ConcurrentTaskScheduler 计划执行器采用Executors.newSingleThreadScheduledExecutor() 实现单线程的执行器,有些场景会导致单线程任务丢失。
    2. 关于分布式情况下,重复执行的问题
    3. 服务器宕机/任务执行失败,丢失的任务如何补偿?
  • springboot2.0+websocket集成【群发消息+单对单】
  • 缓存

    备注:
    1.各种设置缓存失效时间的方案中(各有优劣):1.给指定缓存名称设置不同的失效时间;2.改造注解,支持个性化失效时间;
    2. Jackson2JsonRedisSerializer和GenericJackson2JsonRedisSerializer两个序列化器建议使用后者,因为使用Jackson2JsonRedisSerializer在反序列化时会遇到没有具体泛型或泛型为Object时,会将缓存中的数据反序列化为LinkedHashMap。

  • 缓存使用过程中的几种策略总结及优缺点组合分析
  • SpringBoot2.0-缓存注解的使用及缓存原理
  • SpringBoot 2.0 之使用声明式注解简化缓存
  • SpringBoot2.0的@Cacheable(Redis)缓存失效时间解决方案
  • Spring Cache扩展:注解失效时间+主动刷新缓存
  • spring boot2.0集成ehcache缓存
  • springboot2.0 使用ehcache缓存
  • ORM框架

    Mybatis

  • 如何使用通用Mapper
  • SpringBoot+Mybatis+ Druid+PageHelper 实现多数据源并分页
  • SpringBoot+Mybatis+druid(基于maven)
  • spring boot(六):如何优雅的使用mybatis
  • 备注: 1. MyBatis默认开启一级缓存关闭二级缓存; 2. MyBatis一级缓存的生命周期和SqlSession一致,在同一个Session中才会有效果; 3. 因为MyBatis缓存都是基于本地的,所以分布式使用Redis、Memcached等分布式缓存更加合适;
  • springboot mybatis redis 二级缓存
  • SpringBoot 下 mybatis 的缓存
  • Hibernate

    备注:

    1. 默认开启一级缓存,一级缓存作用范围也是同一个Session,和Mybatis类似;
  • Hibernate 缓存机制(N+1问题)详解
  • 数据库连接池

  • 深入理解Spring Boot数据源与连接池原理
  • 备注:因为druid连接池bug比较多,可以直接使用spring‐boot‐starter‐jdbc默认的连接池
  • Springboot 2.0默认连接池HikariCP详解(效率最高)
  • 备注:之前用的tomcat-jdbc
  • 使用druid连接池遇到的坑
  • 使用druid连接池带来的坑testOnBorrow=false
  • 阿里Druid连接池的坑。。
  • 微服务

  • 阿里巴巴为什么不用 ZooKeeper 做服务发现?
  • Dubbo

  • Dubbo负载均衡、容错、高可用
  • Dubbo性能调优参数及原理
  • 看了这篇Dubbo RPC面试题,让天下没有难面的面试题!
  • Dubbo面试18问!这些你都会吗?
  • 一文看懂 Dubbo 的集成与使用,很强!
  • SpringCloud

  • SpringCloud中文网
  • 史上最简单的 SpringCloud 教程 | 终章

  • Spring Cloud 系列文章
  • SpringCloud微服务架构升级总结
  • Spring Cloud之eureka配置——eureka.instance
  • Spring Cloud中,Eureka常见问题总结
  • 中小企业对Spring Cloud微服务架构实践经验总结的一些思考!
  • Spring Cloud Feign常见问题
  • Spring Cloud Gateway-过滤器工厂详解(GatewayFilter Factories)
  • Spring Cloud Gateway-路由谓词工厂详解(Route Predicate Factories)
  • spring cloud gateway之服务注册与发现
  • Spring Cloud Stream知识点盘点
  • Spring Cloud Stream 错误处理详解
  • Spring Cloud Stream实现消息过滤消费
  • Dubbo Spring Cloud

  • Dubbo Spring Cloud 重塑微服务治理
  • Redis相关

    Redis

  • Redis 的 4 大法宝,2018 必学中间件!
  • 除了用作缓存数据,Redis还可以做这些
  • 分布式之redis复习精讲
  • 扫盲,为什么分布式一定要有Redis?
  • Redis开发设计规范及案例分析
  • 使用Redis实现分布式锁及其优化
  • Redis 事务
  • 挑战Kafka!Redis5.0重量级特性Stream尝鲜
  • 深入学习 Redis(3):主从复制
  • Redis如何做持久化与恢复
  • 如何搭建高可用Redis服务
  • Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
  • Windows 环境搭建Redis集群

  • Redis相关的几个问题
  • Redis缓存雪崩、击穿、双写一致问题
  • 吃透了这些Redis知识点,面试官一定觉得你很NB
  • Redis ,真的不完美
  • Redis企业实战的几个坑,你思考了吗?
  • Redis上踩过的一些坑-美团
  • Redis 集群部署及踩过的坑
  • Redisson

  • Redisson实现分布式锁(1)---原理
  • Redisson实现分布式锁(2)—RedissonLock
  • Redisson实现分布式锁(3)—项目落地实现
  • 自己写分布式锁-基于redission
  • Redisson实现Redis分布式锁的N种姿势
  • 利用Redisson实现分布式锁及其底层原理解析
  • 待研究(疑问)

  • Redisson集群模式缺陷怎么解决?
  • ZooKeeper

  • 构建高可用ZooKeeper集群
  • 10分钟看懂!基于Zookeeper的分布式锁 备注:可使用Curator
  • zookeeper开源客户端Curator介绍
  • 消息中间件

  • 再过半小时,你就能明白kafka的工作原理了
  • 90% 的 Java 程序员,都扛不住这波消息中间件的面试四连炮!
  • 分布式之MQ复习精讲
  • kafka

  • kafka学习笔记:知识点整理
  • kafka学习笔记:知识点整理
  • Kafka acks参数对消息持久化的影响
  • RocketMQ

  • 万亿级数据洪峰下的分布式消息引擎
  • RabbitMQ

  • 如何保证消息中间件全链路数据100%不丢失(1)
  • 如何保证消息中间件全链路数据100%不丢失(2)
  • 消息中间件如何实现消费吞吐量的百倍优化?
  • 高并发场景下,如何保证生产者投递到消息中间件的消息不丢失?
  • 完了!生产事故!几百万消息在消息队列里积压了几个小时!
  • ActiveMQ

  • ActiveMQ · 基础篇
  • 关于 MQ ,你必须知道的
  • Nginx

  • 全面了解 Nginx 到底能做什么
  • nginx 搭建图片服务器《四》:后台java代码springMVC+spring实现图片上传
  • Solr

  • Solr4.7从文件创建索引
  • spring boot 集成solr
  • solr集成springboot并向solr推送索引数据更新和查询
  • Solr7 安装部署 管理界面介绍
  • ElaticSeacher

  • 初学ElasticSeacher
  • Netty

  • Netty 实现心跳机制与断线重连
  • MySQL

  • MySQL 四种隔离级别
  • 不要在 MySQL 中使用“utf8”,请使用“utf8mb4”
  • MySQL 调优/优化的 101 个建议!
  • 为什么 MySQL 索引要使用 B+树而不是其它树形结构?比如 B 树?
  • 史上最牛分析MySQL索引机制的实现!不接受反驳!
  • 鸟瞰 MySQL,唬住面试官!
  • FDFS

  • fastdfs笔记
  • 事务

  • Spring 事务管理
  • 分析动态代理给 Spring 事务埋下的坑
  • Spring transaction事务 roll back各种回滚
  • Spring Cloud分布式事务终极解决方案探讨
  • 用rabbitmq解决分布式事务
  • 3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务
  • 常用的分布式事务解决方案介绍有多少种?
  • 分布式服务化系统一致性的“最佳实干”
  • 刚发工资给女朋友转账引发我对分布式事务的思考
  • 分布式事务怎么处理?一文告诉你!
  • 聊聊微服务架构及分布式事务解决方案!
  • 日订单50万级分布式事务
  • 聊聊分布式事务,再说说解决方案
  • 架构设计

  • 系统架构设计的原则和模式
  • 如何健壮你的后端服务

  • 分布式唯一ID极简教程
  • 分布式锁的几种实现方式

  • 前后端分离模式下的权限设计方案
  • 到底什么是跨域?附解决方案!
  • 一步步带你了解前后端分离利器之JWT
  • 单点登录原理与简单实现
  • 单点登录系统实现
  • OAuth2 实现单点登录 SSO
  • 到底什么是 OAuth 2.0 ? 一文秒懂!
  • oAuth2 升级 Spring Cloud Finchley.RELEASE 踩坑分享

  • 如何将高并发拉下神坛!
  • 究竟啥才是互联网架构中的高并发!
  • 构建高并发&高可用&安全的IT系统-高并发部分
  • 服务端高并发分布式架构演进之路
  • 可用性高达99.999%!支付系统高可用架构设计实战

  • 关于数据库的水平切分和垂直切分的一些概念
  • 分库分表?如何做到永不迁移数据和避免热点?
  • 一次分表踩坑实践的探讨
  • 微服务开发中的数据构架设计
  • 日均7亿交易量,如何设计高可用的MySQL架构?
  • 记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案
  • MySQL大表优化方案,单表优化、读写分离、缓存、分区表……都在这里了
  • 4次版本迭代,我们将项目性能提升了360倍!

  • 设计一个百万级的消息推送系统!
  • 电商系统中的商品模型的分析与设计
  • 电商中的库存管理实现-mysql与redis
  • 京东购物车的 Java 架构实现及原理!
  • 最完整的购物车实现及原理(仿京东实现原理)
  • 从京东618秒杀聊聊秒杀限流的多种实现!
  • 支付系统整体架构
  • 架构图解:支付宝钱包系统架构内部剖析
  • 网易云音乐的消息队列改造之路
  • 弘康人寿基于 RocketMQ 构建微服务边界总线的实践
  • 问题处理

  • e.printStackTrace() 导致系统卡崩
  • 记一次服务器被植入挖矿木马cpu飙升200%解决过程
  • 阿里云提示服务器有挖矿程序 该如何处理
  • Java 问题排查工具单
  • 一文了解 OutOfMemory 及解决方案
  • 一次生产 CPU 高负载排查实践
  • 记一次构建SaaS平台项目失败后的反思
  • 不小心执行了 rm -f,先别急着跑路
  • 一次业务逻辑优化,竟然解决了MySQL CPU消耗800%的性能问题!
  • netstat查看CLOSE_WAIT过多
  • rm -rf *可怕不?来给 rm 加个垃圾桶
  • 用了10多年的 Tomcat 居然有bug,这能忍?(400错误)
  • 操作系统

    Linux

  • 工作中常用到的Linux命令
  • linux下利用nohup后台运行jar文件包程序
  • 常用工具

    IDE

    IDEA

  • Java 开发必装的 IntelliJ IDEA 插件
  • idea插件篇之java内存分析工具(JProfiler)
  • 整理了一些 IDEA 中比较骚的技巧,发现第一个就没用过!
  • 这样配置,让你的IDEA好用到飞起来
  • 为什么你的Intellij没别人的好用?
  • Jetbrains 首席布道师 Hadi 的分享的 Intellij IDEA 使用技巧
  • IntelliJ IDEA 详细图解最常用的配置,适合刚刚用的新人。
  • IntelliJ IDEA常用快捷键汇总
  • Eclipse

  • 利用内存分析工具(Memory Analyzer Tool,MAT)分析java项目内存泄露
  • 手把手:Java内存泄漏分析Memory Analyzer Tool
  • 设计工具

    版本管理工具

  • 我是如何理解并使用maven的
  • 开发中必须要掌握的 Git 技巧
  • 好文推荐,20 分钟教你搞懂 Git!
  • 项目管理工具

    其他

  • 阿里巴巴开发者工具盘点
  • 6到飞起的Java诊断工具Arthas
  • 面试/职场

    面试题汇集

  • JAVA基础面试总结
  • 面试篇
  • 《Java最常见的208道面试题及答案》目录
  • 40个Java多线程问题总结
  • 20个常见面试问题整理系列之—多线程
  • Java 高并发面试题
  • Java高级工程师面试总结
  • 五年左右的 Java 高级面试题总结
  • 最近 5 年 133 个 Java 面试问题列表(下)
  • Java架构师面试题全分享,你离架构师还有多远?
  • GitHub上获得26236个Star的Java面试项目,看看你都会几个部分?
  • Java程序员必备的一些流程图

  • JAVA高级面试总结-JVM篇
  • JVM内存结构的面试题
  • 平常如何对你的Java程序进行调优?
  • 你知道 OOM 常见原因吗?有什么好的解决方法?

  • MySQL面试高频
  • 在工作中常用到的SQL
  • 一条 SQL 语句执行得很慢的原因有哪些?
  • 如何保证缓存与数据库的双写一致性?

  • 程序员这样面试,拿到offer的几率是80%
  • 工作2年半跳槽面试阿里,成功拿到offer,凭什么?
  • 如何在面试中介绍自己的项目经验?
  • 阿里三面,P9面试官是如何360°无死角考察候选人的?
  • 我的奇葩面试经历分享
  • Java六道常见面试分享、第十九天坚持学习
  • Java六道常见面试分享、第十八天坚持学习
  • 职场

  • Code Review最佳实践
  • 秒懂 QPS、TPS、PV、UV、GMV、IP、RPS!
  • 最牛逼的编码套路
  • 如何进行代码重构?
  • 漫画:三分钟了解敏捷开发
  • 如何在短时间内成为DevOps专家?
  • 一线 IT 公司开发转管理,我是怎么从0到1的?
  • 十年开发,我总结出了这12条经验
  • 毕业5年,年薪50万,我总结了职场最值钱的5句话
  • 顶尖程序员的五种思维模式,你具备吗?
  • 如何看出一个程序员的技术水平?
  • 陆奇:除了好代码,工程师怎样才算优秀?
  • 程序员如何自我学习?阿里资深技术专家这样做
  • 为什么说你应该把CI/CD变成你的关键能力
  • Java 工程师成神之路 | 2019正式版
  • 大部分996只能怪自己?我是如何把修改bug时间降到10%?备注:敏捷开发之测试驱动开发(TDD)

  • 程序员装逼被怼,决定用面试证明自己,结果......
  • 程序员的年度未解之谜:加班背锅的是我,得优秀员工的却是他
  • 外包 vs 技术导向型 vs 业务驱动型,码农跳槽何去何从?
  • 三四十岁的大龄程序员,应该如何保持自己的职场竞争力?
  • 30多岁程序员选什么样的公司可以稳妥地把技术路线走下去?
  • 一个员工的离职成本到底有多恐怖!
  • 上了名校才知道,人和人的差距其实是家庭和视野的较量
  • 程序员到了 35 岁,还能找到工作吗?
  • 一个老码农对职场的思考
  • 关键选择:等公司加薪or跳槽涨薪?

  • HR套路
  • 开源项目

  • Github上热门的Java开源项目
  • 你可能感兴趣的:(一些文章资讯汇总(IT技术向))