- 博客(58)
- 收藏
- 关注
原创 项目中AOP相关问题
答:AOP是面向切面编程,可以通过定义方法拦截器和切入点,实现将一些逻辑相同的代码块抽取到同一个模块中,这个模块就是切面。答:没有用过AspectJ,只知道AspectJ 是一个易用的功能强大的 AOP 框架,属于编译时增强,性能更高,Spring AOP是运行时增强,纯Java实现。答:Spring 的 AOP 是通过动态代理来实现的,动态代理主要有两种方式:JDK 动态代理和 CGLIB 代理。JDK 动态代理是只能代理实现了接口的类,CGLIB 动态代理是基于继承的代理,可以代理没有实现接口的类。
2024-07-28 18:44:34 331
原创 【内存溢出问题】实际开发中,一次从数据库取出过多数据,导致内存溢出问题
如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了也会导致这块内存的占用过多造成溢出,或者tomcat热部署时侯不会清理前面加载的环境,只会将context更改为新部署的,非堆存的内容就会越来越多。当应用程序线程空闲;生命周期长的对象拥有生命周期短的对象时容易引发内存泄漏,例如大集合对象拥有大数据量的业务对象的时候,可以考虑分块进行处理,然后解决一块释放一块的策略。为了避免这些问题,程序的设计和编写就应避免垃圾对象的内存占用和GC的开销。
2024-06-11 13:14:18 992 1
原创 对i += i & -i和i &= i - 1的理解
比如,i为100,其二进制为1100100,进行一次运算后i为96,二进制为1100000,再进行一次后,二进制为1000000,再进行一次后值为0。比如,初始i是65,迭代的i的值如下:66, 68, 72, 80, 96,128, 256, 512 ... 、在128之前,每次相加都是加上i的二进制不为零的最低位,达到最近的128(最近的2的次幂)后,每次都相当于乘二。i += i & -i迭代的结果是每次加i的最低次,直到加到与i最近的2的次幂。i &= i - 1每次都会消除最低位的1。
2024-06-05 14:02:30 269
原创 内存泄漏产生的原因
如果使用手动创建的线程,就算没有使用remove()方法清理数据,也不会产生线程泄漏,因为当线程被回收时,ThreadLocal也被回收,但如果使用线程池就不一定。解决方法:1.尽量少将对象长时间保存在静态变量中,如果不再使用,必须将对象删除或将静态变量设置为null。定义实体时,equals()和hashcode()方法没有重写,可能会导致内存泄漏。大量数据在静态变量中被长期引用,数据就不会释放,如果数据不再使用,就成了内存泄露。连接和流这些资源会占用内存,使用完没有关闭,可能会导致内存泄漏(不一定)。
2024-06-04 21:06:22 397
原创 optional中orElse和orElseGet
在使用时,如果默认值的计算是简单的常量或已经存在的值,可以使用 orElse 方法。如果默认值的计算涉及复杂的逻辑或需要延迟计算,可以使用 orElseGet 方法。orElseGet 方法只有在 Optional 对象为空时才会计算默认值,可以通过 Supplier 函数式接口提供延迟计算的能力。orElse 方法总是会计算默认值,无论 Optional 对象是否为空。
2024-05-31 14:08:20 371
原创 Integer的equals()和==判断
Integer作为对int的封装类,是不能使用==判断的,它重写的equals()方法可以判断对应的int值是否相等,但这样的话c==d为什么是true呢。如果范围在-128到127之间,返回的是这个cache中同一个Integer对象,他们的地址是相同的,所以==判断结果是true。从Integer的类中有一个私有类,IntegerCache.java,它缓存了从-128到127之间的所有的整数对象。当我们定义一个变量 Integer a时,调用的是valueOf()方法。
2024-05-30 14:18:35 219
原创 论文阅读——Bayesian Knowledge Fusion(贝叶斯知识融合)
该篇论文解决了不确定环境中的信息融合问题。想象一下,有多位专家针对同一情况构建概率模型,我们希望汇总他们提供的信息。直接合并每个信息可能会遇到几个问题。例如,专家们可能不同意某个事件发生的概率,或者他们可能不同意两个事件之间因果关系的方向(例如,一个人认为 A 导致 B,而另一个人认为 B 导致 A)。他们甚至可能不同意概率网络中一组变量之间的整个依赖结构。
2024-05-27 14:57:26 648
原创 链接预测.
在某些场景中,用户可能希望预测给定节点之间是否存在边,这样的任务称作链接预测任务。假设输入结点之间是全链接图,连接预测的目的是给边打上标签。
2024-05-27 14:56:20 243
原创 最大字段和——分治法
通过分治将问题分解成求[0,n/2]和[n/2 + 1, n - 1]的子问题,最终合并。其返回Status类的mSum即为要求的最大子段和。使用分治来解决最大子段和问题。
2024-05-16 13:18:24 336
原创 ArrayList为什么要实现RandomAccess接口
在遍历方法中,一般是使用索引或者迭代器来遍历,在ArrayList中,索引遍历速度是比LinkedList快的,而LinkedList中是迭代器速度更快,这个大家可以实验下。该接口只是一个标记,就是为了使用instance方法能够区分ArrayList和LinkedList,那该接口区分的作用是什么呢?该接口只是一个空接口,那么为什么ArrayList要实现它,而LinkedList却不实现它。所以,该接口的目的是判断实现它的类是否用位置索引的方式来进行遍历。
2024-04-30 21:12:19 84
原创 刷力扣中学习使用static,final
题目很简单,只要写个类似树一样的遍历即可,问题在于在一个类里面写方法时,我的想法是将每个结点都记录在一个map中,众所周知, 方法是属于类的,想将每个结点都记录在一个map变量中,只有让它属于类,而不是实例,static关键字就可以实现这一点。还有一点是遍历的方法函数没有接受参数,就不能像接收root一样进行遍历,每次调用都要从头遍历,final只允许赋值一次,就用它记录头节点,然后遍历。结果是可行的,不过也可以额外定义一个类,这个类记录,另一个类存储树结构。. - 力扣(LeetCode)
2024-04-07 17:51:28 255
原创 JVM自动内存管理——java内存区域与内存溢出异常
对于java来说,在虚拟机自动内存管理机制的帮助下,不需要为每个操作写配对的delete/free代码,不过,一但出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎么使用内存,那么排查问题将会十分困难。
2024-03-28 21:17:56 551
原创 docker使用(centos7.6)
(配置国内docker-ce的yum源)yum install docker-ce docker-ce-cli containerd.io -y (安装docker)yum install -y yum-utils device-mapper-persistent-data lvm2 (安装docker依赖环境)3、如果是no,表示关闭,打开3306端口。6、应该是yes,说明端口已经打开。进入mysql,启动成功。2、查看3306端口状态。5、再次查看3306状态。
2024-03-22 09:10:06 367
原创 long类型使用技巧(java),运算时超出int范围
如果n1 + n2 超出int 范围,计算中会先计算n1 + n2,这时计算已经出错,即使接下来按long类型计算,也没有用了。
2024-03-08 16:19:28 280
原创 杰卡德距离(Jaccard Distance)
:与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。),是用于衡量两个集合差异性的一种指标,它是杰卡德相似系数的补集,可以用来区分集合(如知识图谱)。
2024-01-24 22:18:45 618
原创 vim快速使用
vim Hello.java 加回车 ——进入vim正常模式,Hello.java是文件名,可以写其他的。按下i,I,o,O,a,A,r,R进入编辑模式。保存需要进入命令行模式,输入esc 加:加wq。20 +shift+g 定位到20行。:set nonu 不显示行号。/关键词 回车 查找。:set nu 显示行号。
2024-01-15 15:45:19 380
原创 力扣题目超出时间限制,String和StringBuilder
简单说下遇到的问题,代码就不细说了(在最后),遇到只有超出时间限制的问题,然后看那案例真的无语,但再怎么计算我代码的时间复杂度,大概也就是O(n),就这怎么就超出时间复杂度呢?直到我把String换成StringBuilder类型,直接就通过了,甚至还超过百分之八十多的人。问题就出在String了,接着我了解了两个方式的区别。在Java中,字符串的拼接可以通过多种方式实现,但其中最常见的是使用字符串连接操作符或者使用 StringBuilder类。
2024-01-13 17:06:13 928
原创 springboot 项目访问静态资源遇到的问题,WebMvcConfigurer和WebMvcConfigurationSupport
之前发过通过继承WebMvcConfigurationSupport来访问静态资源的文章——,代码如下这个方法是可行的,但会带来一个小问题。
2024-01-12 15:28:42 711
原创 力扣题——2645.构造有效字符串的最少插入数
然后一想,栈里面不就只有三种情况吗,没有字母,只有a,只有a和b,那不就可以直接用一个int表示吗, 0代表没有元素,1代表a,2代表ab。,你可以向其中任何位置插入 "a"、"b" 或 "c" 任意次,返回使。第一想法用一个栈存放进栈的a,b,到c时出栈,不是则补a,b,c就行了。如果字符串可以由 "abc" 串联多次得到,则认为该字符串。需要插入的最少字母数。运行时间超过100%
2024-01-11 19:48:59 503
原创 补充前端访问静态资源的一个错误
注意,前端访问时带上本地服务端的host,例如http://localhost:8080,后端改写的代码如下,注意file后面一定是三个‘/’,不然的化虽然能解析,但访问不到。
2024-01-10 12:00:00 640
原创 img标签的奇怪问题
本来只是为实现一个轮播图,img的url地址是从后端接口获取的,但不巧的是url地址的图片都过期了。因为懒得重新到网上找图,就想直接用一下本地的图片,简单的想法遇到一堆问题。
2024-01-09 20:51:40 814
原创 路由跳转,结果页面不显示
遇到一个很少见的问题,基本不可能遇到,一直对前端路由跳转的name属性比较随意,因为分教师和学生两个不同的角色,导航页面写的不同角色登录不同导航,这个本来没有任何问题。问题出在我在路由跳转的两个name属性中用了同一个名字‘score’,因为不同角色显示不同的导航,所以一时没有发现这个问题,当我登录学生角色跳转页面时,页面一片空白。注意:name属性不能写相同的值,不然只有其中一个能跳转,正常也不可能遇到这种问题吧。
2024-01-06 00:16:30 429
原创 力扣第一百道题,记录一下——x 的平方根
只能说写代码题没有简单和困难,只有坚持和细心,还记得写两数之和时,半天才写出来(真半天,不是形容词!),庆祝下力扣刷一百题,再接再厉,也庆祝各位大佬们刷一千题,一万题!本来第一百题特地挑一题简单题刷一下,结果自信写出来,第一次提交还错误,怎么想逻辑都没问题,那很大可能就跟数字大小有关了,改成long之后果然没问题了。很容易想到用二分查找,但有一点要注意,mid的平方计算时要强转成long类型,因为如果x很大的话,取x的一半算平方很容易就超出int范围。由于返回类型是整数,结果只保留。
2024-01-04 21:38:41 472
原创 springboot版本2.6以上使用swagger报错问题
springboot版本2.6以上使用swagger,会出现包扫描为空的错误。在application.properties中加上。将spring boot版本到2.5以下。
2023-12-20 14:52:45 545
原创 a标签的target属性
a> 标签的 target 属性规定在何处打开链接文档。_self : 在当前窗口打开被链接文档。_blank:在新窗口打开被链接文档。就是常见浏览网页打开链接的方式。
2023-12-16 13:11:14 410
原创 v-cloak指令
先隐藏标签内的内容,待组件加载完毕后再出现,并删除v-cloak指令。防止页面频繁加载,页面渲染太慢导致双大括号在屏幕上闪现。
2023-12-16 12:56:16 350
原创 用vite创建vue项目
cd到要创建vue的文件中, my-project是文件名,模板是vue。1.node.js版本大于等于12。之后选择vue和自己需要的即可。
2023-12-13 22:15:00 354
原创 byte,tinyint
如果 int 数据的值在 tinyint 的范围内(即 0 到 127),那么将其转换为 byte 或直接使用 int 在数据库中没有本质的区别。两者在数据库层面都是合法的。
2023-12-07 14:50:01 386
原创 @Transactional,事务一致性
在同时修改多张表时,要在方法上加@Transactional注解,能保证事务的一致性。一旦该方法在执行中出现异常,就会立刻回滚事务,防止只修改其中一张表。
2023-12-06 22:12:16 578
原创 mapper.xml中<where>
是 MyBatis 提供的一个用于动态生成 WHERE 子句的标签。它会在满足其中条件的情况下自动添加 "WHERE" 关键字,并在条件之间添加适当的逻辑运算符(如 "AND")
2023-12-02 15:22:18 1287 1
原创 让sql语句既能查所有,又能查前几行的技巧
这样number值为几 ,就可以返回几行;而number设为0时,会不执行limit,从而查所有数据。
2023-12-02 11:35:00 355 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人