# z-Java-Notes **Repository Path**: yzengchn/z-Java-Notes ## Basic Information - **Project Name**: z-Java-Notes - **Description**: Java后端工程师的学习技术栈 https://loveincode.github.io/Java-Notes - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-03-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java-Notes
## 介绍 ### 项目介绍 Java后端工程师的学习技术栈 ### 学习交流 微 信: 9088584 , 验证暗号:Java后端学习 loveincode EMAIL: huonevan@gmail.com [人气很高的链接库](https://github.com/loveincode/Java-Notes/blob/master/%E6%94%B6%E8%97%8F/%E5%A5%BD%E9%93%BE%E6%8E%A5.md) * [计算机基础相关笔记](https://github.com/loveincode/Java-Notes/tree/master/000%20-%201%20Computer%20Basics) `操作系统` , `编译原理` , `计算机网络` , `互联网协议`... * [常用数据结构与算法](https://github.com/loveincode/Java-Notes/tree/master/000%20-%202%20Data%20%26%20Algorithm) [Java 实现 数据结构 与 排序算法](https://github.com/loveincode/Data-structures-and-algorithms) * [常用设计模式](https://github.com/loveincode/Java-Notes/tree/master/000%20-%203%20Design%20Patterns) `单例模式` , `工厂模式` , `装饰者模式` , `代理模式` ... * [Java基础核心](https://github.com/loveincode/Java-Notes/tree/master/01%20-%20JavaSE) `JVM` , `集合` , `类型` ,`关键字`... * [Java高级特性](https://github.com/loveincode/Java-Notes/tree/master/02%20-%20Java-High-Ranking) `多线程` * [框架](https://github.com/loveincode/Java-Notes/tree/master/03%20-%20Framework) `Spring` , `Mybatis` , `SpringBoot` , `SpringMVC` ... * [中间件](https://github.com/loveincode/Java-Notes/tree/master/04%20-%20Middleware) `RPC` , `MQ` , `elasticsearch` ... * [操作系统linux](https://github.com/loveincode/Java-Notes/tree/master/05%20-%20OS%20(linux)) * [数据库](https://github.com/loveincode/Java-Notes/tree/master/06%20-%20DB%20(mysql)) `Mysql` , `MongoDB` , `HBase` ... * [优化](https://github.com/loveincode/Java-Notes/tree/master/07%20-%20%E4%BC%98%E5%8C%96) * [常用工具](https://github.com/loveincode/Java-Notes/tree/master/08%20-%20Utils) `git` , `svn` , `效率` , `aliyun` , `mac` , `windows` * [职业面经](https://github.com/loveincode/Java-Notes/tree/master/09%20-%20J) * [读书笔记](https://github.com/loveincode/Java-Notes/tree/master/10%20-%20Reading%20Notes) `Effective Java` , `HTTP权威指南` , `Java多线程编程核心技术` , `Java并发编程实战` , `Java虚拟机规范(Java SE 7版)` , `深入理解java虚拟机` ... * [服务器](https://github.com/loveincode/Java-Notes/tree/master/11%20-%20Server) `tomcat` , `nginx` * [实践中遇到的问题](https://github.com/loveincode/Java-Notes/tree/master/12%20-%20Practice%20(problems%20encountered%20during%20development)) * [前端(JS)相关](https://github.com/loveincode/Java-Notes/tree/master/14%20-%20Front-end) * [分布式](https://github.com/loveincode/Java-Notes/tree/master/15%20-%20Distributed) `负载均衡` , `分布式锁` ... * [软件工程](https://github.com/loveincode/Java-Notes/tree/master/16%20-%20Software%20Engineering) * [脚本语言](https://github.com/loveincode/Java-Notes/tree/master/17%20-%20Scripting%20language) `lua` , `Ruby` ... * [常用代码](https://github.com/loveincode/Java-Notes/tree/master/18%20-%20Common%20code) * [规范](https://github.com/loveincode/Java-Notes/tree/master/19%20-%20Standard) `阿里巴巴Java开发手册终极版v1.3.0.pdf` ... * [常用命令](https://github.com/loveincode/Java-Notes/tree/master/20%20-%20Commands(Commonly%20used)%20%26%20Vocabulary) RPC 远程调用 TDD 测试驱动开发(Test-Driven Development)是敏捷开发中的一项核心实践和技术,也是一种设计方法论。 TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。 DRY DRY是“Don't Repeat Yourself”的缩写。不要重复自己 意思是说,在一个设计里,对于任何东西,都应该有且只有一个表示,其它的地方都应该引用这一处。 这样需要改动的时候,只需调整这一处,所有的地方就都变更过来了。 单一职责 单一职责原则(SRP:Single responsibility principle)又称单一功能原则,它规定一个类应该只有一个发生变化的原因。该原则由罗伯特·C·马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中给出的。马丁表示此原则是基于汤姆·狄马克(Tom DeMarco)和Meilir Page-Jones的著作中的内聚性原则发展出的。 所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。 开闭原则 开闭原则(OCP)是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。对于扩展是开放的,对于修改是关闭的,这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。对模块行为进行扩展时,不必改动模块的源代码或者二进制代码。模块的二进制可执行版本,无论是可链接的库、DLL或者.EXE文件,都无需改动。 SOA Service-Oriented Architecture 面向服务的架构