- 博客(64)
- 资源 (4)
- 收藏
- 关注
原创 读写分离详解
面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。 对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说,将数据库拆分为**主库**和**从库**,主库负责处理事务性的增删改操作,从库负责处理查询操作,能够有效的避免由数据更新导致的行锁,使得整个系统的查询性能得到极大的改善。通过读写分离,就可以降低单台数据库的访问压力, 提高访问效率,也可以避免单机故障。
2023-05-22 09:44:43
728
原创 Mysql的主从复制
MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。 二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但是不包括数据查询语句。
2023-05-22 09:34:03
437
原创 扩展自己的MVC消息转换器
在MVC中定义一个自己的消息转换器并且添加到最前面,实现替代自己默认的消息转换器,我定义的消息转换器替代了时间格式和long类型的数据,替代时间格式是为了方便观看,替代long类型是为了解决前端丢失long精度导致long类型的发生数据改变,导致和后端匹配不上
2023-04-11 17:04:58
315
原创 nova安装与配置
(创建 nova_api 和 nova 数据库:)1、在controller节点上为nova创建数据库,并创建管理账号,参考命令。2、在keystone中为nova创建用户、角色、服务和API接口,参考命令。3、掌握在计算节点上安装与配置nova的方法和步骤。2、掌握在控制节点上安装配置nova的方法和步骤。3、在控制节点上安装nova,参考命令如下。IDENTIFIED BY '密码';IDENTIFIED BY '密码';IDENTIFIED BY '密码';IDENTIFIED BY '密码';
2023-02-10 09:10:43
1224
原创 REST风格
REST风格作用:设置当前控制器类为RESTful风格,等同于@Controller与@ResponseBody两个注解组合功能。作用:设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作,列如@GetMapping对应的Get请求。名称:@GetMapping @PostMapping @PutMapping @DeleteMapping。作用:绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应。位置:SpringMVC控制器方法定义上方。作用:设置当前控制器方法请求访问路径。
2023-02-09 09:46:06
136
原创 Spring5:@Autowired注解、@Resource注解和@Service注解
Spring5:@Autowired注解、@Resource注解和@Service注解
2023-01-07 14:14:32
1931
1
原创 面向对象思想编程内容的三条主线分别是什么?
1、类及类的成员:属性、方法、构造器、代码块、内部类2、面向对象的三大特征:封装、继承、多态3、其他关键字:this、super、abstract、interface、static、final、package、import
2022-04-29 14:31:06
288
原创 方法声明的说明
关于权限修饰符:1、Java规定的4种权限修饰符:private、public、缺省、protected2、返回值类型:有返回值 VS 无返回值有返回值:必须在方法声明时,指定返回值类型。同时,方法中,需要使用return关键字来返回指定类型的变量或常量。无返回值:在方法声明时,使用void来表示。通常,没有返回值的方法中,就不需要使用return,但是如果使用的话,只能“return;”表示结束此方法的意思。我们 定义的方法该不该有返回值?题目要求、凭经验:具体问题分析3、
2022-04-28 18:33:34
649
原创 面向对象设计原则
面向对象设计原则S.O.L.I.D简写 全拼 中文翻译 SRP The Single Responsibility Principle 单一责任原则 OCP The Open Closed Principle 开放封闭原则 LSP The Liskov Substitution Principle 里氏替换原则 ISP The Interface Segregation Principle 接口分离原则 DIP T
2022-03-18 15:59:16
90
原创 面向对象关系
类图以下类图使用PlantUML绘制,更多语法及使用请参考:https://plantuml.com/。泛化关系(Generalization)用来描述继承关系,在 Java 中使用 extends 关键字。@startumltitle Generalizationclass Vihicalclass Carclass TrunckVihical <|-- CarVihical <|-- Trunck@enduml实现关系(Real
2022-03-18 15:53:45
163
原创 面向对象思想三大特性
三大特性封装1.封装概述利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。 数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节, 只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节, 但可以通过对象对外提供的接口来访问该对象。2.优点减少耦合:可以独立地开发、测试、优化、使用、理解和修改 减轻维护的负担:可以更容易被程序员理解,并且在调试的时候可以不影响其他模块 有效地调节性能:可以通过剖析确定哪些模块影响了系统的性能 提高软件的可
2022-03-18 15:46:40
155
原创 面向对象的结构型
结构型1.适配器(Adapter)lntent把一个类接口转换成另一个用户需要的接口。Class DiagramTarget:定义客户端需要的跟特定领域相关的接口。Adaptee:已经存在的接口,通常能满足客户端的功能要求, 但是接口与客户端要求的特定领域接口不一致,需要被适配。Adapter:适配器,把Adaptee适配成为Client需要的Target。lmplementation1美国的电饭煲是在电压为 110V 下工作,而中国的电饭煲在电压 220
2022-03-18 15:29:30
275
原创 EditPlus的使用和注释与API文档等
注释与API文档等1.java规范的三种注释方式:单行注释://多行注释:/* */文档注释(java特有):/** */2.单行注释和多行注释的作用:1.对所写的程序进行解释说明,增强可读性。方便自己,方便别人2.调试所写的代码3.特点:1.单行注释和多行注释,注释了的内存不参与编译。换句话上就是,编译以后生成的.class结尾的字节码文件中不包含注释掉的信息2.注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网...
2022-03-18 15:11:41
767
原创 开发环境搭建及运行第一个程序
1.开发环境的搭建(重点)1.1 JDK、JRE、JVM的关系1.2 JDK的下载、安装下载:官网,github安装:傻瓜式安装 注意问题:安装软件的路径中不能包含中文和空格1.3 path环境变量的配置1.3.1 为什么要配置path环境变量?path环境变量:windows操作系统执行命令时所要搜寻的路径。为什么要配置path:希望java的开发工具(javac.exe,java.exe)在任何的文件路径下都可以执行成功。1.3.2如何配置?...
2022-03-18 14:41:13
707
原创 Java语言概述
1.基础常识软件:就是一系列按照特定顺序组织的计算机数据和指令的集合,分为系统软件和应用软件系统软件:windows,mac os, linux,unix,android,ios,.........应用软件:word,ppt,画图板,........人机交互方式:图形化界面 vs 命令行方式应用程序 = 算法 + 数据结构2.计算机语言的发展第一代:机器语言第二代:汇编语言第三代:高级语言...
2022-03-18 14:13:50
3607
原创 面向对象的行为型
1. 责任链(Chain Of Responsibility)Intent使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这些对象连成一条链,并沿着这条链发送该请求,直到有一个对象处理它为止。Class DiagramHandler:定义处理请求的接口,并且实现后继链(successor)Implementationpublic abstract class Handler { protected Handler successo..
2022-03-17 23:16:24
214
原创 面向对象的创建型
创建型1.单例(SingIeton)Intent确保一个类只有一个实例,并提供该实例的全局访问点。Class Diagram使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。ImplementationI 懒汉式-线程不安全以下实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 unique
2022-02-25 20:29:29
135
原创 面向对象的设计模式
概论设计模式是解决问题的方案,学习现有的设计模式可以做到经验复用。拥有设计模式词汇,在沟通时就能用更少的词汇来讨论,并且不需要了解底层细节。设计模式脑图
2022-02-25 19:52:11
254
原创 Java I/O 方式
Java I/O 方式BIO & NIO & AIOJava IO 的方式通常分为阻塞的 BIO(Blocking IO)、同步非阻塞的 NIO(New IO) 和异步非阻塞的 AIO(Asynchronous IO)。JDK1.4 之前只支持 BIO,JDK1.4 以后开始支持 NIO,JDK1.7 开始支持 AIO。1.BIOBIO 是同步阻塞的。服务器的模式为一个连接一个线程。客户端有连接请求时,就需要启动一个线程进行处理。如果这个连接不做任何事情,就会造成不必
2022-02-24 19:31:01
209
原创 NIO & AIO
一、NIONIO(New I/O)即新的输入/输出库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O。NIO 核心组件: 通道(Channels) 缓冲区(Buffers) 选择器(Selectors) 流与块I/O 与 NIO 最重要的区别是数据打包和传输的方式,I/O 以流的方式处理数据,而 NIO 以块的方式处理数据。面向流的 I/O 一次处理一个字节数据:一个输入流产生一个字节数据,一个输出流消费一个字节数据。
2022-02-24 19:28:45
219
原创 网络的操作
网络操作Java 中的网络支持:InetAddress:用于表示网络上的硬件资源,即 IP 地址; URL:统一资源定位符; Sockets:使用 TCP 协议实现网络通信; Datagram:使用 UDP 协议实现网络通信。InetAddress没有公有的构造函数,只能通过静态方法来创建实例。InetAddress.getByName(String host);InetAddress.getByAddress(byte[] address);public class Ne
2022-02-24 19:13:38
275
原创 对象的操作
对象操作序列化 & 反序列化如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。序列化就是将数据结构或对象转换成二进制字节流的过程。反序列化将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程。序列化:ObjectOutputStream.writeObject() 反序列化:ObjectInputStream.readObject()不会对静态变量进行序列化,因为序列化只是保存对象的状态
2022-02-24 19:08:38
95
原创 字符的操作
字符操作编码与解码编码就是把字符转换为字节,而解码是把字节重新组合成字符。如果编码和编码过程使用不同的编码方式那么就出现了乱码。GBK 编码中,中文字符占 2 个字节,英文字符占 1 个字节; UTF-8 编码中,中文字符占 3 个字节,英文字符占 1 个字节; UTF-16be 编码中,中文字符和英文字符都占 2 个字节。UTF-16be 中的 be 指的是 Big Endian,也就是大端。相应地也有 UTF-16le,le 指的是 Little Endian,也就是小端。Ja
2022-02-24 19:06:48
171
原创 字节的操作
字节操作字节输出流FileOutputStream创建输出流对象OutputStream 流对象是一个抽象类,不能实例化。所以,我们要找一个具体的子类 :FileOutputStream。 查看FileOutputStream的构造方法:FileOutputStream(File file) FileOutputStream(String name)创建字节输出流对象了做了几件事情: 调用系统功能去创建文件 创建字节输出流对象 把该字节输出流对象引用指向这个
2022-02-24 19:01:03
372
原创 磁盘的操作
磁盘操作我们要想实现IO的操作,就必须知道硬盘上文件的表现形式。而Java就提供了一个类File供我们使用。File对象File:用于表示文件和目录的信息,但是它不表示文件的内容。构造方法:File(String pathname) //根据一个路径得到File对象File(String parent, String child) //根据一个目录和一个子文件/目录得到File对象File(File parent, String child) //根据一个父File对象和一个子文件/
2022-02-24 18:55:29
105
原创 Java I/O 概览
I/O介绍I/O(Input/Outpu) 即输入/输出。学术的说 I/O 是信息处理系统(计算机)与外界(人或信息处理系统)间的通信。如计算机,即 CPU 访问任何寄存器和 Cache 等封装以外的数据资源都可当成 I/O ,包括且不限于内存,磁盘,显卡。软件开发中的 I/O 则常指磁盘、网络 IO。同步 & 异步同步、异步是消息通知机制。同步:同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。 异步:异步就是发起一个调用后,立刻得到被调用者的回应表示已接收.
2022-02-24 18:52:42
110
原创 Java并发实践
一、死锁线程死锁死锁是指两个或者两个以上的线程在执行的过程中,因争夺资源产生的一种互相等待现象。假设线程 A 持有资源 1,线程 B 持有资源 2,它们同时都想申请对方的资源,那么这两个线程就会互相等待而进入死锁状态。使用 Java 代码模拟上述死锁场景:public class Resources { public static final Object resource1 = new Object(); // 资源 1 public static final O
2022-02-23 15:15:19
224
原创 Java并发线程池
线程池Executor 框架Executor 框架是在 Java5 中引入的,通过该框架来控制线程的启动,执行,关闭,简化并发编程。Executor 基于生产者-消费者模式,提交任务的线程相当于生产者,执行任务的线程相当于消费者。同时,Executor 的实现还提供了对任务执行的生命周期管理的支持。 Executor 接口。Eexcutor 框架的基础,将任务提交和任务执行解耦。 ExecutorService 接口。继承自 Executor 接口,具备管理执行器和任
2022-02-23 14:59:56
112
原创 并发容器 & 并发工具
一、并发容器CopyOnWriteArrayList1.读写分离写操作在一个复制的数组上进行,读操作还是在原数组中进行,读写分离,互不影响。写操作需要加锁,防止并发写入时导致写入数据丢失。写操作结束之后需要把原数组指向新的复制数组。//写操作://通过过创建底层数组的新副本来实现的。//当 List 需要被修改的时候,并不修改原有内容,而是对原有数据进行一次复制,将修改的内容写入副本。//写完之后,把原数组指向新的复制数组。//这样可以保证写操作实在一个复制的数组上进行,而
2022-02-23 14:53:55
1035
原创 原子操作类
原子操作类Atomiclnteger 源码解析java.util.concurrent.atomic下的所有原子操作类都实现了 CAS。AtomicInteger 内部维护一个变量Unsafe:private static final Unsafe unsafe = Unsafe.getUnsafe(); Unsafe 类中可以执行以下几种操作:分配内存,释放内存。allocateMemory,reallocateMemory,freeMemory 挂起和唤醒线程。被封装在 L.
2022-02-23 14:34:41
351
原创 Lock 体系
Lock 体系AQSAQS(AbtsractQueueSynchronized) 即同步队列器。AQS 是一个抽象类,本身并没有实现任何同步接口的,只是通过提供同步状态的获取和释放来供自定义的同步组件使用。AQS 的实现依赖内部的双向队列(底层是双向链表),称为同步队列。如果当前线程获取同步状态失败,则会将该线程以及等待状态等信息封装为 Node,将其加入同步队列的尾部,同时阻塞当前线程,当同步状态释放时,唤醒队列的头结点。AQS 使用 CAS 对该同步状态进行原子操作实现对其值的修
2022-02-23 14:27:37
127
微信经典2048游戏小程序
2023-02-09
python案例和教程,0基础进阶,代码都有提示,可以提供学习
2023-02-09
python基本爬虫程序
2023-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人