- 博客(208)
- 收藏
- 关注
原创 React04 State变量 & 组件渲染
State 是组件实例内部的状态。如果你渲染同一个组件两次,每个副本都会有完全隔离的 state,改变其中一个不会影响另一个。state setter 函数 (setIndex) 可以更新 state 变量并触发 React 重新渲染组件。在这个例子中,index 的初始值被 useState(0) 设置为 0。useState 的唯一参数是 state 变量的初始值。
2024-11-01 14:48:59
416
原创 React03 组件 & Props
一些组件将它们所有的 props 转发给子组件,正如 Profile 转给 Avatar 那样。因此,函数与类上的特性在 React 组件上同样具有,比如原型链,继承,静态属性等,所以不要把 React 组件和类与函数独立开来。每个父组件都可以提供 props 给它的子组件,从而将一些信息传递给它。组件本质上就是类和函数,但是与常规的类和函数不同的是,组件承载了渲染视图的 UI 和更新视图的。React 在底层逻辑上会像正常实例化类和正常执行函数那样处理的组件。函数式组件定义时首字母必须大写。
2024-10-23 09:13:39
557
原创 React02 JSX的基本使用
JSX是一种 JavaScript 的语法扩展,需要通过解析工具解析之后才能在浏览器中运行。注意:key 是 React 框架内部使用的用于提升更新性能的属性。
2024-10-13 00:34:41
600
原创 java 的三种IO模型(BIO、NIO、AIO)
完成后,操作系统会通知应用程序,或者应用程序主动查询完成状态。使线程在等待IO完成的同时可以执行其他任务,提高了系统的并发性能。:同时管理多个通道,通过注册通道的事件(如连接就绪、读就绪、写就绪),使用单个线程就能处理多个通道,从而管理多个网络连接,提高了效率。每个客户端连接都会在一个独立的线程中处理,并且这个线程在处理 IO 操作时会阻塞,直到操作完成。数据从通道读取到缓冲区,或者从缓冲区写入到通道。:既可以从通道中读取数据,又可以写数据到通道。:用于在I/O操作完成后处理结果的回调接口。
2024-10-02 16:41:58
2086
原创 XXL-JOB 分布式任务调度平台
版本号需要和上一步拉取的项目版本一致2.2、XXL-JOB 相关配置properties 格式yaml 格式:2.3、定义执行器组件 Bean3、创建分布式定时任务3.1、执行器中定义Job方法3.2、定义执行器
2024-09-29 16:50:26
422
原创 JUC并发编程_深入理解CAS
解决ABA问题的一种常见且有效的方法是使用带有版本号或时间戳的原子操作,这样可以确保在比较并交换(CAS)操作时,不仅能检查值是否相等,还能检查该值自上次读取以来是否未被其他线程修改过。:如果某个线程将内存位置的值从A改为B,然后又改回A,此时另一个线程使用CAS进行检查时会认为该值没有变化,但实际上它已经变化过了。类,它正是为了解决ABA问题而设计的,它在设置值的时候,除了要校验预期原值,还要校验版本号是否变更。:CAS操作只能保证单个共享变量的原子操作,对于多个共享变量,CAS无法保证其原子性。
2024-09-28 18:23:59
767
原创 JUC并发编程_JMM 与 Volatile
期望执行的顺序是:1234,实际执行的顺序可能会变成 2134、1324,但编译器会保证顺序不是 4123,不会影响执行结果。源代码 --> 编译器优化的重排 --> 指令并行也可能会重排 --> 内存系统也会重排 --> 执行。型的变量来说,load、store、read和write操作在某些平台上允许例外)线程在执行任务的时候,不能被打扰的也不能被分割。正常的结果: x = 0;:你写的程序,计算机并不是按照你写的那样去执行的。指令重排导致的诡异结果: x = 2;(对于double和long类。
2024-09-26 14:05:37
854
原创 JUC并发编程_ForkJoin
JUC并发编程_ForkJoinForkJoin 的基本概念ForkJoin 的基本概念核心思想:分而治之(Divide and Conquer),即将大任务分解成小任务,并行处理后再合并结果应用场景:适用于递归分解型的任务,如排序、归并、遍历等,也适用于数组处理、并行化算法实现和大数据处理等领域
2024-09-26 13:16:29
246
原创 mysql手册17_经验总结
1、如何定位慢查询3、如何使用 EXPLAIN 优化查询4、什么是聚簇索引和二级索引(非聚簇索引)5、超大分页处理聚簇索引:索引的叶子节点直接包含数据行,聚簇索引有且仅有一个。如果存在主键,主键索引就是聚簇索引。如果不存在主键,将使用第一个唯一索引作为聚簇索引。如果既没有主键索引也没有唯一索引,InnoDB会自动生成一个rowid作为隐藏的聚簇索引。二级索引:索引的叶子节点关联对应的主键,所以一般需要回表操作,二级索引可以存在多个。
2024-09-25 17:33:05
505
原创 JUC并发编程_四大函数式接口和 Stream 流式计算
接受单个输入参数并返回布尔值结果。主要用于条件判断,比如检查字符串是否为空、数字是否大于某个值等。不接受任何参数但返回某种类型结果,主要用于提供数据,比如生成随机数、获取当前时间等。接受单个输入参数但不返回任何结果,主要用于执行某些操作,比如打印日志、发送数据等。接受一个输入参数并返回结果。主要用于转换数据,比如字符串转大写、数字加一等。
2024-09-24 23:02:23
313
原创 JUC并发编程_线程池
Java中的线程池主要由 java.util.concurrent 包下的Executor、ExecutorService、ThreadPoolExecutor等接口和类提供支持。其中,ThreadPoolExecutor是线程池的核心实现类。Executor:线程池的顶级接口,定义了execute(Runnable command)方法,用于提交任务。
2024-09-24 13:19:22
523
原创 JUC并发编程_阻塞队列 BlockingQueue
通过阻塞等待机制,阻塞队列能够自动平衡生产者和消费者的速度差异,防止生产者过快导致队列溢出,或消费者过慢导致队列空置。:Java中的线程池使用了阻塞队列来管理任务队列,当线程池中的线程数达到最大值时,新的任务会被放入阻塞队列中等待执行。生产者-消费者模式:阻塞队列支持生产者-消费者模式,即生产者向队列中添加元素,消费者从队列中取出元素。当队列满时,如果线程尝试向队列中添加元素,该线程将被阻塞,直到队列中有空间可用。当队列空时,如果线程尝试从队列中移除元素,该线程将被阻塞,直到队列中有元素可取。
2024-09-24 12:13:19
391
原创 JUC并发编程_ReadWriteLock
通过合理地使用读写锁,可以显著提高程序的并发性能和资源的利用率。当没有线程持有写锁时,读锁可以被多个线程同时获取,这提高了并发读取的效率。(Write Lock):写锁是独占的,当一个线程获得写锁后,其他线程无法获得读锁或写锁。确保每个锁都有对应的解锁操作,并且锁的获取顺序在多个线程中保持一致。:ReentrantReadWriteLock支持公平锁和非公平锁两种模式,可以根据需要选择合适的模式。数据保护:确保在写线程对数据进行修改时,能够排他性地访问数据,避免数据不一致的问题。是一个接口,它提供了。
2024-09-24 12:02:28
417
原创 Spring Cloud Alibaba 03_使用 openFeign 实现远程调用
注解以启用 OpenFeign 的自动配置。该注解会告诉 SpringBoot 在启动时扫描并注册所有标记了。注解声明一个 Feign 客户端,name 属性指定远程服务的名称。通过该接口定义远程服务的方法。
2024-09-22 20:57:03
370
原创 RabbitMQ09_实现延迟消息
这个插件可以将普通交换机改造为支持延迟消息功能的交换机,当消息投递到交换机后可以暂存一定时间,到期后再投递到队列。属性给队列A指定死信交换机,该死信交换机将消息路由到队列B,消费者监听消费队列B中的消息。发送消息给队列A并设置消息过期时间,使用。
2024-09-21 00:04:41
290
原创 RabbitMQ08_保证消息可靠性
消息投递到MQ但是MQ路由失败,MQ返回路由失败原因。持久消息投递到了MQ且入队完成持久化,返回ACK。临时消息投递到了MQ且入队成功,返回ACK。持久化消息:发送消息时将消息的。消息投递异常,返回NACK。
2024-09-20 15:58:44
876
原创 Linux系统的字体管理
在Linux系统中,新安装的字体需要被加入到字体缓存中,以便系统能够识别和使用它们。因此,你需要在服务器上执行 fc-cache 命令来更新字体缓存。这个命令会扫描 /usr/share/fonts 目录(以及其他可能存在的字体目录,如 ~/.fonts),并更新字体缓存数据库。执行该命令后,系统将会重新扫描 /usr/share/fonts 目录,并将新拷贝的字体加入到字体缓存中。
2024-09-04 11:13:12
1885
原创 MINIO 对象存储服务
注:需要下载 MINIO SERVER(服务端) 和 MINIO CLIENT(客户端)两个文件。将下载的 MINIO 服务端与客户端文件放到bin目录下。创建minio相关目录:bin、data、log。MINIO 整合 SpringBoot。
2023-10-31 14:14:49
183
原创 IE报错 Stream ended unexpected
记录遇到的一个IE的神奇报错:环境: IE11HTML代码:JS代码:后端代码:现象: 在Chrome等浏览器测试正常,在IE浏览器上当文件处理模式勾选加密时上传失败,勾选解密时却上传成功。 错误信息:org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly问题原因: IE浏览器的缺陷,如果form的最后一个元素是checkBox、Radio之类的没有
2022-06-23 10:59:24
997
原创 表格中的td内容换行显示
需求:将表格中td内容的换行显示解决办法:将表格中的数据用 div标签包裹,并添加如下属性:white-space:normal;word-break:break-all;word-wrap:break-word;注意:该div需要设置指定宽度,或为td设置宽度并设置div宽度为100%
2022-05-11 10:55:22
4199
原创 SpringBoot 使用 Jasypt 加解密
引入依赖<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version></dependency>在属性文件中配置盐jasypt: encryptor: password: sa.
2022-03-01 15:16:50
1680
2
原创 ztree树节点名称过长的解决方法
定义 addDiyDom 方法function addDiyDom(treeId, treeNode) { var switchObj = $("#" + treeNode.tId + "_switch"), icoObj = $("#" + treeNode.tId + "_ico"); switchObj.remove(); icoObj.parent().before(switchObj); var spantxt = $("#" + treeNode.tId + "_span")...
2021-12-17 17:19:47
422
原创 LeetCode题
算法题两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。class Solution { public int[] twoSum(int[] nums, int target) { int result[]
2021-11-25 00:02:23
308
原创 eclipse安装lombok插件
去 Lombok 官网下载lombok.jar :https://projectlombok.org双击下载好的 lombak.jar 将弹出如下窗口:点击 Specify location… 选择eclipse的安装路径。点击 Install / Update点击 Quit Installer 完成安装安装完成后eclipse的安装路径下出现 lombok.jar 文件,且 eclipse.ini 配置文件中添加了如下内容:-javaagent:D:\eclipse\lombok.jar.
2021-07-21 13:25:13
266
原创 Spring面试题
Spring面试题1. 谈谈你对Spring的认识2. Spring的bean作用域有哪些3. Spring的bean是线程安全的吗4. 谈谈SpringMVC的工作流程5. SpringMVC有哪些常用的注解?有什么作用?6. 什么是事务的传播特性及Spring支持的特性有哪些?1. 谈谈你对Spring的认识Spring 的两大核心是IOC和AOP。IOC就是控制反转,指的是原本应该由我们自己创建和管理依赖的对象现在交给了Spring容器来管理。能够实现层与层之间的解耦。AOP就是面向切面编.
2021-03-27 11:25:42
88500
2
原创 mysql面试题
mysql面试题1. 查询学生表中30-41条的记录2. 查出有两门不及格的学生信息1. 查询学生表中30-41条的记录limit第一个参数指定第一个返回记录行的偏移量(从0开始)第二个参数指定返回记录行的最大数目SELECT * FROM student limit 29,122. 查出有两门不及格的学生信息学生表student [id, name]课程表course [id, name]成绩表scores [sid, cid, score]select s.id, s.nam.
2021-03-15 22:42:30
113188
原创 js面试题
js面试题1. document 操作节点的方法有哪些2. var a = {} 与 var a = function(){} 的区别3. 怎样获取 <select> 的文本?4. 怎样关闭 <checkbox> 的选项?5. let 与 const 的区别6. 使用JavaScript开启一个ajax1. document 操作节点的方法有哪些获取节点:document.getElementById('text')document.getElementsByName(n.
2021-03-15 22:02:29
112826
原创 javaweb面试题
javaweb面试题1. <%%> 与 <%!%> 的区别?(拓展:<%=%> 和 <%:%> )2. 页面间传值有哪几种几种方式3. cookie与session区别,如何使用4. Forward 和 Redirect 的区别专栏笔记:https://blog.youkuaiyun.com/blu_111/category_10397159.html1. <%%> 与 <%!%> 的区别?(拓展:<%=%> 和 <%:.
2021-03-15 20:28:18
113510
1
原创 Mybatis面试题
Mybatis面试题1. #{}和${}的区别2. 模糊查询like语句该怎么写3. 如何获取生成的主键4. 在mapper中如何传递多个参数5. 当实体类中的属性名和表中的字段名不一样时怎么办相关判断和简答1. #{}和${}的区别#{}是占位符,会预编译处理,可以防止sql注入,常用;${}是拼接符,只是简单的字符串替换,没有预编译处理。Mybatis在处理#{}时,#{}传入参数是以字符串传入,会将SQL中的#{}替换为?号,调用PreparedStatement的set方法来赋值。变量替
2021-03-13 22:06:46
110964
原创 java面试题
java面试题实现 String 字符串的反转思路1:String的底层是字符数组,可以先将其转成数组再反转public static void main(String[] args) { String str = "abcdefg"; System.out.println(reverse(str)); }public static String reverse(String str) { char[] strArr = str.toCharArray(); int x,y; c
2021-02-13 10:35:28
113520
1
原创 JavaWeb12_数据库连接池
数据库连接池JDBC的数据库连接对象是通过 DriverManager 来获取的,每次获取都需要向数据库申请获取连接,验证用户名和密码,执行完 SQL 语句后断开连接,这样的方式会造成资源的浪费,数据连接资源没有得到很好的重复利用。我们可以使用数据库连接池解决这一问题。数据库连接池的基本思想数据库连接池的基本思想就是为数据库建立一个缓冲池,预先向缓冲池中放入一定数量的连接对象,当需要获取数据库连接的时候,只需要从缓冲池中取出一个对象,用完之后再放回到缓冲池中,供下一次请求使用,做到了资源的重复利用,
2021-02-10 10:21:41
113288
1
原创 JavaWeb11_JDBC
JDBCJDBC 的介绍JDBC 的使用示例PreparedStatementJDBC 的介绍Java DataBase Connectivity 是一个独立于特定数据库的管理系统,通用的 SQL 数据库存取和操作的公共接口。JDBC 定义了一组标准,为访问不同数据库提供了统一的途径。JDBC 接口包括两个层面:1、JDBC API:面向应用的 API,供程序员调用面向数据库的 API供开发者调用的接口:java.sql 和 javax.sqlDriverManager 类Connecti
2021-02-05 19:28:45
113601
原创 JavaWeb10_Ajax
AjaxAsynchronous JavaScript And XML(异步的 JavaScript 和 XML)AJAX 指的是一种交互方式:异步加载。客户端和服务器的数据交互更新在局部页面的技术,不需要刷新整个⻚面(局部刷新)优点:1、局部刷新,效率更高2、用户体验更好使用 JQuery 实现 Ajax前端 jsp:data属性指定请求参数dataType属性指定服务器返回的数据类型success为请求成功的回调函数<script type="text/javascript
2021-02-05 14:18:10
113375
原创 JavaWeb09_文件上传下载
文件上传下载文件上传:在文件上传的 jsp 页面中的 form 表单提交方法需设置为post,enctype属性需设置为 multipart/form-data<form action="/bluwebtest/upload" method="post" enctype="multipart/form-data"> <input name="image" type="file"/><br/> <input type="submit" value="上传"/
2021-02-04 23:24:23
113471
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人