- 博客(64)
- 问答 (1)
- 收藏
- 关注
原创 Android Studio SDK无法勾选安装的解决方案
这两天帮助学妹安装android studio安装SDK时无法勾选,记录一下最终解决办法。头大。
2023-12-03 20:31:34
1279
原创 使用Redis管道进行查询接口性能优化
在我们的正常项目开发过程中,我们会通过Redis缓存数据,来帮我们进行异步任务,分担外部的请求压力但是Redis缓存也有一定的限制,因为我们在向请求过来时,Redis客户端都要向服务端发送一次请求,相应的Redis就必须执行一次命令并返回数据给客户端在这之中,每一次请求都会走一次网络,都会产生一次网络IO,同样的也就会造成一定程度上的延迟,在低并发时,影响并不大,但是在高并发情况下,就会对Redis的服务端产生巨大的压力。
2023-09-25 09:22:39
435
原创 IO模型学习
一个原则:操作系统将内存划分为两部分:一个是内核空间,一个是用户空间。在linux操作系统中,内核模块运行在内核空间,相应的进程处在内核态;用户程序运行在用户态,对应的进程处于用户态。内核态的进程可以访问内核空间,也可以访问硬件设备(磁盘,网卡等)调用系统的一切资源,用户态的进程(tomcat,redis等等)没有这样的权限,也不能直接调用内核代码定义的函数。并且每个用户态的进程都有一个单独的用户空间,他要想拿到内存或磁盘中的数据,只有将进程切换到内核态然后向内核发出指令,完成调用系统资源之类的操作。
2023-09-24 21:16:17
253
原创 [JAVA基础]自动拆装箱NPE问题
当把字面量转换成包装类的时候会自动装箱 比如: Integer a = 1; Integer b = 1; 当你对包装类的对象进行运算(如加法、减法等)时,Java会自动进行拆箱操作。拆箱是将包装类型的对象转换为相应的基本类型的过程。这使得你可以在使用包装类对象的地方进行运算,而无需显式地调用、等方法来获取基本类型的值。 当进行以下运算时,会自动触发拆箱操作:例如: 在这个例子中,和对
2023-08-03 09:23:07
383
原创 【JAVA基础】原码,反码,补码
因为使用原码进行加法的运算可以实现,但是要是去进行减法的运算很困难,计算机需要进行很多操作,所以想用加法来替代掉减法使用加法来实现减法。-2 的源码是 10000010 反码(除符号位全部取反)是 11111101。两者相加 (1)00000001 需要把溢出的最高位放到最后去。所以3 的源码是 00000011 反码也是 00000011。正数的 源码反码都一样 符号位 1表示负数 0表示正数。因此 产生了补码 补码就是 给反码+1。很简单 就是本身翻译成二进制。
2023-08-03 09:01:53
128
原创 【vue基础学习】API风格
一、选项式 API使用选项式 API,我们可以用包含多个选项的对象来描述组件的逻辑,例如data、methods和mounted。选项所定义的属性都会暴露在函数内部的this上,它会指向当前的组件实例。 你也可以理解成这是vue2的写法 把逻辑部分拆分成不同的选项 有数据 方法 生命周期钩子函数<script>export default { // data() 返回的属性将会成为响应式的状态 // 并且暴露在 `
2023-07-16 14:38:21
694
原创 [VUE学习]权限管理系统前端vue实现8-右上角用户头像显示实现
也就是说此时addRoutes()已经完成啦,找到对应的路由之后,接下来将执行前往对应路由的beforeEach((to, from, next) ,因此需要用代码来判断这一次是否就是前往对应路由的beforeEach((to, from, next),如果是,就执行next()放行。在addRoutes()之后第一次访问被添加的路由会白屏,这是因为刚刚addRoutes()就立刻访问被添加的路由,然而此时addRoutes()没有执行结束,因而找不到刚刚被添加的路由导致白屏。因此next({ …
2023-07-09 20:06:27
565
转载 vue路由守卫,动态路由刷新白屏
也就是说此时addRoutes()已经完成啦,找到对应的路由之后,接下来将执行前往对应路由的beforeEach((to, from, next) ,因此需要用代码来判断这一次是否就是前往对应路由的beforeEach((to, from, next),如果是,就执行next()放行。其实在路由守卫中,只有next()是放行,其他的诸如:next(‘/logon’) 、 next(to) 或者 next({ …但是这个路由守卫中判断了如果要去的地方是’/home’,就执行next(‘/logon’),
2023-07-09 18:19:23
326
原创 【vue学习】权限管理系统前端实现5-登录功能记住密码功能实现
的作用是将数据包装成一个响应式的引用,使得数据的变化可以被 Vue 自动追踪,并触发相应的重新渲染。箭头函数是 JavaScript 中的一种函数定义方式,它可以简洁地定义一个函数而不需要使用。存储用户密码,为了安全需要加密,获取密码解密。所以我们安装依赖'jsencrypt'记住密码,我们通过cookie来实现,先安装依赖 'js-cookie':这行代码使用箭头函数的语法将一个匿名函数赋值给。是箭头函数的语法,用于定义一个没有参数的函数。util下新建jsencrypt.js。
2023-07-09 10:44:11
1145
原创 权限管理系统后端实现1-SpringSecurity执行原理概述
方法,设置到其中。FilterChainProxy是一个代理,真正起作用的是各个Filter,这些Filter作为Bean被Spring管理,是Spring Security核心,各有各的职责,不直接处理认证和授权,交由认证管理器和决策管理器处理!3、认证成功后, AuthenticationManager 身份管理器返回一个被填充满了信息的(包括上面提到的权限信息, 身份信息,细节信息,但密码通常会被移除) Authentication 实例。但拦截器里面的实现需要一些组件来实现,所以就有了。
2023-07-08 16:17:48
648
原创 【VUE学习】权限管理系统前端vue实现4-自定义icon实现
svg里面 假如 svg 图片:通过导出一个函数作为插件的形式,使得该插件可以被 Vue 应用实例使用。该函数接收一个名为app的参数,表示 Vue 应用实例。这个插件的作用是将 SVG 图标组件注册为全局组件,同时动态导入 SVG 图标文件,以便在整个应用中使用该组件来显示各种 SVG 图标。使用者只需在需要显示 SVG 图标的地方使用<svg-icon>标签,并通过属性指定具体的图标名称,插件会自动根据图标名称来加载相应的 SVG 图标文件并显示出来。
2023-07-08 16:10:09
848
原创 【VUE学习】权限管理系统前端vue实现3-登陆页面
是为了在根组件中显示当前路由对应的组件。这样,无论用户访问的是哪个路由,对应的组件都会被渲染到。中,保证了页面的动态切换和导航效果。在APP.vue添加全局。
2023-07-08 15:48:06
794
原创 [VUE学习】从头搭建权限管理系统前端2-请求与存储
主要实现 请求拦截器 把token塞到header里面相应拦截器没有写逻辑封装 get set 文件上传 请求。
2023-07-08 11:59:35
238
原创 [秋招冲刺刷题笔记]206反转链表以及3. 无重复字符的最长子串
三个节点 pre current next开始的时候 pre 指向null current指向头节点 next 指向下一个节点运行出现错误因为循环里面 最后current指向的是null所以把 pre 作为返回值 结果正确。
2023-07-06 10:35:39
257
原创 注册-Springboot整合邮件发送
5.在service里面添加接口。1.QQ邮箱开启服务 获取授权码。2.在配置文件进行相关配置。6.实现Service。4.emalDto类。
2023-07-03 08:04:55
212
原创 Java线程创建有几种方式?一种
作为一名八股专业户,在以前我一直觉得Java创建线程有三种方式那就是①继承Thread类;②实现Runnable接口;③实现Callable接口。今天刷了一篇文章才知道了线程和线程体之间的区别.
2023-06-30 01:05:23
317
原创 从字节码分析String创建的几种方式
通过idea中jclasslib插件获取到字节码对上述指令作一些解释dupldc #3 astore_1。
2023-04-11 22:41:30
412
原创 为什么JVM中,线程执行native方法时程序计数器为空
因为对native方法而言,它的方法体并不是由Java字节码构的,native方法就由原生平台直接执行,并不需要理会抽象的JVM层面上的“pc寄存器”概念——原生的CPU上真正的PC寄存器是怎样就是怎样。
2023-03-13 10:44:52
209
原创 为什么JVM规范中,程序计数器不会发生OutOfMemoryError
因为程序计数器的值用来执行下一条需要执行的字节码指令,所以他是一个可预见大小的值,所以不会outOfMemory
2023-03-13 10:41:07
360
原创 Unsupported conversion from DECIMAL to java.sql.Date
Unsupported conversion from DECIMAL to java.sql.Date
2023-02-28 19:57:45
616
原创 logback配置文件
-输出到控制台-->--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->--临界值过滤器,过滤掉低于指定临界值的日志。-->-- 设置字符集 -->
2023-02-04 19:59:03
583
原创 chatService第一阶段
最后实现了通过Aop来实现操作记录日志的功能,在这个里面也遇到了一些问题,我需要实现将当前操作的数据库相关记录的id存起来,修改和删除的可以直接获取到id,但是插入的需要使用mabatisplus回填主键来实现,通过搜索和尝试发现,使用mybatisplus自带的Insert可以自动实现回填主键,只需要在ID上设置相关的规则,自增或者雪花算法等.其次这个id也应该是一个全局变量,我就把他存储到了用户信息里面来实现这个功能.在接入sso的时候,也用到了以前没注意的在方法内发起网络请求.
2023-02-02 15:08:19
106
原创 SSO项目相关问题
接口的三级路径第一个是项目路径 就是这个context-path第二个是模块路径第三个是具体功能active: 是使用哪一个配置文件。
2023-01-31 18:59:24
81
原创 延迟队列DelayQueue
DelayQueue其实采用了装饰器模式,在对PriorityQueue进行包装下增加了延时时间获取元素的功能,其主要特点归纳如下:1.DelayQueue是一个无界阻塞队列,队列内部使用PriorityQueue来实现。2.进入队列的元素必须实现Delayed接口,在创建元素时可以指定多久才能从队列中获取当前元素,只有在延迟期满时才能从中提取元素;3.该队列头部是延迟期满后保存时间最长的Delayed元素;4.如果没有延迟未过期元素,且队列没有头部,并且poll将返回null;
2023-01-11 15:03:03
811
原创 HashMap判断两个对象相等
hashcode就是通过hash函数得来的,通俗的说,就是通过某一种算法得到的,hashcode就是在hash表中有对应的位置。hashCode比较的是哈希码,哈希码是由特定的哈希算法的出。一个对象肯定有物理地址,也有人把hashcode说成是代表对象的地址,这里肯定会让读者形成误区,对象的物理地址跟这个hashcode地址不一样,hashcode代表对象的地址说的是对象在hash表中的位置,物理地址说的对象存放在内存中的地址。
2023-01-11 14:04:57
1098
空空如也
SQLSERVERS 代码提示 如何快速选择
2021-08-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人