1、基础技术

数据结构与算法

  逻辑结构:数据对象中的数据元素之间的逻辑关系

1.集合结构:集合结构中的数据元素除了同属一个集合外,没有其他关系。

2.线性结构:线性结构中的数据元素之间是一对一的关系。

3.树形结构:树形结构中的数据元素之间是一对多的关系。

4.图形结构:图形结构中的数据元素之间是多对多的关系。

  物理机构:数据的逻辑结构在计算机中的储存形式

1.顺序储存结构:把数据元素储存在连续的存储单元。

2.链式储存结构:把数据元素储存在任意的存储单元(可以是连续或者不连续)。

知识点 链接
算法复杂性分析 对一个算法需要多少计算时间和存储空间作定量的分析
线性表、链表数据结构详解
队列、栈数据结构详解
基础排序算法详解
快排与并归排序详解
二分搜索、哈希表详解
并查集算法详解
树,基本概念,二叉树(遍历)详解
图、深度优先遍历、广度优先遍历
最小生成树、最短路径详解
Bloom Filter/Bitmap

数据库技术

23种设计模式 GOF

  创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

  结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式

  行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

知识点 链接
工厂模式(Factory) 用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类
单例模式(Singleton)
代理模式(Proxy)
委派模式(Delegate)
观察者模式(Observer)
策略模式(Strategy)
模版模式(Template)

应用开发

  • Spring

    知识点 链接
    Spring Ioc容器设计理念与源码 Spring容器设计中,BeanFactory实现容器的基本功能,ApplicationContext作为容器高级形态存在
    Spring事务失效与解决方案详解
    Spring MVC源码与原理深度解析
    Spring5 日志框架、Testing、WebFlux等新特性
    Spring aop源码与原理深度解析
    Spring源码如何阅读
    熟悉常见的Spring面试题
    详解Spring IOC、AOP、MVC应用
  • MyBatis

    知识点 链接
    整体认识mybatis与mybatis体系结构
    Mybatis核心应用配置与原理解析
    Mybatis核心流程与源码分析
    Mybatis与Spring整合原理详解
    一级、二级缓存使用场景详解
    徒手教大家实现mybatis与思想
    Configuration、SqlSession、SqlSessionFactory、Executors
    MappedStatement、StatementHandler、ResultSetHandler等核心概念
    MyBatis设计模式:工厂、构建、单例、责任链、代理、模版、装饰模式详解

2、工作技术

消息中间件

  消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。

  • RocketMQ

    知识点 链接
    初识消息中间件,在分布式应用场景
    部署与快速开始&特性详解
    RocketMq监控与高可用详解
    RocketMq特性详解
    RocketMq源码分析详解
    RocketMq高可用&伸缩部署详解
  • Kafka

    知识点 链接
    kafka集群搭建与使用
    kafka设计原理分析
    kafka分布式实战详解
    kafka高可用&伸缩部署详解

Java并发编程

  并发编程的目的是为了让程序运行的更快,但是并不是启动更多的线程,就能让程序最大限度的并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行的更快,会面临非常多的挑战,比如上下文切换的问题,死锁的问题,以及受限于硬件和软件的资源限制问题,本章会介绍几种并发编程的挑战,以及解决方案。

知识点 链接
Java并发之Executor线程池体系 Executors.newCachedThreadPool(无界线程池,自动线程回收)
Executors.newFixedThreadPool(固定大小的线程池);
Executors.newSingleThreadExecutor(单一后台线程);
Java并发之lock与Java内存模型
Java并发之CAS原理
并发编程之定时线程池
Java并发DCL详解
Java并发Fork-join框架原理
Java并发ThreadPoolExecutor原理

分布式技术

  分布式系统是一个硬件或者软件组件分布在不同网络计算机上,彼此之间仅仅通过消息传递来进行通信和协调的系统。一个分布式系统通常具有以下特点:

  1.分布式:在空间上随意分布,

  2.对等性:组成分布式系统的所有节点都是对等的。

  3.并发性

  4.缺乏全局时钟。在分布式系统很难确定多个时间的顺序,原因就是分布式系统缺乏一个全局的时钟。

  5.故障总是会发生。

  分布式系统体系机构面对着诸多的难题和挑战:

  1.通信异常:分布式系统需要在各个节点之间进行网络通信,而网络本身是不可靠的。

  2.网络分区:当网络由于发生异常情况,最终导致组成分布式系统的所有节点,只有部分节点之间能够进行通信,另一些节点则不能。这种现象称为网络分区,俗称脑裂。

  3.三态:分布式系统的每一次请求与响应存在特有的三态概念,即成功、失败、超时。

  4.节点故障:指组成分布式系统的服务器节点出现的宕机或“僵死”现象。

微服务技术

  微服务是系统架构上的一种设计风格,它的主旨是将一根原本独立的系统拆分多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。被拆分的每一个小型服务都围绕着系统中某一项或一些耦合度较高的业务功能进行构建,并且每个服务都维护这自身的数据存储、业务并发、自动化测试案例以及独立部署机制。由于有了轻量级的通信协作基础,所有这些微服务可以使用不同的语言来编写。

JVM调优

  1.年轻代大小选择

    响应时间优先的应用

    吞吐量优先的应用

  2.年老代大小选择

    响应时间优先的应用

    吞吐量优先的应用

  3.较小堆引起的碎片问题

知识点 链接
JVM调优 JVM调用(一)
JVM整体结构与垃圾回收算法介绍
什么是JVM内存模型
类加载器深入解析
GC日志格式详解,从日志排查问题
GC调优实战
各种垃圾回收使用场景
面试JVM题分析详解
互联网项目JVM调优实战

3、提升技术

源码分析

  • Spring源码深入分析

    知识点 链接
    Ioc容器设计理念与bean的注册原理分析及其源码解读
    @Configuration原理分析,依赖注入底层原理分析
    容器启动流程,bean的生命周期及其源码分析
    bean的循环依赖源码分析,bean构建过程中各大后置处理器作用及其源码分析
    Spring AOP源码与原理深度解析,Cglib和Jdk动态代理区别
    Spring MVC源码与原理解析
    @EnableWebMvche MessageConverter源码分析
    Spring事务失效之谜,事务隔离级别和事务传播属性源码分析
  • Mybatis源码深入分析

    知识点 链接
    Mybatis核心流程与源码分析
    Mybatis执行器源码分析
    Mybatis缓存源码分析 CachingExecutor一级 二级缓存源码分析
    Configuration、SqlSession、SqlSessionFactory、源码分析
    ExecutorMappedStatement、StatementHandler、ResultSetHandler源码分析
    Mabatis执行引擎Executor、BaseExecutor、SimpleExecutor
    ReuseExecutor、BatchExecutor、
    Mybatis注解@Select、@Result*、@Insert、@Delete、@Update分析
  • ShardingSphere源码深入分析

    知识点 链接
    Sharding-jdbc核心流程与源码分析
    分布式事务&分布式主键源码详解
    Sql解析:SQLParsingEngine源码详解
    Sql路由:ParsingSQLRouter源码解析
    Sql改写:SQLRewriteEngine、SQLToken、SQLBuilder源码解析
    Sql执行:SQLExecuteCallback源码分析
    Sql归并:MergeEngine源码分析
  • Jedis/Redis源码深入分析

    知识点 链接
    Jedis与Redis工作原理通讯详解
    Jedis与Redis工作序列化协议详解
    Redis内存结构与数据结构模型
    RESP协议+、-、$、*序列化协议详解
  • Zookeeper源码深入分析

    知识点 链接
    Zookeeper核心流程与源码分析
    Zookeeper序列化协议详解
  • Java并发源码深入分析

    知识点 链接
    Java并发线程池源码详解
    Java、Map、List、Queue结构详解

项目实战

知识点 链接
Flasher-分布式缓存框架 基于Redis Cluster实现
QPS千万级别
Api-Gateway-网关系统 Java Rest API系统
源码双十一电商系统 基于Dubbo的大型分布式、高可用电商平台
可用于互联网电子商务系统

4、拓展技术

国内互联网开源框架

知识点 链接
阿里巴巴的Nacos-动态服务发现、配置和服务管理平台
阿里巴巴的Sentinel-高可用流量管理框架
百度的UidGenerator-分布式ID生成器
百度的Disconf分布式配置管理平台
阿里巴巴的Dubbo-Java高性能开源RPC框架
阿里巴巴的RocketMQ-Java分布式消息中间件
京东金融的Sharding-sphere-Java数据库中间件
国美的Flasher-分布式缓存框架
美团的分布式调度XXL-JOB

国内互联网大咖

知识点 链接
https://ke.qq.com/course/408007

后端技术

技术 名称 官网
Spring Framework 容器 http://projects.spring.io/spring-framework/
SpringMVC MVC框架 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc
Apache Shiro 安全框架 http://shiro.apache.org/
Spring session 分布式Session管理 http://projects.spring.io/spring-session/
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
MyBatis Generator 代码生成 http://www.mybatis.org/generator/index.html
PageHelper MyBatis物理分页插件 http://git.oschina.net/free/Mybatis_PageHelper
Druid 数据库连接池 https://github.com/alibaba/druid
FluentValidator 校验框架 https://github.com/neoremind/fluent-validator
Thymeleaf 模板引擎 http://www.thymeleaf.org/
Velocity 模板引擎 http://velocity.apache.org/
ZooKeeper 分布式协调服务 http://zookeeper.apache.org/
Dubbo 分布式服务框架 http://dubbo.io/
TBSchedule & elastic-job 分布式调度框架 https://github.com/dangdangdotcom/elastic-job
Redis 分布式缓存数据库 https://redis.io/
Solr & Elasticsearch 分布式全文搜索引擎 http://lucene.apache.org/solr/ https://www.elastic.co/
Quartz 作业调度框架 http://www.quartz-scheduler.org/
Ehcache 进程内缓存框架 http://www.ehcache.org/
ActiveMQ 消息队列 http://activemq.apache.org/
JStorm 实时流式计算框架 http://jstorm.io/
FastDFS 分布式文件系统 https://github.com/happyfish100/fastdfs
Log4J 日志组件 http://logging.apache.org/log4j/1.2/
Swagger2 接口测试框架 http://swagger.io/
sequence 分布式高效ID生产 http://git.oschina.net/yu120/sequence
AliOSS & Qiniu & QcloudCOS 云存储 https://www.aliyun.com/product/oss/  http://www.qiniu.com/ https://www.qcloud.com/product/cos
Protobuf & json 数据序列化 https://github.com/google/protobuf
Jenkins 持续集成工具 https://jenkins.io/index.html
Maven 项目构建管理 http://maven.apache.org/

前端技术

技术 名称 官网
jQuery 函式库 http://jquery.com/
Bootstrap 前端框架 http://getbootstrap.com/
Bootstrap-table Bootstrap数据表格 http://bootstrap-table.wenzhixin.net.cn/
Font-awesome 字体图标 http://fontawesome.io/
material-design-iconic-font 字体图标 https://github.com/zavoloklom/material-design-iconic-font
Waves 点击效果插件 https://github.com/fians/Waves
zTree 树插件 http://www.treejs.cn/v3/
Select2 选择框插件 https://github.com/select2/select2
jquery-confirm 弹出窗口插件 https://github.com/craftpip/jquery-confirm
jQuery EasyUI 基于jQuery的UI插件集合体 http://www.jeasyui.com
React 界面构建框架 https://github.com/facebook/react
Editor.md Markdown编辑器 https://github.com/pandao/editor.md
技术 名称 官网
subscribe gqz http://ganquanzhong.top
名称 类型 描述 地址
Eureka 源码 服务发现 https://github.com/Netflix/eureka
Feign 源码 声明式服务调用 https://github.com/OpenFeign/feign
Hystrix 源码 服务熔断 https://github.com/Netflix/Hystrix
spring-boot 源码 SpringBoot https://github.com/spring-projects/spring-boot
hutool 工具 国产工具大全 https://gitee.com/loolly/hutool
Mybatis-PageHelper 工具 Mybatis翻页插件 https://github.com/pagehelper/Mybatis-PageHelper
mybatis-plus 工具 mybatis 增强工具包 https://github.com/baomidou/mybatis-plus
guava 工具 谷歌工具包 https://github.com/google/guava
weixin-popular 工具 微信SDK JAVA (公众平台、开放平台、 商户平台、 服务商平台) https://github.com/liyiorg/weixin-popular
spring-boot-examples 面试/学习 Spring Boot 技术栈示例代码,快速简单上手教程。 https://github.com/ityouknow/spring-boot-examples
springboot-learning-example 面试/学习 spring boot 实践学习案例 https://github.com/JeffLi1993/springboot-learning-example
TheAlgorithms/Java 面试/学习 数据结构与算法 https://github.com/TheAlgorithms/Java
java-design-patterns 面试/学习 Java设计模式 https://github.com/iluwatar/java-design-patterns
interviews 面试/学习 软件工程技术面试个人指南 https://github.com/kdn251/interviews/blob/master/README-zh-cn.md
skill-map 面试/学习 程序员技能图谱 https://github.com/TeamStuQ/skill-map
Interview-Notebook 面试/学习 面试知识 https://github.com/CyC2018/Interview-Notebook
mapSource 面试/学习 Java思维导图 https://gitee.com/java-mindmap/mapSource
java_wiki 面试/学习 Java学习资料 https://gitee.com/log4j/java_wiki
Java-Interview 面试/学习 Java知识点 https://github.com/crossoverJie/Java-Interview
simplemall 框架 基于SpringCloud的微服务架构实战案例项目 https://github.com/backkoms/simplemall
paascloud-master 框架 spring cloud + vue 全家桶实战,模拟商城,完整的购物流程、后端运营平台,可以实现快速搭建企业级微服务项目 https://github.com/paascloud/paascloud-master
SuperBoot 框架 基于SpringCloud、SpringBoot敏捷开发框架 https://github.com/7040210/SuperBoot
xxl-job 框架 分布式任务调度平台 https://github.com/xuxueli/xxl-job
jeecg 框架 基于代码生成器的J2EE快速开发平台 https://github.com/zhangdaiscott/jeecg
jeesite 框架 Java EE(J2EE)快速开发框架 https://github.com/thinkgem/jeesite
jeegem 框架 SpringMVC+Spring+Mybatis+Dubbo+Zookeeper+Redis+ActiveMQ Spring boot,Spring cloud,Dubbo,Elasticsearch,Redis,ActiveMQ,Nginx, Mycat,Spring,MongoDB,ZeroMQ,Git,Nosql,Jvm,Mecached,Netty,Nio,Mina,Nutch, Webservice,Activiti,Shiro,Tomcat https://gitee.com/jeegem/jeegem
Cloud-Admin 框架 Cloud-Admin是国内首个基于Spring Cloud微服务化开发平台 https://gitee.com/minull/ace-security
MCMS 框架 Java快速开发平台!基于Spring、SpringMVC、Mybatis架构 https://gitee.com/mingSoft/MCMS
JFinal 框架 JFinal 是基于 Java 语言的极速 WEB + ORM 框架 https://gitee.com/jfinal/jfinal
iBase4J 框架 基于SpringBoot 2.0 https://gitee.com/iBase4J/iBase4J
zheng 框架 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构 https://gitee.com/shuzheng/zheng
spring-cloud-book 框架 使用Spring Cloud与Docker实战微服务 https://gitee.com/itmuch/spring-cloud-book
gitignore 工具 gitignore大全 https://github.com/github/gitignore
octotree 插件 github属性菜单 https://github.com/buunguyen/octotree

https://github.com/search?q=stars%3A>10000&type=Code

https://github.com/trending/java?since=monthly

Java开发技术的更多相关文章

  1. 【EatBook】-NO.2.EatBook.2.JavaArchitecture.1.001-《修炼Java开发技术在架构中体验设计模式和算法之美》-

    1.0.0 Summary Tittle:[EatBook]-NO.2.EatBook.2.JavaArchitecture.1.001-<修炼Java开发技术在架构中体验设计模式和算法之美&g ...

  2. Java开发技术大揭底——让你认知自己技术上的缺陷,成为架构师

    一.分布式架构体系 分布式怎么来的.传统的电信.银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正也不缺钱,IBM小型机,大型机,采购了堆 ...

  3. 2020 年最流行的 Java 开发技术

    不知不觉间,2020 年即将于十几天之后到来,作为技术圈中你,准备好迎接最新的变化了吗?在本文中,我们将以编程界最常用的编程语言 Java 为例,分享最为主流的技术与工具. 作者 | divyesh. ...

  4. 《修炼Java开发技术 在架构中体验设计模式和算法之美》 - 书摘精要

    (P7) 建议直接加入到软件公司中去,这样会学到很多实际的东西: 程序员最主要的发展方向是资深技术专家,无论是 Java..Net 还是数据库领域,都要首先成为专家,然后才可能继续发展为架构师: 增强 ...

  5. Java开发笔记(八十三)利用注解技术检查空指针

    注解属于比较高级的Java开发技术,前面介绍的内置注解专用于编译器检查代码,另外一些注解则由各大框架定义与调用,像Web开发常见的Spring框架.Mybatis框架,Android开发常见的Butt ...

  6. 阿里巴巴天猫超市团队招聘java开发工程师

    大家好,发个招聘信息:我是阿里巴巴集天猫超市开发团队的同学,我们部门目前在杭州招人,P6岗位,要求至少本科,熟悉java,spring等java开发技术,最好有互联网企业开发经验,感兴趣的可以通过我直 ...

  7. 学大数据一定要会Java开发吗?

    Java是目前使用广泛的编程语言之一,具有的众多特性,特别适合作为大数据应用的开发语言.Java语言功能强大和简单易用,不仅吸收了C++语言的各种优点还摒弃了C++里难以理解的多继承.指针等概念. J ...

  8. JAVA智能设备基于OpenGL的3D开发技术 之AABB碰撞检测算法论述

    摘要:无论是PC机的3D还是智能设备应用上,碰撞检测始终是程序开发的难点,甚至可以用碰撞检测作为衡量3D引擎是否完善的标准.现有许多3D碰撞检测算法,其中AABB碰撞检测是一种卓有成效而又经典的检测算 ...

  9. 作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?

    其实这个问题很简单,我用最简单的语言给大家描述一下,学习一样东西就要了解这样东西学完了要干什么事情,有什么作用.然后就是应该学习哪些必要的内容,该如何运用得当的方法进行有效率的学习不至于自己摸不着头脑 ...

随机推荐

  1. Kakfa集群(2.11-0.10.1.0)版本滚动升级方案

    Kafka集群版本升级(2.11-0.10.1.0)升级(2.11-0.10.2.2) 官网升级说明: 一.系统环境Zookeeper集群:172.16.2.10172.16.2.11172.16.2 ...

  2. shell脚本监测进程并重启

    本人实例: #!/bin/bash ps -ef | grep elastic | grep -v grepif [ $? -ne 0 ]thenecho "start process... ...

  3. webstrom 2019 注册码(可用 2019年10月14日08:59:18)

    K6IXATEF43-eyJsaWNlbnNlSWQiOiJLNklYQVRFRjQzIiwibGljZW5zZWVOYW1lIjoi5o6I5p2D5Luj55CG5ZWGOiBodHRwOi8va ...

  4. ArchLinux下electronssr无法启动的解决措施

    ArchLinux下electronssr无法启动的解决措施 今天重新配置electron-ssr时发现闪退(无法启动). 于是开始查错 首先是找到了目录位置 /usr/electron-ssr/el ...

  5. 简单的leetcode题

    简单的leetcode题 环绕字符串中唯一的子字符串 把字符串 s 看作是\("abcdefghijklmnopqrstuvwxyz"\)的无限环绕字符串,所以 s 看起来是这样的 ...

  6. Selenium实战(七)——自动发送邮件

    SMPT(Simple Mail Transfer Protocol)简单邮件传输协议,是一组由源地址到目的地址传送邮件的规则,可以控制信件的中转方式.Python的smptlib模块提供了简单的AP ...

  7. 【笔记】机器学习 - 李宏毅 - 1 - Introduction & next step

    Machine Learning == Looking for a Function AI过程的解释:用户输入信息,计算机经过处理,输出反馈信息(输入输出信息的形式可以是文字.语音.图像等). 因为从 ...

  8. JSP数据交互2

    application对象 application对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等. 运用实例:网页访问计数器. < ...

  9. STL-list 链表

    #include <iostream> #include <list> using namespace std; int main() { // list可以在头部和尾部插入和 ...

  10. 用友UAP NC 开发环境抛出"JDK默认编辑器找不到"

    此节点是升级65之前开发的,已经很久不使用,今天在开发环境使用,点查询抛出此异常. 最后问了人解决方法,就是往JRE系统库加入对应的jar包