- 博客(21)
- 收藏
- 关注
原创 设计模式七大原则
常用七大原则有:1)、单一职责原则2)、接口隔离原则3)、依赖倒转原则4)、里氏替换原则5)、开闭原则ocp6)、迪米特法则7)、合成复用原则设计模式的目的:1)、代码重用性2)、可读性3)、可扩展性4)、可靠性5)、高内聚、低耦合单一职责原则:降低类的复杂度,一个类通常只负责一项职责。提高类的可读性、可维护性降低变更带来的风险只有类中的方法足够简单、足够少时,可以使用方法级别的单一职责,即使用不同的方法负责不同的职责使用多个类化解分支,少写if-else,降低耦合度
2021-05-23 01:26:30
500
原创 RocketMQ
阿里巴巴开源的消息中间件框架,后捐献给apache基金会RocketMQ特点:1.能够保证严格的消息顺序2.提供丰富的消息拉取模式3.高效的订阅者水平扩展能力4.实时的消息订阅机制5.支持事务消息6.亿级消息堆积能力RocketMQ架构:Name ServerBroker MasterProducerComsumerTopicMessage QueueBrokerName来决定主丛节点是否为一组,BrokerId为0表示这个服务是主节点 非0表示从节点Broker主节点负
2021-05-23 01:25:41
534
原创 Elasticsearch
开源的高扩展的分布式全文检索引擎响应时间比mysql短精确分词、第三方分词ik相关性评分倒排索引格式ES类比MySQL:索引 – 数据库类型 – 数据库表文档 – 列属性 – 字段mapping – 表结构text:支持分词 不支持聚合keyword:不支持分词 支持聚合节点:_index(文件存储的地方)_type(文件代表的对象的类)_id(文档的唯一标识)三种开启ElasticSearch客户端的方式:1)、ElasticSearch-head插件2)、使用Rest
2021-05-23 01:20:47
273
原创 SpringCloud
SpringCloud是什么?分布式结构微服务的一站式解决方案微服务是什么?将一个应用拆分成很多个细小的模块,每个模块部署一个服务器,一个服务只做一件事,各个服务器之间互相独立,最大程度降低服务之间的耦合,应用程序组成的所有服务叫微服务注册中心Nacos是阿里巴巴开源研发的服务注册中心及配置中心于一体的管理平台四大功能:服务发现与健康检查动态配置管理动态DNS服务服务和元数据管理nacos注册中心:安装完Nacos之后,在bin中startup.cmd启动Nacos服务器后台地址
2021-05-23 01:14:36
269
2
原创 SpringBoot
什么是SpringBoot?SpringBoot是简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案微服务架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行沟通每一个功能元素最终都是一个可独立替换和独立升级的软件单元;SpringBoot入门案例1.创建maven工程并导入springboot相关的依赖<parent> <groupId>org.springframework
2021-05-23 01:07:16
145
原创 Git
Git的作用:源代码的管理方便多人协同开发方便版本控制Git是目前世界上最先进的分布式版本控制系统Git是分布式管理Git会在根目录创建一个隐藏文件夹.git作为本地仓库SVN只有一个仓库Git有本地仓库和远程仓库Git执行流程:远程仓库->本地仓库->客户端(IDEA)->本地仓库->远程仓库版本库:.git隐藏文件夹工作目录:包含.git文件夹的目录暂存区:.git中的index文件就是暂存区Git常用命令:查看git配置信息git config
2021-05-22 02:26:56
99
原创 Docker
什么是Docker?Docker就是一种虚拟化技术,将镜像运行在容器中,一次配置到处使用Docker的作用?只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。Docker的特点:一致的运行环境更快速的启动时间隔离性(沙箱机制)弹性伸缩,快速扩展迁移方便持续交付和部署Docker的应用场景:web应用的自动化打包和发布自动化测试和持续集成、发布在服务型环境中部署和调正数据库或其他的后台应用使用Docker可以实现开发人员的开发环境、测试人员的测试环境、运维人员的
2021-05-22 02:25:34
89
原创 Maven
Maven是一个自动化构建工具Maven可以帮助我们添加jar包每个jar包只在本地仓库保存一份jar包间的依赖关系:Maven可以替我们自动给当前jar包所依赖的其他jar包全部导入Maven可以处理jar包之间的冲突最短路径者优先 、先声明者优先获取第三方jar包:Maven自动从远程仓库进行下载,并同时下载这个jar包所依赖的其他jar包下载至本地仓库方便下次再使用将项目拆分成多个工程模块Web模块–>组件模块–>公共模块–>环境模块Maven实现项目的分布式
2021-05-22 02:24:38
150
原创 Redis
利用缓存提高访问数据库的效率NOSQL 解决服务器CPU内存压力客户端-- 负载均衡-- tomcat集群session保存在缓存数据库:完全在内存中,速度快,数据结构简单session复制:每个tomcat都放复制一份 缺点是session数据冗余,节点越多浪费越大缓存数据库:减少io的读操作NOSQL: 非关系型数据库对数据高并发的读写海量数据的读写对数据高可扩展性的Redis是一个开源的key-value存储系统支持存储数据类型:string、list、set、zset、ha
2021-05-22 02:23:56
167
原创 Linux
开源、稳定、漏洞少是一套免费使用和自由传播的类Unix操作系统Linux系统安装步骤:安装VM创建虚拟机安装cent OS虚拟网卡名: ens33安装Xshell 6:远程命令控制Linux安装Xftp:远程传输文件/bin 命令文件/sbin 超级管理员使用的命令文件/home 存放普通用户的文件/root 存放超级管理员的文件/etc 所有系统管理所需要的配置文件和子目录/usr 用户的很多应用程序和文件存放/book Linux核心文件 连接文件 镜像文件,自己的安装别放
2021-05-22 02:19:51
228
原创 SpringMVC
SpringMVC是针对JavaWeb的开源轻量级框架Model(模型):POJO类组成(各种组件和bean)View(视图):负责渲染模型的数据(jsp,html)Controller(控制器):负责处理用户请求并构建适当的模型(控制器层)DispatcherServlet 前端控制器(核心)SpringMVC环境搭建1.导包2.配置XMLWeb.xml:DispatcherServletSpringmvc.xml:扫描注解视图解析器:InternalResourceViewRes
2021-05-22 02:19:00
131
原创 Spring
Spring是一个开源的,简化web应用开发的框架Spring容器管理控制层,Bean,Dao组件,Service组件IOC 控制反转AOP 面向切面编程依赖注入Spring容器 生命周期组件化 xml和java注解一站式模块:beans context core expressionIOC对象创建使用new关键字(通过java程序创建对象)但是程序中添加了spring框架 (IOC控制反转) 把对象的创建任务交给spring容器1.创建spring容器(读取application
2021-05-22 02:17:49
325
原创 Mybatis
半自动化的持久性框架jdbc–>sql代码耦合度太高简化jdbc代码,降低耦合度,自己编写sql语句 :Mybatis实体类对应数据库字段(别名)Dao–>Mapper使用Mybatis步骤:1.jar包导入2.核心配置文件 mybatis-config.xml 数据库信息 driver url user pwd3.SQL配置文件 userMapper 接口的映射文件4.测试类namespace 命名空间 接口的全类名select id:唯一标识,代表方法名 resultT
2021-05-22 02:08:32
1363
原创 JavaWeb
XMLXML: eXtensible Markup Language(可扩展标记语言) --> JSON字符串语法和HTML相似(都是通过标签的形式)XML的设计宗旨是为了传输数据,而非显示数据XML的用途a.配置文件b.数据的传输c.数据的存储XML的语法语法规则XML声明要么不写,要写就写在第一行,并且前面没有任何其他字符只能有一个根标签,所有的其他标签都必须声明在根标签内部标签必须正确结束,不能交叉嵌套严格区分大小写java对XML的操作(增删改查)1.解析方式
2021-05-22 02:06:57
1157
原创 Mysql
基本语法查看所有的库 SHOW DATABASES;选库 USE myemployees;查看所有的表 SHOW TABLES;创建库 CREATE DATABASE employees;创建库的时候指定编码集–在该库中创建的所有表的默认编码集就是库的编码集 CREATE DATABASE employees1 CHARACTER SET ‘uft8’;查看库的信息 DSC 表名查看创建库的信息 SHOW CREATE DATABASE employess1;查看当前MySQL版本 SELE
2021-05-22 01:59:33
1582
1
原创 JUC
java util ConCurrent线程的上下文切换:线程切换的时候,需要将程序的状态进行保存线程和进程:进程是某一个功能的应用程序运行的状态线程是进程里的,一个进程可以有多个线程,线程比进程要小,执行在进程里执行并发和并行并发:同一时间段里,不同的线程访问同一个资源,会有线程资源抢占的问题并行:同一时刻,不同的进程访问同一个的资源,不会有资源抢占的问题serial和current当程序执行时间较短时,那么单线程的执行效率较高当程序执行时间较长时,那么并发的执行效率较高Synchr
2021-05-21 23:23:04
228
原创 JVM
JVM内存模型JVM是运行在操作系统之上的,只有方法区和堆是线程共享的,需要gc垃圾回收器进行清理,其他则是线程私有的类加载器:作用是将class文件加载到JVM内存中1.BootstrapClassLoad(c++语言编写) 启动类加载器主要是加载一些java底层自带的一些个核心类2.ExtensionClassLoad(java语言编写) 扩展类加载器3.AppClassLoad(java语言编写) 应用程序加载器主要是加载一些个自己创建的类双亲委派机制:在进行加载之前,会先
2021-05-21 23:12:04
128
原创 Java反射
反射是什么?反射是允许程序运行时通过Reflection的API获取到类的全部信息,并能操作对象的属性及方法的机制,在框架和设计模式中大量使用;核心:Class对象,一个类只能有一个Class对象,它包含了类的完整结构信息可以通过外部文件配置,在不修改源码的情况下来控制程序,符合设计模式中的opc原则,即开闭原则,不修改代码扩展功能类加载阶段1.通过javac命令将.java文件编译成.class文件2.运行.class文件,将会执行类加载,分为三个阶段:加载、连接、初始化,其中连接又分为了验证
2021-05-21 12:20:53
96
原创 Java集合
ListList接口的特点有序(插入顺序和遍历顺序一致),且允许重复List接口中的元素有索引(下标)ArrayList底层使用数组实现list.add(1,“abc”);//add方法使用下标插入固定位置的方法,这个下标不能超过size()+1list.remove(1);//如果集合中存储的是整数元素,那么remove添加的参数优先是索引,所以这个1是移除第二个位置上的元素list.remove(new Integer(1));//如果想删除整数对象元素,那么需要创建封装类对象,封装类对象会
2021-05-21 12:05:45
175
原创 Java面向对象
封装基础类型传递参数时,方法内部对实参的修改不会影响原实参变量,引用类型传参,在方法内部对实参的修改,会影响原实参对象,本类的方法调用本类的其他方法不需要创建对象,直接调用方法名即可基础类型传递参数时,方法内部对实参的修改不会影响原实参变量,引用类型传参,在方法内部对实参的修改,会影响原实参对象,方法的内部不允许声明同名的方法,方法的同名是方法名和参数组同时相同,方法重载首先发生在同一个类里,方法名相同,参数组不同(参数类型不一致,参数个数不一致,参数顺序不一致)调用重载方法时根据传递参数的特性,类决
2021-05-21 11:33:21
110
原创 JavaSE语法
JavaSE语法一个.java文件中可以写多个class类,但只有一个class可以被public修饰。多个class只能有一个public,那么这个public修饰的类类名必须和文件名同名(大小写敏感)。一个.java文件写多个class,那么编译的时候有多少个class就生成多少个.class文件。变量必须先声明再使用。声明的同时为变量赋值。 变量的初值。一个没有值的变量是不能使用的。java语言中一共有八种基础数据类型,int 整型 四个字节32位 ,long 长整型 八个字节64位,boole
2021-05-02 13:48:50
199
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅