- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 为什么锁对象要用final修饰
锁对象用final修饰,保证不能被修改,是出于安全考虑。因为synchronized的原理是,操作对象头的mark word,而和锁对象的类型没有关系。如果锁对象不用final修饰,就可能出现这种情况: 一个线程获取了锁对象,它内部可以对锁对象重新赋值,比如新建一个对象作为锁对象 这个新的实例对象,没有上次的锁信息,相当于锁被释放了 新的线程就会和之前的线程并行操作同步块,产生竞态条件,造成完全不可控的线程安全问题。 ...
2022-03-23 10:44:37
1226
原创 Spring的优缺点
优点: Spring是轻量级框架,可以自由选择使用哪几个Spring模块。 对代码的侵入小,应用程序对Spring API的依赖比较少。也方便整合老旧的项目。 通过控制反转与依赖注入,实现了对象依赖之间的解耦,降低了业务对象替换的复杂性 支持面向切面编程,将业务功能与额外功能分离,实现了高内聚 提供了Spring容器,统一管理对象的生命周期和配置信息 对主流的开源框架提供了很好的支持,简化开发过程,使我们更专注于业务逻辑的开发 缺点: 使
2022-03-23 09:49:43
2643
原创 JVM 提高垃圾回收效率的方法
一些常见的,可以提高垃圾回收效率的方法: 对象不再使用时,及时将它显式置为null,方便垃圾收集器快速判断 少用 System.gc(),因为它会触发Full GC 少用静态变量。静态变量会作为GC Roots,永远不会回收。 对于String的操作,使用StringBuilder或者StringBuffer,不要直接拼接字符串。因为会在堆上产生很多额外的字符串对象 分散对象创建和销毁的时机,不要突然创建或销毁大量对象,因为这样可能会触发Full GC
2022-03-22 15:22:51
911
原创 JVM中的内存泄漏与内存溢出
内存泄漏与内存溢出的区别: 内存泄漏:不再被使用的对象占用的内存空间,本应该被释放,但没有被垃圾回收掉。 内存溢出:在程序运行中,无法申请到足够的内存资源。 1、内存泄漏产生原因: 使用静态的集合类。静态变量不会被垃圾回收,而集合占用的内存又一般很大。 各种连接没有及时关闭,比如数据库连接、IO连接 一些强引用的对象,在不使用后没有置为null,导致无法被回收 变量的作用域设置不合理,存活周期过长 过多的单例模式类 解决方案:
2022-03-22 15:20:43
1777
原创 MySQL 5.5 建立 Seata TC 数据库表失败 DATETIME(6) NULL DEFAULT NULL 解决方案
解决 DATETIME(6) NULL DEFAULT NULL 问题
2022-02-14 15:27:23
2150
原创 【仓鼠啃算法】动态规划之“01背包”问题(1)
1、问题描述有N件物品,一个最多承重为W的背包。给出一个 weight[] 数组和一个 value[] 数组,weight[i] 表示第 i 件物品的重量,value[i] 表示第 i 件物品的价值。每件物品只有一个,且只能整体使用,不能分割。求解,将哪些物品装入背包后,总价值最大?2、问题分析注意,这个背包问题的要求是,每件物品只有一个,且只能整体使用。它还有两个兄弟姐妹: 如果物品可以分割成小份,就属于“贪心背包”。做法是,计算每个物品的“性价比”,然后从大到小装满背.
2022-02-05 15:27:18
360
原创 你真的了解web开发中的会话技术吗?
大家好,这里是睿智的仓鼠。对于程序设计来说,真正的难点其实在于原理和底层,而不在于代码实现。作为开发人员,只有明确了一门技术诞生的原因、独有的特点以及合适的使用场景,才能更好地在业务中进行代码实现。本文主要介绍了会话技术的基本逻辑,代码实现会在之后的文章中进行介绍。1、什么是会话所谓的会话过程就是指从打开浏览器到关闭浏览器的过程。一次会话:浏览器第一次给服务器资源发送请求,会话建立;直到有一方断开(大多数时候是浏览器断开与服务器的连接),会话结束。一次会话范围内,可以包含多次请求,收到多次响.
2021-09-07 00:28:55
730
3
原创 Druid连接MySQL数据库兼容性报错的解决方法
大家好,这里是睿智的仓鼠。注意,这篇文章限于基础的入门操作,没有使用Maven管理。报错信息先来看错误信息:警告: Cannot resolve com.mysq.jdbc.Connection.ping method. Will use 'SELECT 1' instead.java.lang.NullPointerException连接池的getConnection()方法报错,错误类型是空指针异常。解决方法解决这个问题的方法是,检查你的druid版本与mysql-connect.
2021-09-03 15:39:34
2504
2
原创 分享一款我改进的,简洁美观的Typora主题。
各位好,这里是睿智的仓鼠。 这篇文章有两个部分,简单讲述我目前的工作流,以及答应好的主题分享。我这套主题经过身边朋友的使用,一致认为比较清爽。目录1、关于Markdown工作流的推荐2、Typora主题分享3、下载地址1、关于Markdown工作流的推荐最近一个月,我在使用Markdown的方式记录学习心得。在Windows平台上,Typora是一款非常美观且高效的Markdown编辑器。我也经常在Ipad上进行记录,遗憾的是,我在Ipad端并没有找...
2021-08-29 17:38:42
3358
9
原创 分享狂神贪吃蛇代码及图片素材,包含部分个人优化
按照狂神贪吃蛇教程做出的成品程序,和大家分享 使用优快云这么久,第一次自己写文章,如有低级错误,请多包涵。 我最近在学习JavaSE进阶,按照狂神 (B站ID:遇见狂神说) 推荐的学习路径,学习到了GUI部分,受益匪浅。如果你也在自学Java,不妨去关注up,他的讲课风格很好,而且涉及全面,从Java基础,到MVC,再到SpringBoot
2021-08-03 17:20:05
6981
7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人