- 博客(120)
- 资源 (1)
- 收藏
- 关注

原创 Java开发工具积累(符合阿里巴巴手册规范)
一个阻塞队列,用来存储线程池等待执行的任务,均为线程安全,它包含以下 7 种类型:较常用的是 LinkedBlockingQueue 和 Synchronous,线程池的排队策略与 BlockingQueue 有关。最大线程数可以存活的时间,当线程中没有任务执行时,最大线程就会销毁一部分,最终保持核心线程数量的线程。最大线程数,线程池中允许的最大线程数,当线程池的任务队列满了之后可以创建的最大线程数。线程工厂,主要用来创建线程,默认为正常优先级、非守护线程。核心线程数,线程池中始终存活的线程数。
2023-12-15 09:24:40
1083
原创 Druid监控页面无法打开(404)
如果localhost:7080/druid/login.html 无法打开Druid监控页面,那么说明Druid数据库连接池根本就没有配置成功,所以才会出现404.上面配置不成功,要么是配置问题,要么就是版本不兼容问题(大概率)
2024-06-04 15:08:31
1640
原创 前端学习——工具的使用
(错)import { editForm } from “./component/editForm”;(对)import editForm from “./component/editForm”;
2024-05-14 16:04:49
234
原创 前端开发——ElementUI组件的使用
4. 下拉框 el-select6. 对话框 el-dialog7. 文字提示 el-tooltip8. 抽屉 el-drawer
2024-02-29 17:29:05
1262
1
原创 前端开发——记录开发出现的问题
当你在 JavaScript 中引用一个图片或者其他类型的文件,并且没有使用 require() 或其他模块导入方法,这个文件通常不会被 Webpack 打包进你的构建输出中。当你尝试在不使用 require() 或其他导入方法的情况下直接在 HTML 或 JavaScript 中引用图片时,浏览器会尝试从服务器加载这个图片,但因为这个图片没有被 Webpack 打包进构建输出,所以服务器找不到它,从而返回 404 错误。例如,对于图片文件,你需要配置 file-loader 或 url-loader。
2024-02-29 15:25:52
861
原创 理解npm run dev 和 npm run serve的区别
dev 是一个在 package.json 文件中 scripts 部分定义的一个脚本命令的名称。通常,这个名称 dev 是开发环境的简写,意味着这个命令通常用于启动开发服务器或进行开发相关的任务。run 是 npm 的一个子命令,用于执行在 package.json 文件的 scripts 部分定义的脚本。npm 是 Node.js 的包管理器,它允许你安装、更新、删除和管理 Node.js 的模块和应用程序。
2024-02-27 10:00:48
3883
原创 Vue项目创建——每一步都有记录和说明
切换成国内镜像(npm config set registry http://registry.npmmirror.com),注意因为淘宝镜像在2024-01-22已经过期了,所以上述是淘宝镜像的新地址。是一个全局安装的 npm 包,提供了终端里的 vue 命令。命令窗口:vue create project_name(例如:vue create hello_ui):这是因为npm下载时,使用的是国外的npm源,所以网络不佳导致超时。命令窗口:npm install -g @vue/cli。
2024-02-26 10:54:59
534
原创 前端学习——CSS学习
1. 未脱离、半脱离、全脱离1. 位置未脱离:元素按照文档流的顺序,依次排列。半脱离:碰到(父元素、未脱离元素、浮动元素),就会停止。全脱离:按照position各自的特性,移动到指定位置2. 层级未脱离 < 半脱离 < 全脱离相同位置、相同z-index的元素,后面的元素会覆盖前面的元素全脱离元素,z-index数值大的元素,覆盖z-index数值小的元素。
2024-02-23 10:22:08
1099
原创 由于误删了node依赖,导致这后面的一系列操作
如果最后你切换了各种源,install了n次,还是失败,建议直接找其他同事要一个项目使用node_module搞上去。虽然我没试过,但是估计是可以的。
2024-02-04 13:02:38
1549
3
原创 JVM知识总结(简单且高效)
2. JVM内存结构4. 栈与堆的区别8. 类的生命周期10. 类的初始化只有对类主动使用时才会初始化,触发条件包括:标记无用对象,然后进行清除回收。缺点:效率不高,无法清除垃圾碎片。:标记无用对象,让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。:按照容量划分二个大小相等的内存区域,当一块用完的时候将活着的对象复制到另一块上,然后再把已使用的内存空间一次清理掉。缺点:内存使用率不高,只有原来的一半。
2023-12-30 18:37:58
1587
原创 “abc”、new String(“abc“)、“a”+“b“=“ab“、常量池
【代码】“abc”、new String("abc")、“a”+"b"="ab"、常量池。
2023-12-27 16:20:41
506
原创 Object常用方法讲解(附带使用示例)
当 GC (垃圾回收器) 确定不存在对该对象的有更多引用时,对象的垃圾回收器就会调用这个方法。看这个图就懂了,这就是为什么改基本类型、String类型、引用类型的属性,会得到不一样的结果。Object finalize() 方法用于实例被垃圾回收器回收的时触发的操作。对象 clone 方法默认是浅拷贝,深拷贝需要重写clone方法。重写clone方法,实现深拷贝。
2023-12-25 09:50:31
480
原创 java反射的实战教程(简单且高效)
这个方法会去我们的操作系统寻找这个class文件(java编译生成的字节码文件),并将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。注意这里的静态块指的是在类初始化时的一些数据。
2023-12-20 22:41:23
569
原创 NIO的实战教程(简单且高效)
我们将模拟一个简单的HTTP服务器,它将响应客户端请求并返回一个固定的响应(”Hello, World!我们将使用IO和NIO两种不同的方式实现此服务器。多路复用才是NIO不阻塞的原因。
2023-12-20 09:49:15
599
原创 Oracle基础学习
数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。总结:解释数据库、表空间、用户、数据文件、表、数据的最好办法就是想象一个装满东西的柜子。数据库其实就是柜子,柜中的抽屉是表空间,抽屉的使用权是哪个用户,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。注: 表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。用户是在实例下建立的。
2023-10-17 10:02:05
460
原创 优化代码,提升代码性能
除非是必须的,否则应该避免使用split,split由于支持正则表达式,所以效率比较低,如果是频繁的几十,几百万的调用将会耗费大量资源,如果确实需要频繁的调用split,可以考虑使用apache的StringUtils.split(string,char),频繁split的可以缓存结果。这样的话,内存中只有一份Object对象引用,每次new Object的时候,Object对象引用指向不同的Object罢了,但是内存中只有一份,这样就大大节省了内存空间了。如果毫无理由地这么写了,那是不合理的。
2023-09-22 09:39:54
379
原创 【MySQL 45讲笔记】
因为唯一索引的更新操作可能无法使用change buffer,所以一般推荐选择普通索引。事务B查到K的值是3,而事务A查到K的值是1。
2023-09-22 09:38:58
178
原创 【线程池】实现多线程并发定时任务
springboot中通过注解 @Scheduled 注解的方法都是一个定时执行的任务, 默认都是单线程的,就算是多个定时任务也是在同一个单线程(scheduled-1)中运行, 如果其中某一个定时任务产生了阻塞,那么会导致项目中其他所有的定时任务线程都不执行。后果非常严重,故而需要配置多线程定时任务。可以看到三个定时任务都已经执行,并且使同一个线程中串行执行,如果只有一个定时任务,这样做肯定没问题,当定时任务增多,如果一个任务卡死,会导致其他任务也无法执行。然后在定时任务的类或者方法上添加@Async。
2023-05-29 13:59:25
1979
原创 【线程池】线程池的7种创建方式,详细讲解
线程池(ThreadPool)是一种基于池化思想管理和使用线程的机制。它是将多个线程预先存储在一个“池子”内,当有任务出现时可以避免重新创建和销毁线程所带来性能开销,只需要从“池子”内取出相应的线程执行对应的任务即可。内存池(Memory Pooling):预先申请内存,提升申请内存速度,减少内存碎片。连接池(Connection Pooling):预先申请数据库连接,提升申请连接的速度,降低系统的开销。实例池(Object Pooling):循环使用对象,减少资源在初始化和释放时的昂贵损耗。
2023-05-29 12:20:07
10914
原创 Java多线程synchronized && Lock && volatile,看完这一篇就够了
对,你没看错,就是对变量加锁,没有对run()方法加锁:因为当一个线程进入 synchronizer 代码块后,线程获取到锁,会清空本地内存,然后从主内存中拷贝共享变量的最新值到本地内存作为副本,执行代码,又将修改后的副本值刷新到主内存中,最后线程释放锁。静态代码块随着类加载而加载,有多个静态代码块的,按代码块前后顺序加载。然而,JMM 这样的规定可能会导致线程对共享变量的修改没有即时更新到主内存,或者线程没能够即时将共享变量的最新值同步到工作内存中,从而使得线程在使用共享变量的值时,该值并不是最新的。
2023-05-14 20:27:39
1407
原创 【并发编程】深入理解Java并发之synchronized实现原理
当方法调用时,调用指令将会 检查方法的 ACC_SYNCHRONIZED 访问标志是否被设置,如果设置了,执行线程将先持有monitor(虚拟机规范中用的是管程一词), 然后再执行方法,最后再方法完成(无论是正常完成还是非正常完成)时释放monitor。,它实现synchronized的锁对象的基础,这点我们重点分析它,一般而言,synchronized使用的锁对象是存储在Java对象头里的,jvm中采用2个字来存储对象头(如果对象是数组则会分配3个字,多出来的1个字记录的是数组长度),其主要结构是由。
2023-05-14 19:54:46
941
原创 【秒杀系统】高并发编程入门学习
你不发货用户投诉你,平台封你店,你发货就血亏,你怎么办?之前的限流我们放进来10000个请求,但是我们真正的库存只有1000个,那我们就算出最有可能是真实用户的1000人进行秒杀,丢弃其他请求,因为秒杀本来就是黑盒操作的,用户层面是无感知的,这样设计能让真实的用户买到东西,还可以减少自己被薅羊毛的概率。因为上面的任何一步都是可能出错的,而且我们是在不同的服务里面出错的,那就涉及分布式事务了,但是分布式事务大家想的是一定要成功什么的那就不对了,还是那句话,几个请求丢了就丢了,要保证时效和服务的可用可靠。
2023-05-14 17:12:53
643
原创 【JavaWeb 用户认证】Cookie、Session、Token、JWT、Interceptor、SpringBoot、Spring Security
Cookie的介绍Cookie的使用案例// 如果Cookie存在,则从Cookie中调取信息 if(cookies!= null) {System . out . println("cookie的时效: " + cookie . getMaxAge());System . out . println("cookie的Comment: " + cookie . getComment());
2023-05-05 22:27:25
1225
原创 【Spring Security第二篇】身份认证Authentication
SecurityContextHolder中包含了SecurityContext对象,SecurityContext中包含了Authentication对象。验证,具体验证流程如下。
2023-05-05 22:27:02
1699
原创 【Spring Security第一篇】初始Spring Security、表单认证、认证与授权
应用程序的安全性通常体现在两个方面:认证和授权认证:确认登录系统的用户在某系统中是否合法、可用的过程。授权:当主体通过认证之后,是否允许其执行某项操作的过程。但是大多数应用程序都有自己的登录页面,登录接口,接口请求参数名称。@Configuration // @EnableWebSecurity 如果你的项目是 SpringBoot 项目,该注解就没必要写 public class SecurityConfig extends WebSecurityConfigurerAdapter {
2023-05-04 08:59:29
720
原创 【Node.JS 数据库篇】Sequelize 的用法与mysql的关系
ORM 的第一步就是要建立对象到数据表的映射,在 Sequlize 里是这样的,比如我们关联一个 station 的表。
2023-04-28 09:30:54
1220
原创 【Node.JS Web编程】记录从语法基础到网络框架的学习过程
有时候我们不仅需要引入自己的模块,还要借用别人的模块,这就需要NPMNPM是随同NodeJS一起安装的包管理工具,可以获取别人已经实现的代码。npm可以分为全局安装和本地安装# 本地安装 # 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录), # 如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。# 可以通过 require() 来引入本地安装的包。
2023-04-23 00:08:08
282
原创 【C++入门学习:类和对象】为了缩短学习周期,只记录部分不懂的语法
如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。派生类可以访问基类中所有的非私有成员。因此基类成员如果不想被派生类的成员函数访问,则应在基类中声明为 private。
2023-04-22 17:47:32
89
原创 【C++入门学习:基本语法】为了缩短学习周期,只记录部分不懂的语法
下面代码中,语句 extern int var;表示 var 在别的文件中已经定义,提示编译器遇到此变量时在其它模块中寻找其定义。语句 extern int ble = 10;表示定义了变量 ble,这一点需要注意。注意:即使是 extern ,如果给变量赋值了,就是定义了。// 声明 extern int ble = 10;// 定义 typedef int INT;// 声明 struct Node;// 声明 int value;//声明 + 定义,因为C++会为value变量赋默认值。
2023-04-22 12:29:32
260
原创 【Node.JS】初入前端,学习node.js基本操作
允许用户从NPM服务器下载别人编写的第三方包到本地使用。允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。npm可以分为全局安装和本地安装# 本地安装 # 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录), # 如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。# 可以通过 require() 来引入本地安装的包。
2023-04-21 10:26:36
1025
1
原创 一文读懂JavaWeb,前后端数据交互原来是这样的
此时res就是JSON对象,这是因为:@ResponseBody注解主要是用来返回json数据给前端,如果你很懒,只想返回一个对象,那么加上@ResponseBody可以实现将返回的对象自动转换为json传返回给前端。@ResponseBody注解主要是用来返回json数据给前端,如果你很懒,只想返回一个对象,那么加上@ResponseBody可以实现将返回的对象自动转换为json传返回给前端。当然,Request的请求行中的URL中也可以负载着前端向后端发送请求的数据,这个后面会详细说明。
2023-04-20 00:31:28
8467
3
原创 【JavaScript】初入前端,记录JavaScript学习过程
这段程序中的 setTimeout 就是一个消耗时间较长(3 秒)的过程,它的第一个参数是个回调函数,第二个参数是毫秒数,这个函数执行之后会产生一个子线程,子线程会等待 3 秒,然后执行回调函数 “print”,在命令行输出 “RUNOOB!可想而知,在一个复杂的程序当中,用 “函数瀑布” 实现的程序无论是维护还是异常处理都是一件特别繁琐的事情,而且会让缩进格式变得非常冗赘。例如,如果我想分三次输出字符串,第一次间隔 1 秒,第二次间隔 4 秒,第三次间隔 3 秒。"这是一个标题123"
2023-04-18 23:47:09
479
原创 一文读懂【Git 工作流】
我们现在已经了解了Git的分支,包括分支有哪些类型,什么情况下使用什么类型的分支,以及提交的格式规范等。不过往往在一个团队人数较多,创建的分支也比较多的时候,还是会带来很多分支操作上的困扰。那有没有一个什么好的流程来规范大家呢,针对这些问题,建议大家使用Git Flow的工作流模式。我们在实际工作中会创建很多分支以便于不同场景下的开发,但是如果没有分支规范就会造成分支杂乱,大家往往也搞不清楚某一个分支是在做什么,下面我们就介绍一下我们常用的并且推荐大家使用的分支类型。
2023-04-17 16:17:30
898
原创 【Spring Security】 入门实战
这是因为,你在pom.xml中导入了依赖包,等于告诉maven要导入Spring Security依赖,但是不等于已经导入了Spring Securtiy,因为maven可能还没来得及导入,你就已经启动项目了。但是有时候导入依赖之后访问页面,也没有跳转到指定验证页面,这就是Spring Security没有生效。在pom.xml文件映入SpringSecutrity依赖启动器,启动项目,访问文章列表页面时,出现默认的登录页,需要用默认用户名:user,密码源于控制台输出,也就是最基础的登录。
2023-04-17 14:52:57
427
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人