学习java的常用网址及基础知识

作者:终端研发部
链接:https://www.zhihu.com/question/36673373/answer/2086199349
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

分享一个相关的学习脑图:

 

那么做一个Java开发,或者是高级Java开发、架构师,到底要会哪些东西,哪些原理,先简单做一个总结,也希望能监督自己按这个路线一直的学习和总结下去。

基础知识:

Java反射:Field、Type

Java代理:proxy、cglib

Java线程:Thread、Runnable、ExecutorService、Callable、Future、ThreadPoolExecutor

Java数据结构:HashMap ArrayList LinkedList HashSet BlockingQueue ConcurrentHashMap TreeMap

JVM:运行时数据区、堆设置、收集器设置、回收日志分析

Lambda表达式:stream、filter、collect、map、forEach、

并发与锁:synchronized、ReentrantLock、ReadWriteLock、Atomic;

通讯协议:HTTP、TCP/IP、NIO、BIO、WebSocket

数据结构:表、栈、队列、二叉树、AVL树、BTree、黑红数、散列、图。

常用算法:冒泡排序,选择排序,插入排序、堆排序,归并排序、快速排序;二分查找;布隆过滤器;

设计模式:工厂模式、观察者模式、单例模式、代理模式、命令模式、策略模式

Web容器:tomcat、jboss、jetty

HTTP服务:httpd、nginx、openResty、kong

工具包:common、poi、gson、guava

构建工具:maven、gradle

通讯框架:netty、mina

序列化:hessian、protostuff、json

服务发现:zookeeper、etcd、eureka、consul

数据库:mysql、mongoDB、redis、mycat、berkeleyDB

连接池:dbcp、c3o0、druid、jdbc、http

大数据:spark、storm、hadoop、hdfs

容器:docker、k8s

监控:zabbix、prometheus

Spring:IOC、AOP、事务处理

SpringMVC:DispatcherServlet、HandlerMapping、HandlerAdapter、Controller、Intercepter、View

SpringBoot:集成web、hibernate、mybatis、redis、docker下使用

SpringCloud:Netfix、Config、Bus、Eureka、Consul、Stream、Task、Gateway

Hibernate:Configuration、SessionFactory、乐观锁、二级缓存、高并发、多数据源

Mybatis:Configuration、SqlSession、Executor 、TypeHandler、动态sql、二级缓存

Netty:nio、拆念包、future、pipeline

Guava:限流算法、布隆过滤器、JVM缓存

Hystrix:隔离、熔断、降级

消息队列:rabbitMQ、rocketMQ、kafka

RPC框架:dubbo、motan、thrift、grpc

搜索隐形:Lucene、Elasticsearch、Solr

数据库:

Mysql:主备、读写分、横向纵向拆分、调优、语法、索引、优化

Redis:主备、读写分离、持久化、命中和过期

MogoDB:集合、文档、文件、索引、聚合函数、分片

消息队列:

概念:topic、message、queue、producer、consumer、broker

消息类型:顺序消息、定时消息、延迟消息、事务消息

消息回溯、消息堆积、消息拉取、消息签收

高并发:

服务拆分:微服务化、分布式事务、数据库水平垂直拆分

服务治理:zookeeper、rpc

消息队列:异步处理、最终一致性

缓存技术:JVM缓存、redis缓存、nginx缓存、CDN缓存、浏览器缓存。缓存击穿、缓存雪崩、缓存淘汰

高可用:

负载均衡:算法、动静分离、切换、检测

超时重试:超时时间、重试机制和策略

限流:算法、容器、nginx、防止抖动

隔离:线程隔离、进程隔离、机房隔离、读写隔离、动静隔离,采用hystrix、servlet3做隔离熔断

降级:自动降级、人工降级,控制中心,采用hystrix手段

监控:进程监控、线程监控、机器监控,报警

问题解决

1.如何解决单点故障;(lvs、F5、A10、Zookeep、MQ)

2.如何保证数据安全性;(热备、冷备、异地多活)

3.如何解决检索难题;(数据库代理中间件:mysql-proxy、Cobar、MaxScale等;)

4.如何解决统计分析问题;(离线、近实时)

作者丨黎明你好
链接:

如何学习技术,首先作为程序员不得不知道的几个网站:

1、国内程序员博客csdn: https://blog.csdn.net/

2、掘金: https://juejin.cn

3、博客园:https://www.cnblogs.com/codeGoogler

4、开原中国:https://my.oschina.net https://my.oschina.net

5、简书:https://www.jianshu.com

6、慕课网: https://www.imooc.com

7、程序员头条:https://toutiao.io/

8、Github:

9、Stack Overflow:

10、程序员知乎:https://www.zhihu.com

11、leetcode:力扣

12、w3school:

技术github学习地址:

程序员编程书籍:https://github.com/codeGoogler/

关于书籍的话:

虽然我之前写了很多相关的书籍的帖子:java有什么必看的书?

但依然会大家 推荐几本不错的书籍

《代码整洁之道》

适合对象:中级、高级

介绍:讲述了一系列行之有效的整洁代码操作实践。软件工程的理想编码是无数人编出来的代码像一个人写的,这本书当作规范就不错。

《RockerMq技术内幕》

适合对象:中级、高级

Java、分布式服务架构、中间件等多个领域的技术专家,擅长高并发编程、Netty网络编程、RocketMQ等技术,国内知名开源数据库中间件MyCAT的志愿者和技术顾问。目前担任上海优速物流的技术专家和经营支撑部门的架构师。对RocketMQ有非常深入的研究,是RocketMQ社区的布道师,不仅实践经验丰富,而且对其源代码有深入且系统的研究。

1.Head First Java

《重构:改善既有代码的设计》

适合对象:中级、高级

介绍:清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以及改善。大师的杰作,让你明白软件是一步步改进的,不是一蹴而就的

《深入理解Java虚拟机》

适合对象: 高级

《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。

最后给你的建议,经常关注我的大家都知道,也是我以前帖子里面经常提到的:

1、找对方式方法,避免浪费时间
2、列出学习规划,一步一步的去实现它
3、可以找一个面向架构师的课程,给你提供一些帮助
4、一定要有计划有目的的去学习
5、多动手,尽量不依赖视频教程
6、多思考和总结 ,做到举一反三

posted @ 2021-08-28 14:55  小寒2020  阅读(301)  评论(0编辑  收藏  举报