自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 BIO、NIO、多路复用

当用户向服务器发起请求时,应用服务器会为每一个用户请求分配一个线程,如果http请求不做任何事情或者做的事情很慢,势必会造成应用服务器不必要的线程开销。应用服务器上面的线程也是这样的情况,不管当前http请求有多慢,线程也无法抽身去做其他事情,这就是BIO模式。tomcat默认使用的是BIO模式,但是在9.0之后采用的是NIO模式。9.0之前的tomcat可以采用jetty替换,jetty则是典型的NIO模式,而且他是模块化的架构,可以把不需要的功能简化掉,从而提升jetty性能。

2024-05-12 23:23:28 243

原创 利用vite创建vue项目

在运行 npm install 命令之后,npm 还会自动更新 package.json 文件中的 package-lock.json(或 yarn.lock)文件,以记录确切的包版本和依赖关系。在 Vite 项目中,vite.config.ts 文件是一个 TypeScript 文件,位于项目根目录下。在HBuilderX工具上打开刚刚创建前端项目,修改 vite.config.ts 文件中的项目启动端口号,添加如下内容,然后保存文件。需要注意的是,vite.config.ts 文件是可选的。

2024-04-11 23:49:29 1038

原创 nodejs安装

步骤 6 :点击 Install(安装) 开始安装Node.js。你也可以点击 Back(返回)来修改先前的配置。Node.js官网下载 安装包及源码下载地址为:https://nodejs.org/en/blog/release/v17.3.1。步骤 5 : 点击树形图标来选择你需要的安装模式,默认选择第一个即可 , 然后点击下一步 next(下一步)根据自身系统下载对应的安装包 (我这里为Windows11 64位)点击 Finish(完成)按钮退出安装向导。,如果出现版本号则表示安装成功。

2024-04-11 09:07:10 270

原创 计算机组成原理——计算机系统概述

冯诺依曼 现代计算机结构

2024-02-07 15:15:50 906

原创 Java面试

AQS就是AbstractQueuedSynchronizer抽象类,AQS其实就是JUC包下的一个基类,JUC下很多内容都是基于AQS实现了部分功能,比如ReentrantLock,ReentrantReadWriteLock,ThreadPoolExecutor,阻塞队列,CountDownLatch,Semaphore,CyclicBarrier等等都是基于AQS实现。首先AQS提供了一个由volatile修饰,并且采用CAS方式修改的int类型的state变量。

2024-01-30 10:39:04 944

原创 final

引用类型变量所指向的对象之所以可以修改, 是因为引用变量不是直接指向对象的数据, 而是指向对象的引用的. 所以被final修饰的引用类型变量将永远指向一个固定的对象, 不能被修改;在上图中, 变量p指向了0003这块内存, 0003内存中保存的是对象p的句柄(存放对象p数据的内存地址), 这个句柄值是不能被修改的, 也就是变量p永远指向p对象. 但是p对象的数据是可以修改的.相信大家都具备基本的常识: 被final修饰的变量是不能够被改变的. 但是这里的"不能够被改变"对于不同的数据类型是有不同的含义的.

2024-01-20 15:58:56 385

原创 MySQL——深入数据库原理(事务及锁)

(建行APP的资产计数是当时将两张银行卡的余额做相加实现的,也就是先查第一张卡,然后再查第二张卡,你查看余额的这个事务包含了查卡一和卡二两个步骤)在这个执行事务第一步拿到卡一的10元时,你妈妈突然把卡二的钱转到卡一,并且此你妈妈的这个事务已提交。当你的事务再去读卡二时读到的是0元,两卡相加10元。基于MVCC原理,在事务开启之前,innodb会记录一个当前事务的ID,通过当前只能读取比自己事务id小于或等于的数据值的原则,相当于建立了一个视图,这样每次读取的数据都是不变的,从而解决了不可重复的的问题。

2024-01-14 14:41:20 877

原创 MysqL——深入MySQL原理(架构及执行流程)

架构 存储结构

2024-01-12 16:04:28 1004

原创 MySQL——性能优化与关系型数据库

数据库相关介绍

2024-01-11 23:26:34 1279

原创 MySQL——SQL语句进阶

SQL高级语句

2024-01-11 16:16:24 499 1

原创 ThreadLocal

ThreadLocal

2024-01-11 16:15:02 349

原创 JVM——新生代 、老年代、永久区

新生区,老年区,永久区。

2024-01-11 16:11:45 412

原创 Mysql——索引相关的数据结构

磁盘存储相关数据结构

2024-01-11 16:05:15 1053 2

原创 MySQL 面试题

binlog用于记录数据库执行的写入性的DDL和DML(不包括查询)信息,以二进制的形式保存在磁盘中。DDL:用于定义和管理数据库中的对象,例如表、视图、索引等。常见的DDL语句包括CREATE、ALTER和DROP语句。CREATE用于创建新对象,ALTER用于修改现有对象的结构,而DROP用于删除对象。DML:用于对数据库中的数据进行操作,例如插入、查询、更新和删除数据。常见的DML语句包括SELECT、INSERT、UPDATE和DELETE语句。

2024-01-11 15:46:27 917

原创 操作系统——I/O设备的概念和分类

I/O设备概念和分类

2024-01-09 16:43:31 407

原创 操作系统——I/O控制器

操作系统 I/O控制器

2024-01-09 16:40:33 921

原创 MYSQL学习之buffer pool的理论学习

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2024-01-08 13:44:59 1012

原创 分布式缓存 -- 基础

其中,ribbon可自定义负载均衡规则(ribbon也提供提供了一些,比如随机分配、按权值分配等等)两种配置方式,一种在启动类的注解上,另一种在yml的配置文件上。Ribbon 提供 @LoadBalanced 注解,外搭配RestTemplate来做客户端的负载均衡。的负载均衡器:拿到客户端的请求,根据均衡器内部的算法分配给各个服务,此次。一般来说,eureka-client中已经整合了ribbon的客户端。的负载均衡器:在客户端将各个服务的信息拿到,在。通信的负载均衡工具,提供完善的超时重试机制。

2024-01-06 13:01:23 376

原创 分布式初步

分布式初步

2024-01-04 22:21:31 342

原创 各种工具安装锦集

使用docker安装各种工具安装教程

2023-05-26 14:27:22 92

原创 如何使用ssh密钥的方式实现无密码scp传输文件

如何使用ssh密钥的方式实现无密码scp传输文件

2023-05-25 14:53:04 1349

原创 面向对象设计

面向对象

2023-03-23 02:36:51 358

原创 MultipartFile

MultipartFile

2023-03-04 16:34:31 300

原创 Optional

optional基础使用

2023-02-02 16:08:58 116

原创 Vue入门(一) 什么是Vue

什么是vue

2022-12-31 21:00:13 100

原创 海上钢琴师

拿钢琴来说吧,琴键有开始,也有尽头,你知道一共有八十八个键,这是绝对没错的,琴键是有限的,你才是无限的,你在琴键上创作的音乐才是无限的,我喜欢这样,我可以这样生活。琴键无穷无尽,那个键盘是无限的,如果键盘是无限的,在那个键盘上你就无法演奏音乐,你坐错琴凳了,这是上帝的钢琴。陆地对我来说是一艘太大的船,太美丽的女人,太漫长的航程,太浓郁的香水,他是一段我不知道该怎么演奏的音乐,我无法离开这艘船,大不了我可以离开我的生命,反正对别人来说我也不存在,你是个例外马克斯,你。我看不到的东西 ,你能明白吗?

2022-12-24 14:48:19 84

原创 idea上传git

idea上传git项目

2022-07-27 13:45:21 2369

原创 ActiveMQ

JMSActiveMq回归正题,说一下amqamq是JMS其中的一个落地产品消息体api发送和接收高可用持久化延时发送+定时投递签收机制集群和容错Spring 整合可以解决什么问题利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型在分布式环境下提供应用解耦,弹性收缩。冗余存储,流量削峰,异步通信,数据同步等功能。发送者把消息发送给消息服务器。消息服务器将消息存放在若干队列/主题中,在合适的时候,消息

2022-07-10 00:08:51 1071

原创 开发小记~

积沙成山

2022-07-05 17:59:32 1250

原创 SpringSecurity

用户认证通过后,为了避免用户的每次操作都进行认证可将用户的信息保证在会话中,会话就是系统为了解决认证之后,在进行常规操作是防止再次认证。常见方式有session ,token用户认证成功后,在服务端生成用户相关的数据保存在session中,发送给客户端的session_id存放到cookie中,这样用户客户端请求时带上session_id就可以验证服务端是否存在session数据,已完成用户的合法校验,用户认证成功后,服务端生成token,客户端可以放到cookie或者localStorage等存储中,每次

2022-06-30 11:04:23 206

原创 Elasticsearch基础

下载网址:https://www.elastic.co/cn/downloads/past-releases#elasticsearchHTML1 :我爱我的祖国,我爱编程HTML2 :我爱编程,我是个快乐的小码农分词器将内容进行分词处理,搜索时,es数据库将想要查询的字段对分词后的结果进行挨个匹配 效率低下倒排索引是按照分词与文档进行映射POST请求 加 _update 为修改操作,只修改指定的的字段普通查询查询全部数据查询name为小胖的为什么会出现这样的情况?我们知道 字

2022-06-25 18:25:01 297

原创 CompletableFuture

Future是Java5新加的一个接口,它提供了一种异步并行计算的功能。如果主线程需要执行一个很耗时的计算任务,我们就可以通过future把这个任务放到异步线程中执行。主线程继续处理其他任务,处理完成后,再通过Future获取计算结果。但是Future对于结果的获取,不是很友好,只能通过阻塞或者轮询的方式得到任务的结果阻塞的方式和异步编程的设计理念相违背,而轮询的方式会耗费无谓的CPU资源。因此,JDK8设计出CompletableFuture。CompletableFuture提供了一种观察者模式类似的机

2021-09-14 18:04:57 288 1

原创 开发宝典~~

JSONObject JSONArray 使用方法类似于map 直接转化成String JSONObject indexData = new JSONObject(); indexData.put("assetId", assetId); indexData.put("assetType", assetType); indexData.put("indexValue", indexValue); indexD.

2021-06-08 15:32:15 952 2

原创 insertSelective和insert的区别

先上例子比如User里表里面有三个字段:id name age password User u=new user();u.setName("bill");mapper.insertSelective(u); insertSelective执行对应的sql语句的时候,只插入对应的name字段sql语句如下:insert into tb_user (name) value ("bill")insert则是每个字段都要添加一遍insert into tb_user (id,name,age,

2021-05-22 17:25:38 520

原创 spring boot前端

建立目录结构请求进来,先去找Controller看能不能处理,不能处理的所有请求又都交给静态资源处理器,静态资源就会去指定的这几个目录去找资源。如果静态资源也找不到,那就赶回404;我们只有登录之后才能能访问一些动态请求,所以一般在发起请求时会设置拦截器,如果我们来拦截/**,那麽就会把静态资源也给拦截,为了访问静态资源方便,我们会给访问静态资源的的方式将一个前缀,设这一个标志,让拦截器去放行这些静态资源请求。比如:http://127.0.0.1:8080/resources/aa.jpg,

2021-04-14 16:58:03 1092

原创 Mybatis动态语句

如果采用JDBC进行处理,需要根据条件是否取值进行SQL语句的拼接,一般情况下是使用StringBuilder类及其append方法实现,还是有些繁琐的。如果你有使用JDBC或其他类似框架经验,你能体会到拼接语句的痛苦。类如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号,利用动态SQL这一特性可以彻底摆脱这一痛苦。mybatis在简化操作方法提出了动态SQL功能,将使用java代码拼接sql语句改变为在XML文件中。相比而言,大大减少了代码量和复杂性。Myatias也可以在注解中

2021-04-07 09:54:23 183

原创 MQ和feign的区别

MQ:特点:面向数据,生产者与消费者,有缓冲节点,异步,系统级、模块级通信具体:消息的发送者和消费者需要解耦发送者不明确也不关心谁是消费者消费者不止一个,各种消费者可以从不同角度处理消息,消息的处理结果不必返回消息的发和处理是异步的场景:日志服务fegin:特点:请求响应模式,同步,对象级/函数级通信具体:客户端调用哪个服务比较明确适用于需要有返回结果的存在耦合场景:订单服务和仓库管理微服务:新建订单时,需要给仓库管理微服务发送消息。需要查知仓库是否存货充足。返回查看结

2021-03-30 09:20:28 3485

原创 yaml文件

简介yaml文件其实也是一种配置文件,相比较ini和config来说功能更加强大,使用更加简单,操作更加灵活。yaml文件可以存储键值对,对象,数组。它的基本语法规则如下:大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数目不重要,只要相同层级的元素左侧对齐即可简单配置直接上代码:#普通的key-valuename: yin#对象student: name: yin age: 3#对象的行内写法student2: {name: y

2021-03-26 22:49:52 603

原创 maven基础

为什么要使用maven1.maven讲一个项目拆成多个工程 (对于大型的的项目,不同的团队开发不同的模块)2同样的jar包文件重复出现在不同的项目工程中, 造成项目资源浪费和臃肿,借助maven,可以将共用的jar包保存在仓库中,某个工程要用的话只需要引用这个文件接口,并不需要把jar包复制过来3.有些技术官网可以通过 maven或者SVN等工具来下载jar包,所有知名的框架或者第三方jar包都按照统一规范放入Maven中,maven可以通过一种规范的形式从仓库中下载jar包4.解决各种包的依赖关系

2021-03-26 09:54:14 76

原创 Thymeleaf模板引擎

一、什么是模板引擎?Template(模板)中有一些动态的表达式,Data(数据区)中有从后端获取的值,TemplateEngine(模板引擎)将Template和Data进行整合,将Data中的数据填充到Template中的动态表达式中,然后生成一个我们想要的内容(output)。不管是Thymeleaf、jsp还是其他模板引擎,都是这样的思想,只是语法不一样。Spring boot推荐的Thymeleaf; 语法简单,功能更强大。二、引入Thymeleaf1.导入启动器 &lt

2021-03-22 11:57:17 131

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除