这份Java高级知识点笔记涉及到Java基础、容器、并发、JVM、计算机网络知识、HTTPS中的TLS、从认识操作系统开始、初探Linux、Linux文件系统概览、Linux基本命令、数据结构(布隆过滤器)、算法、MySQL、Redis、RestFul API、常用框架、认证授权(WT、SsO)分布式、大型网站架构、微服务、Git、Docker、程序员面试指南、程序员简历该怎么写、如何准备面试、Java学习路线和方法推荐!
一、Java
(一).基础
(二).容器
(三).并发
池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。
线程池提供了一种限制和管理资源(包括执行一 个任务)。每个线程池还维护一 些基本统计信息,例如已完成任务的数量。
使用线程池的好处:
- 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
- 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
- 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配, 调优和监控。
(四).JVM
对于Java程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为每一个new操作去写对应的delete/free操作,不容易出现内存泄漏和内存溢出问题。正是因为Java程序员把内存控制权利交给Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。
二、网络
(一).计算机网络知识
(二).HTTPS中的TLS
三、Linux
(一)从认识操作系统开始
(二)初探Linux
(三)Linux文件系统概览
(四)Linux基本命令
四、数据结构与算法
(一)数据结构(布隆过滤器)
(二)算法
五、数据库
(一)MySQL
(二)Redis
Redis优点:
- 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作。
- 支持丰富的数据类型- Redis支持开发人员常用的大多数数据类型,例如列表,集合,排序集和散列等等。这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决。
- 操作具有原子性-所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Redis 服务器能接收更新的值。
- 多实用工具- Redis是一个多实用工具,可用于多种用例,如:缓存,消息队列(Redis本地支持发布/订阅),应用程序中的任何短期数据,例如,web应用程序中的会话,网页命中计数等。
六、系统设计
(一)RestFul API
(二)常用框架
(三)认证授权(WT. SSO)
(四)分布式
本文主要是简单的介绍了三个常见的概念:分布式系统设计理念、CAP定理 .BASE理论,关于分布式系统的还有很多很多东西。
(五)大型网站架构
(六)微服务
七、必会工具
(一)Git
(二)Docker