- 博客(142)
- 收藏
- 关注
原创 62-Java-面试专题(1)__基础
文字描述(以升序为例)1.依次比较数组中相邻两个元素大小,若[a]>a[+1],则交换两个元素,两两都比较一遍称为一轮冒泡,结果是让最大的元素排至最后2.重复以上步骤,直到整个数组有序每轮冒泡时,最后一次交换索引可以作为下一轮冒泡的比较次数,如果这个值为零,表示整个数组有序,直接退出外层循环即可文字描述(以升序为例)1.将数组分为两个子集,排序的和未排序的,每一轮从未排序的子集中选出最小的元素,放入排序子集2.重复以上步骤,直到整个数组有序优化方式。
2024-11-04 08:26:08
882
原创 vue在生产环境和测试环境去掉 console 打印日志 只保留 “error“、 “warn“
【代码】vue在生产环境和测试环境去掉 console 打印日志 只保留 “error“、 “warn“
2024-08-27 08:20:43
631
原创 Mac终端operation not permitted问题、禁用和启用SIP(系统完整性保护)
这是因为一些mac用户在升级系统之后,电脑启用了SIP(System Integrity Protection),增加了rootless机制,导致即使在root权限下依然无法修改文件,在必要时候为了能够修改下面的文件,我们只能关闭该保护机制。
2024-06-04 20:24:37
4790
原创 Spring boot 发送文本邮件 和 html模板邮件
1.--邮箱验证码模板--> < body > < div style = " background-color : #ECECEC;font-family : 微软雅黑 , 黑体;" > < font face = " 微软雅黑 " size = " 5 " style = " color : rgb(255 , 255 , 255);
2024-03-28 09:50:51
951
原创 VMware安装Ubuntu
3.选择Ubuntu 64位。8.修改处理器和内存的大小。1.选择典型安装就可以啦。9.选择需要使用的镜像。10.关闭 - 完成。7.输入用户名和密码。
2024-03-04 10:46:59
665
原创 Vmware Fusion 13 安装CentOS、Ubuntu、Windows11虚拟机
2.安装完成之后 重新启动虚拟机,此刻就可以看到登陆界面了。设置用户名和密码 一些简单的设置。1.以上Ubuntu安装好之后是没有图形化的虚拟机。2.虚拟机会自动重启,重新设置,点击。2.将下载好的镜像直接拖到虚拟机中。1.先将虚拟机关机,然后开始设置。2.把下载好的镜像拖到虚拟机中。2.把下载好的镜像拖到虚拟机中。3.安装成功后,安装Tools。3.直接回车(默认键盘布局)1.创建一个新的虚拟机。2.设置 处理器和内存。1.创建一个新的虚拟机。5.回车 (没有网络)10.设置用户名和密码。
2024-03-01 18:38:32
13062
14
原创 Mac新机必装软件
1.获取途径 App Store 或(官网)1.获取途径 App Store 或(官网)1.获取途径 App Store 或(官网)1.获取途径(GitHub)1.获取途径(中文官网)1.获取途径(中文官网)1.获取途径(中文官网)1.获取途径 (官网)1.获取途径 (官网)1.获取途径(官网)1.获取途径(官网)我选择的是 IINA。1.获取途径(官网)1.获取途径(官网)1.获取途径(官网)1.获取途径(官网)
2024-02-28 16:12:35
2699
原创 Mac安装Homebrew+MySQL+Redis+Nginx+Tomcat等
如果不知道自己是否安装 Homebrew,在终端输入,看看是否有显示。2.如果使用 4.x 最新的 JSON API 安装方式(推荐),添加以下环境变量配置。1.如果此前没有安装过 Xcode Command Line Tools。3.安装完成后,和 Windows 不太一样,如下两个文件是分开的。添加以下代码(PATH 换成自己的reids目录)3.会提示安装,按回车耐心等待安装完成。4.等所有请求结束之后,停止服务器。2.双击打开里面的pkg文件。2.进入到mysql数据库。2.安装Homebrew。
2024-02-04 09:00:37
1871
原创 VMware虚拟机安装macOS
1.选择自定义硬件3.内存给到6.5GB4.处理器给到2p 2c5.把iso镜像添加上然后选择关闭—完成 一一 然后就可以开启虚拟机了。
2024-01-31 22:29:21
5564
3
原创 Windows安装JDK+Maven+Idea插件+nvm等
SpotBugs介绍 SpotBugs是Findbugs的继任者(Findbugs已经不再维护),用于对Java代码进行静态分析,查找相关的漏洞,SpotBugs比Findbugs拥有更多的校验规则。CodeGeeX可以根据自然语言注释描述的功能自动生成代码,也可以根据已有的代码自动生成后续代码,补全当前行或生成后续若干行,帮助你提高编程效率。SonarLint是一个代码扫描插件,可以随时分析出代码的编写质量,并指出问题所在,对编写规范的代码很有帮助。2.安装完成后,验证版本,出现如下警告。
2024-01-24 09:06:27
1389
原创 Vmware安装Windows11虚拟机
1.选择自定义硬件2.虚拟机硬件设置移除打印机3.内存给到4GB4.处理器给到2p 2c5.把iso镜像添加上然后选择关闭—完成。
2024-01-23 13:14:09
4942
12
原创 Docker-02-镜像&项目部署
1.首先通过命令创建一个网络# 1.首先通过命令创建一个网络 docker network create coke2…然后查看网络# 2.然后查看网络 ( 其中,除了coke以外,其它都是默认的网络) docker network ls3.让dd和mysql都加入该网络,注意,在加入网络时可以通过–alias给容器起别名# 3.让dd和mysql都加入该网络,注意,在加入网络时可以通过--alias给容器起别名# 这样该网络内的其它容器可以用别名互相访问!
2024-01-18 16:48:57
1507
原创 Docker中创建并配置MySQL、nginx、redis等容器
2.从容器nginx里复制配置文件到本地。2.重新启动nginx 并挂载到本地。4.修改文件 浏览器访问测试。3.查看复制后的本地文件。可以看到文件复制成功!
2024-01-18 09:36:14
1166
原创 Docker-01-安装&基础命令
"Docker"一词指代了多个概念,包括开源社区项目、开源项目使用的工具、主导支持此类项目的公司 Docker Inc.,以及该公司官方支持的工具。这些技术和公司的同名可能会造成混淆。以下简要说明 Docker 以便区分:IT 软件"Docker"是支持创建和使用 Linux® 容器的容器化技术。开源 Docker 社区致力于改进这类技术,并免费提供给所有用户,使之获益。Docker Inc. 公司凭借 Docker 社区产品起家,主要负责提升社区版本的安全性,并将技术进步与广大技术社区分享。此外,它还
2024-01-15 21:28:25
1119
原创 jumpServer-02-安装与配置
jumpserver是由python编程语言开发的,旧版的是python2开发的新版的是python3开发的03: 配置yum源04:安装系统初始化所需的软件05:安装jumpserver运行所需的依赖环境06:修改系统的字符集,改为是中文的③:安装Python3.601:下载、解压、安装02: 配置python3的环境变量02. 安装运行jumpServer所需的模块由python开发的程序,必须安装该程序使用到的一些模块,才能正确运
2024-01-07 16:42:17
1539
原创 jumpServer-01-跳板机与堡垒机
外部用户需要先连接到跳板机,然后再由跳板机进一步连接到内部网络,这种双重连接可以有效地隔离内部网络免受来自外部的攻击和恶意行为。:堡垒机可以集中管理和控制所有的远程访问,减少了对内部网络的直接管理和配置。只有经过身份验证和授权的用户可以通过跳板机访问内部网络,其他未授权的访问将被拒绝。通过跳板机,所有的远程访问都可以被记录和监控,以便进行审计和追踪。:堡垒机可以对远程用户进行身份验证和授权,只有经过验证的用户才能够连接到内部网络。这样可以有效防止未经授权的访问和攻击,保护内部网络的安全。
2024-01-01 13:50:10
1855
原创 02_原理-浏览器渲染原理
reflow 的本质就是重新计算 layout 树。当进行了会影响布局树的操作后,需要重新计算布局树,会引发 layout。为了避免连续的多次操作导致布局树反复计算,浏览器会合并这些操作,当 JS 代码全部完成后再进行统一计算。所以,改动属性造成的 reflow 是异步完成的。也同样因为如此,当 JS 获取布局属性时,就可能造成无法获取到最新的布局信息。浏览器在反复权衡下,最终决定获取属性立即 reflow。repaint 的本质就是重新根据分层信息计算了绘制指令。
2023-11-27 09:45:47
885
原创 01_原理-事件循环
每个任务都有一个任务类型,同一个类型的任务必须在一个队列,不同类型的任务可以分属于不同的队列。3.按照W3C的标准,浏览器实现计时器时,如果嵌套层级超过5层,则会带有4毫秒的最少时间,这样在计时时间少于4毫秒时又带来了偏差。2.操作系统的计时函数本身就有少量偏差,由于JS的计时器最终调用的是操作系统的函数,也就携带了这些偏差。根据W3C官方的解释,每个任务有不同的类型,同类型的任务必须在同一个队列,不同的任务可以属于不同的。不同任务队列有不同的优先级,在一次事件循环中,由浏览器自行决定取哪一个队列的任务。
2023-11-24 14:53:54
1212
原创 SpringBoot整合SpringSecurity+jwt+knife4生成api接口(从零开始简单易懂)
③:添加一个测试接口查看效果会自动跳到Springsecurity的登录页面(程序已经被SpringSecurity保护)没有配置用户名和密码时 默认用户user 密码 在控制台02.统一响应类⑤:数据库 数据准备01.yml数据库配置02.添加数据⑥:创建根据用户名获取用户接口如果不配置直接登录会报错意思就是说密码的加密方式为空我们可以写一个测试类 将明文转换为密码 然后将密码存到数据库中在登录过程中 真正
2023-11-24 10:01:38
1359
原创 安全框架springSecurity+Jwt+Vue-2(后端开发)
③:开启mapper接口扫描,添加分页、防全表更新插件④:创建数据库和表⑤:结果数据封装⑥:全局异常处理有时候不可避免服务器报错的情况,如果不配置异常处理机制,就会默认返回tomcat或者nginx的5XX页面,对普通用户来说,不太友好,用户也不懂什么情况。这时候需要我们程序员设计返回一个友好简单的格式给前端。处理办法如下:通过使用 @ControllerAdvice 来进行统一异常处理 @ExceptionHandler(value = RuntimeException.class) 来指
2023-11-22 09:28:39
898
原创 SpringBoot整合knife4j生成Api文档
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!
2023-11-22 09:17:24
504
原创 安全框架springSecurity+Jwt+Vue-1(vue环境搭建、动态路由、动态标签页)
稍等片刻之后,项目就初始化完成了。上面的步骤中,我们创建了一个vue项目,并且安装了Router、Vuex。这样我们后面就可以直接使用。Router: WebApp的链接路径管理系统,简单就是建立起url和页面之间的映射关系Vuex: 一个专为 Vue.js 应用程序开发的状态管理模式,简单来说就是为了方便数据的操作而建立的一个临时” 前端数据库“,用于各个组件间共享和检测数据变化。ok,我们使用IDEA导入项目,看看创建好的项目长啥样子:接下来我们引入element-ui组件(https://elem
2023-11-18 16:02:12
1045
原创 CentOS中安装常用环境
你可以在浏览器中访问 http://your_server_ip:15672(替换为你的服务器 IP 地址)并使用默认的用户名和密码(guest/guest)登录。Nginx 的主配置文件是 /etc/nginx/nginx.conf,但通常你会在 /etc/nginx/conf.d/ 目录下创建额外的配置文件。在文件中添加以下内容,替换 your_domain_or_ip 和 /path/to/your/content 为你的实际域名或 IP 地址以及内容的路径。找到 bind 参数,注释掉它。
2023-11-16 14:08:45
1038
原创 安全框架SpringSecurity-2(集成thymeleaf&集成验证码&JWT)
一、SpringSecurity 集成thymeleaf①:复制并修改工程复制04_spring_security并重命名为05_spring_security_thymeleaf②:添加配置和依赖添加thymeleaf依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf<
2023-11-13 21:40:52
807
原创 安全框架SpringSecurity-1(认证入门&数据库授权)
一、Spring Security①:什么是Spring SecuritySpring Security是一个能够为基于Spring的企业应用系统提供声明式(注解)的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重
2023-11-11 17:26:22
538
原创 07-MySQL-进阶-锁&InnoDB引擎&MySQL管理
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂全局锁:锁定数据库中的所有表。表级锁:每次操作锁住整张表。行级锁:每次操作锁住对应的行数据。
2023-11-08 09:18:50
139
原创 JUC并发编程(5)(自定义线程池 + 共享模型之工具2)
acquire->->->,如果资源用完了,返回负数,返回负数,表示失败。否则返回正数,返回正数,表示成功。如果成功,获取信号量成功。如果失败,调用,进入for循环:如果当前驱节点为头节点,调用尝试获取锁如果结果大于等于0,表明获取锁成功,调用,将当前节点设为头节点,之后又调用,唤醒后继节点。调用,第一次调用返回false,并将前驱节点改为-1,第二次循环如果再进入此方法,会进入阻塞并检查打断的方法。release->->,只要不发生整数溢出,就返回true如果返回true,调用,唤醒后继节点。
2023-11-08 09:17:21
352
原创 JUC并发编程(4)(自定义线程池 + 共享模型之工具1)
步骤1:自定义拒绝策略接口@FunctionalInterface //拒绝策略步骤2:自定义任务队列//阻塞队列,存放任务//队列的最大容量//锁//生产者条件变量//消费者条件变量//构造方法//超时阻塞获取//将时间转换为纳秒try{try {//等待超时依旧没有获取,返回null//该方法返回的是剩余时间return t;}finally {//阻塞获取try{try {return t;}finally {
2023-11-08 09:16:02
195
原创 JUC并发编程3(共享模型之内存 + 共享模型之无锁 + 共享模型之不可变)
Balking (犹豫)模式用在一个线程发现另一个线程或本线程已经做了某一件相同的事,那么本线程就无需再做 了,直接结束返回Unsafe 对象提供了非常底层的,操作内存、线程的方法,Unsafe 对象不能直接调用,只能通过反射获得。jdk8直接调用获得的unsafe不能用。static {try {//以下三个方法只执行一次,成功返回true,不成功返回false//以下方法都是在以上三个方法的基础上进行封装,会循环直到成功为止。int var5;
2023-11-08 09:15:03
123
原创 JUC并发编程2(共享模型之管程)
要点与前面的保护性暂停中的 GuardObject 不同,不需要产生结果和消费结果的线程一一对应消费队列可以用来平衡生产和消费的线程资源生产者仅负责产生结果数据,不关心数据该如何处理,而消费者专心处理结果数据消息队列是有容量限制的,满时不会再加入数据,空时不会再消耗数据JDK 中各种阻塞队列,采用的就是这种模式。
2023-11-08 09:13:18
131
原创 JUC并发编程1(线程基础 + Java线程)
创建线程的2中方式:继承Thread类;实现Runnable接口启动线程:调用线程的start()方法终止线程:调用线程的stop()方法,方法已过时,建议不要使用线程中断相关的方法:调用线程实例interrupt()方法将中断标志置为true;使用线程实例方法isInterrupted()获取中断标志;调用Thread的静态方法interrupted()获取线程是否被中断,此方法调用之后会清除中断标志(将中断标志置为false了)
2023-11-08 09:11:22
152
Sublime Text3 64bit.zip
2024-03-15
谷歌浏览器 Chrome107.0.5304.122-chrome64-stable-windows-installer.exe
2024-03-15
Windows 长截屏 FastStone Capture 9.2 Portable.zip
2024-03-15
Mac版Redis连接工具 Another-Redis-Desktop-Manager.1.6.2.dmg
2024-03-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人