- 博客(81)
- 收藏
- 关注
原创 认识JUC
ConcurrentHashMap 同步容器类是Java 5 增加的一个线程安全的哈希表。对 与多线程的操作,介于 HashMap 与 Hashtable 之间。内部采用“锁分段” 机制替代 Hashtable 的独占锁。进而提高性能。CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作 之前,它允许一个或多个线程一直等待。Callable 接口类似于 Runnable,两者都是为那些其实例可 能被另一个线程执行的类设计的。
2022-11-22 23:22:18
307
原创 认识NIO
方法介绍从Channel中读取数据到ByteBuffer将Channel中的数据“分散”到ByteBuffer[]将ByteBuffer中的数据写入到Channel返回次通道的文件位置设置次通道的文件位置返回此通道的文件的当前大小将此通道的文件截取为给定大小强制将所有对此通道的文件更新写入到存储设备中通道是一个连接 I/O 服务导管并提供与该服务交互的方法。
2022-11-22 23:20:06
444
原创 Linux08——面试题篇
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-905Fnf00-1669130117982)(https://gitee.com/jerrygrj/img/raw/master/img/image-20210819143617290.png)]
2022-11-22 23:16:35
281
原创 Linux07——高级篇
文章目录Linux07——高级篇一、日志管理1. 基本介绍2. 系统常用的日志2.1 日志位置2.2 系统常用的日志3. 日志管理服务`rsyslogd`1. 查询rsyslogd服务是否启动2. 查询rsyslogd服务的自启动状态3. 配置文件:/etc/rsyslog.conf3.1 日志类型3.2 日志级别4. 日志文件内容详细介绍5. 自定义日志保存起来4. 日志轮替4.1 参数说明4.2 把自己的日志加入日志轮替4.3 案例5. 查看内存日志二、定制自己的Linux系统1. 基本介绍2. 基本原
2021-08-17 23:03:59
898
原创 Linux06——ubuntu安装配置篇
文章目录Linux06——ubuntu安装配置篇一、安装二、基础操作1. 设置Ubuntu支持中文2. root用户更新Ubuntu软件下载地址4. Ubuntu软件操作的相关命令三、远程登录1. SSH介绍2. ubuntu默认没有安装SSHD服务,需要手动查看安装Linux06——ubuntu安装配置篇资料:百度网盘一、安装见CentOS二、基础操作1. 设置Ubuntu支持中文单继Language Support菜单点击Install/Remove Lanugage找到chine
2021-08-17 22:59:32
156
原创 Linux05——常用环境配置安装篇
文章目录Linux-3(JDK/Tomcat/Idea/MySQL)搭建/可视化管理(webmin/bt)一、安装配置JDK8二、安装tomcat三、安装Idea2020四、安装MySQL五、webmin1. 基本介绍2. 安装配置webmin2.1 方式一2.2 方式二3. 使用步骤3.1 重置密码3.2 修改webmin服务的端口号3.3 重启webmin3.4 防火墙放开6666/10000端口,根据前面设置的来3.5 登录webmin六、bt(宝塔)1. 基本介绍2. 安装和使用3. 忘记密码Li
2021-08-17 22:56:22
143
原创 Linux04——Shell篇
文章目录Linux04——Shell一、定义二、规范1. 编写2. 执行2.1 方式一:赋予脚本执行权限2.2 方式二:不用赋予脚本执行权限三、变量1. Shell变量的介绍2. Shell变量的定义3. 设置环境变量3.1 基本语法4. Shell脚本的多行注释5. 位置参数四、运算符五、条件判断&流程控制1. if1.1 语法1.2 案例2. case2.1 语法2.2 案例3. for循环3.1 基本语法3.2 案例4. while循环4.1 语法4.2 案例六、read读取控制台输入1. 语
2021-08-17 22:53:44
110
原创 Linux03——基础篇2
Linux-2三、Linux磁盘分区、挂载1. 硬盘说明Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘对于IDE硬盘,驱动器标识符为"hdx~",其中"hd"表明分区所在设备的类型,这里是指IDE硬盘了。"×"为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),~”"代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区, hdb2表示为第二个IDE硬盘上的第二个主分区或扩
2021-08-17 22:49:32
164
原创 Linux02——基础篇1
文章目录二、Linux02——基础篇1. 目录结构2. 远程登录Linux服务器2.1 XShell2.1.1 演示2.2 XFTP(主要用来传资源,文件可视化)3. Vi 和 Vim编辑器3.1 三种模式3.2 快捷键3.2.1 复制-粘贴-删除-撤销-定位首行末行-定位指定行3.2.2 查找字符-设置行号4. 开机、重启、用户登录注销操作5. 用户/用户组管理 组管理和权限管理5.1 用户管理5.1.1 添加用户5.1.2 修改密码5.1.3 删除用户5.1.4 查询用户5.1.5 切换用户5.2 用户
2021-08-17 22:43:30
191
原创 Linux01——安装与设置篇
文章目录Linux01——安装与设置篇一、安装与设置篇1. Linux介绍2. Linux的安装2.1 VM的下载和安装2.1.1 安装注意2.2 Centos下载和安装2.2.1 安装步骤2.3 虚拟机的快照功能-快速回退到某个快照2.4 虚拟机的克隆功能2.4.1 方式一:直接拷贝一份安装好的虚拟机文件2.4.2 方式二:使用vmware的克隆操作2.5 安装vmtools的步骤2.6 设置共享文件夹Linux01——安装与设置篇一、安装与设置篇1. Linux介绍Linux之父Lin
2021-08-17 22:38:32
137
原创 MySQL
文章目录数据库一、MySQL入门一、安装1. 环境搭建2. 安装失败解决办法二、MySql的基础命令1. 服务启动/停止2. 登录MySQL^_^名称插曲及后续使用的文件二、DQL语言(select)1. 基本语法1.1 例子2.起别名2.去重(distinct)3.表达式4. `where`条件语句4.1 例子5. 比较操作符5.1 `like`5.2 `in`5.3 `NULL`空5.4 `between`5.5 `is null`6. 排序查询6.1 注意6.2 例子6.3 练习7. 连接查询(`JO
2021-07-25 20:51:09
623
原创 Maven
文章目录MavenMaven基础一、Maven概述1.1 Maven的概念1.2 作用1.3 Maven概念模型1.4 Maven仓库二、Maven的安装2.1 下载Maven2.2 配置环境变量2.3 path下创建2.4 检验配置是否成功2.5 创建Java工程-`-DarchetypeCatalog=local`(非必须)三、Maven修改仓库目录路径四、Maven常用工具3.1 clean:请理3.2 compile:编译3.3 test:单元测试3.4 package:打包3.5 install:
2021-07-20 11:04:48
109
原创 MyBatis
文章目录MyBatis一、简介1. 什么是Mybatis2. 持久化3. 持久层4.为什么需要Mybatis5.Mybatis的优点二、初识MyBatis1. 搭建数据库(随便建一个)2. pom.xml导入核心包3. 创建xml文件4. 查看帮助文档书写5. 创建工具类(MybatisUtils)6. 创建一个User类7. 创建userDao接口8. 创建mapper.xml9. 测试类三、CRUD操作1. namespace2. select2.1 select标签:查询语句2.2 使用情景与方式2.
2021-07-03 16:58:31
368
原创 Word添加页码操作
文章目录Word添加页码操作举个栗子一、基础操作1. 确定从哪里开始是第一页2. 插入分隔符厚后,检查是否有第1节,第二节分隔(双击页脚,就能显示出来),如下3.取消链接到前一节4. 就在那也插入页码就可以生成页码了5. 双击页脚,按`Alt+F9`6. 在上图中的`/`后面按`Ctrl+F9`,会出现一对中括号,然后输入一个等号7. 在把后面的整体复制到里面8. 按'Alt+F9'恢复后,就成功了二、高级操作(自定义格式)1. 写个模板2. 引入编号3.完成,效果展示提示:这里对文章进行总结:例如:以
2021-06-14 21:57:36
951
原创 行为型模式-11解释器模式
文章目录十一、解释器模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`6. `使用场景`十一、解释器模式1. 定义给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。2. 结构抽象表达式角色:定义解释器的接口,约定解释器的解释操作,主要包含解释方法 interpret()。终结符表达式角色:是抽象表达式的子类,用来实现文法中与终结 符相关的操作,文法中的每一个终结符都有一个具体终结表达式与之相对应。非终结符表达式角色:也是抽
2021-05-30 18:04:51
152
原创 行为型模式-10备忘录模式
文章目录十、备忘录模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`6. `使用场景`十、备忘录模式1. 定义又叫快照模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态, 以便以后当需要时能将该对象恢复到原先保存的状态。2. 结构发起人(Originator)角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据 的功能,实现其他业务功能,它可以访问备忘录里的所有信息。备忘录(Memento)角色:负责存储发起人的内部状态,
2021-05-30 18:02:25
105
原创 行为型模式-09访问者模式
文章目录九、访问者模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`6. `使用场景`九、访问者模式1. 定义封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这 些元素的新的操作。2. 结构抽象访问者(Visitor)角色:定义了对每一个元素 (Element) 访问的行为,它的参数就是可 以访问的元素,它的方法个数理论上来讲与元素类个数(Element的实现类个数)是一样的,从 这点不难看出,访问者模式要求元素类的个数不能改
2021-05-30 17:58:59
71
原创 行为型模式-08迭代器模式
文章目录八、迭代器模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`6. `使用场景`八、迭代器模式1. 定义提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。2. 结构抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口。具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代器的实例。抽象迭代器(Iterator)角色:定义访问和遍历聚合元素的接口,通常包含 hasNex
2021-05-30 17:56:40
89
原创 行为型模式-07中介者模式
文章目录七、中介者模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`6. `使用场景`七、中介者模式1. 定义又叫调停模式,定义一个中介角色来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以 独立地改变它们之间的交互。2. 结构抽象中介者(Mediator)角色:它是中介者的接口,提供了同事对象注册与转发同事对象信息的 抽象方法。具体中介者(ConcreteMediator)角色:实现中介者接口,定义一个 List 来管理同事对 象,协调各个同事角色之间
2021-05-30 17:55:05
105
原创 行为型模式-06观察者模式
文章目录六、观察者模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`6. `使用场景`六、观察者模式1. 定义又被称为发布-订阅模式,它定义了一种一对多的依赖关系,让多个观察者 对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自 动更新自己。2. 结构抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每 个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象。具体主题(具体被观察
2021-05-30 17:52:27
58
原创 行为型模式-05状态模式
文章目录五、状态模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`6. `使用场景`五、状态模式1. 定义对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变 时改变其行为。2. 结构环境(Context)角色:也称为上下文,它定义了客户程序需要的接口,维护一个当前状态,并 将与状态相关的操作委托给当前状态对象来处理。抽象状态(State)角色:定义一个接口,用以封装环境对象中的特定状态所对应的行为。具体状态(Concre
2021-05-28 21:52:52
67
原创 行为型模式-04责任链模式
文章目录四、责任链模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`四、责任链模式1. 定义又名职责链模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对 象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处 理它为止。2. 结构抽象处理者(Handler)角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。具体处理者(Concrete Handler)角色:实现抽象处理者的处理方法,判断
2021-05-28 21:51:24
57
原创 行为型模式-03命令模式
文章目录三、命令模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`6. `使用场景`7. `JDK源码实例`三、命令模式1. 定义将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象 进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。2. 结构抽象命令类(Command)角色: 定义命令的接口,声明执行的方法。具体命令(Concrete Command)角色:具体的命令,实现命令接口;通常会持有接收者,并调 用接收
2021-05-28 21:50:14
78
原创 行为型模式-02策略模式
文章目录二、策略模式1. `定义`2. `结构`3.` 案例`4. `代码`5. `优缺点`6. `JDK源码`二、策略模式1. 定义该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用 算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分 割开来,并委派给不同的对象对这些算法进行管理。2. 结构抽象策略(Strategy)类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有 的具体策略类所需的接口。具
2021-05-28 21:49:00
53
原创 行为型模式-01模板方法模式
文章目录一、模板方法模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优缺点`6. `适用场景`一、模板方法模式1. 定义定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情 况下重定义该算法的某些特定步骤。2. 结构抽象类(Abstract Class):负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基 本方法构成。具体子类(Concrete Class):实现抽象类中所定义的抽象方法和钩子方法,它们是一个顶级 逻辑的组成步
2021-05-28 21:47:31
66
原创 结构型模式-07享元模式
文章目录七、享元模式1. `定义`2. `结构`3. `案例`4. `代码`5. `优点`6. `缺点`7. `使用注意`8. `JDK源码(看源码,里面用到了享元模式)`七、享元模式1. 定义运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建 的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。2. 结构抽象享元角色:通常是一个接口或抽象类,在抽象享元类中声明了具体享元类公 共的方法,这些方法可以向外界提供享元对象的内部数据(内部状态),同
2021-05-25 15:00:22
153
1
原创 结构型模式-06组合模式
文章目录六、组合模式1. `定义`2. `结构`3. `案例`4. `代码`5. `使用场景`六、组合模式1. 定义又名部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对 象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。2. 结构抽象根节点(Component):定义系统各层次对象的共有方法和属性,可以预先定义一些默认行 为和属性。树枝节点(Composite):定义树枝节点的行为,存储子节点,组合树枝节点和叶子节
2021-05-25 14:07:17
53
原创 结构型模式-05外观模式
文章目录五、外观模式1. `定义`2. `结构`3. `案例`4. `代码`5. `好处`6.`缺点`五、外观模式1. 定义又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问 的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降 低应用程序的复杂度,提高了程序的可维护性。2. 结构外观(Facade)角色:为多个子系统对外提供一个共同的接口。子系统(Sub System)角色:实现系统的部分功能,客户可以通过外观
2021-05-25 14:04:04
54
原创 结构型模式-04桥接模式
文章目录四、桥接模式1. `定义`:2. `结构`3. `案例`4. `代码`5. `好处`6. `使用场景`四、桥接模式1. 定义:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实 现这两个可变维度的耦合度。2. 结构抽象化(Abstraction)角色 :定义抽象类,并包含一个对实现化对象的引用扩展抽象化(Refined Abstraction)角色 :是抽象化角色的子类,实现父类中的业务方法, 并通过组合关系调用实现化角色中的业务方法。
2021-05-25 14:00:52
227
原创 结构型模式-03装饰者模式
三、装饰者模式1. 举例理解买一杯普通的奶茶,但是奶茶也分各种各样的奶茶,甚至可以加不同的操作,然后支付对应不同的价钱。这样计算总价就会比较麻烦弊端:比如增加一些增值的操作方式,就会发生类爆炸的情况实例:JDK 源码中的Writer 及其 子类2. 定义指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。3. 结构抽象构件(Component)角色 :定义一个抽象接口以规范准备接收附加责任的对象。具体构件(Concrete Compo
2021-05-25 08:33:53
76
原创 结构型模式-02适配器模式
文章目录二、适配器模式1. `定义`2. `包含的角色`3. `分类`3.1 `类适配器模式(耦合度较高,用的少)`3.1.1 代码3.2 `对象适配器模式`3.2.1 代码3.3 `应用场景`二、适配器模式1. 定义将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。2. 包含的角色目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。适配器(Ada
2021-05-25 08:31:05
67
原创 结构型模式-01代理模式
文章目录一、代理模式①. 概念②. 结构1. 静态代理1.1 代码2. JDK动态代理2.1 代码2.3 执行流程3. CGLib动态代理3.1 代码4. 三种代理的对比4.1 对比4.2 优缺点4.2.1 优点4.2.2 缺点4.3 使用场景一、代理模式①. 概念 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接 引用目标对象,代理对象作为访问对象和目标对象之间的中介②. 结构抽象主题(Subject)类: 通过接口或抽象类声明真实主题和代理对象实现
2021-05-25 08:28:24
519
2
原创 创建者模式-04建造者模式
四、建造者模式1. 说明将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对 象。这个模式适用于:某个对象的构建过程复杂的情况。由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建 器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配算法的解耦,实现了更好的复用。建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户
2021-05-23 22:59:03
50
原创 创建者模式-03原型模式
三、原型模式1. 概述用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象2. 结构抽象原型类:规定了具体原型对象必须实现的的 clone() 方法。具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。访问类:使用具体原型类中的 clone() 方法来复制新的对象。3. 实现(浅克隆和深克隆)3.1 浅克隆定义:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原 有属性所指向的对象的内存地址。使用场景:①
2021-05-23 22:49:05
153
原创 创建者模式-02工厂模式
文章目录二、工厂模式1. `简单工厂模式`1.1 说明1.2 优缺点1.3 UML类图1.4 代码2. `静态工厂`3. `工厂方法模式`1.1 说明1.2 优缺点1.3 UML类图1.4 代码4. `抽象工厂模式`1 说明2. 优缺点3. UML类图4. 代码5. `模式扩展(简单工厂+配置文件接触耦合)`1. 说明2. 代码演示3. 好处6. `实际应用案例`1. `Iterator`方法2. 其他案例6. `实际应用案例`1. `Iterator`方法2. 其他案例二、工厂模式点果汁案例1
2021-05-23 22:45:41
642
原创 创建者模式-01单例模式
单例模式一、单例设计模式介绍1. 定义 类的单例设计模式,就是保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的静态方法2. 方式2.1 饿汉式(静态常量)1. 步骤构造器私有化(防止new)类的内部创建对象2. 代码class singleT { //1.初始化私有构造器,不能被实例化 private singleT() { } //2.创建一个静态的最终对象 private static fina
2021-05-23 22:36:22
392
5
原创 设计模式-01创建者模式
文章目录设计模式-01创建者模式1. `定义`2. `分类`3、`创建者模式对比`1. `工厂方法模式VS建造者模式`2. `抽象工厂模式VS建造者模式`设计模式-01创建者模式1. 定义创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。 这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。2. 分类单例模式工厂方法模式抽象工程模式原型模式建造者模式3、创建者模式对比1. 工厂方法模式VS建造者模式工厂方法模式注重的是整体对象的创建
2021-05-23 21:46:24
85
原创 设计模式-UML类图
UML类图一、Idea中使用UML的方法Idea中集成了UML工具把相关的类拖入,或者多选类,可以自动生成一些对应的联系二、UML基本介绍统一建模语言分类:依赖、泛化(继承)、实现、关联、聚合与组合1. 依赖关系1.1 定义只要是在类中用到了对方(方法局部变量、方法参数位置、方法返回值),那么他们之间就存在依赖关系。public class Electricity { public void include() { Tv tv;
2021-05-17 14:55:24
340
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人