- 博客(8)
- 收藏
- 关注
原创 Synchronized锁优化过程
Synchronized锁优化过程锁优化的升级方向:对象头(以32位虚拟机为例):普通对象头包含信息如下:数组对象:Mark Word 结构如下:重量级锁:多线程竞争锁的过程:轻量级锁轻量级锁加锁过程:锁膨胀过程:自旋锁:偏向锁:锁优化的升级方向:在介绍锁优化过程之前需要了解对象头的相关知识。对象头(以32位虚拟机为例):普通对象头包含信息如下:Mark Word:由于存储对象自身的运行时数据,包括哈希码、GC分代年龄、锁状态标志等;Klass Word:类型指针,虚拟机通过这个指针来确定
2020-06-28 23:02:01
831
原创 HashMap中的扩容机制
HashMap中的扩容机制1.什么时候扩容a).集合中的元素超过扩容阈值b).数组长度小于64,且某个桶中的元素大于8;。2.三种情况a).数组中的元素未链化,即只有桶内只有一个键值对:通过hashCode得到在新数组中的索引,然后插入。if (e.next == null) newTab[e.hash & (newCap - 1)] = e;b).数组中的元素树化了:调用split()方法。else if (e instanceof TreeNode) ((T
2020-06-02 11:44:24
1523
转载 Ubuntu下 .Desktop文件设置
Ubuntu下 .Desktop文件设置可参考:创建并使用Linux 桌面启动器(.Desktop文件)PS:文件中一定不能有多余空格,否则无法启动!!!
2020-05-28 10:01:02
3127
原创 ssm项目整合中 mysql jar包版本问题
ssm项目整合中 mysql jar包版本问题IDEA报错:错误原因解决结果IDEA报错:log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).log4j:WARN Please initialize the log4j system properly.org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.i
2020-05-27 17:56:52
482
原创 Servlet学习笔记
HelloServlet 笔记一、构建Maven工程1.1 构建普通工程创建普通工程删除无关项配置Maven依赖1.2 建立moudel建立moudel更新web.xml完善moudel目录结构二、Servlet实现类编写HelloServlet类映射配置servlet 继承关系图Tomcat配置运行结果三、Servlet流程图一、构建Maven工程1.1 构建普通工程创建普通工程选择Maven工程,不通过archetype创建,点击Next;工程名、存放路径等信息填写,点击Finish。删
2020-05-20 15:18:42
226
原创 排序算法:选择排序
排序算法:选择排序一、算法介绍二、算法实现2.1 代码实现2.2 结果三、复杂度分析1.比较次数2.交换次数3.总的时间复杂度一、算法介绍与冒泡排序相比,简单排序的基本思想是每一趟排序中,比较未排序区间的所有元素,并将最小的元素放在已排序区间的尾部。二、算法实现2.1 代码实现/** * 选择排序 * @author Ricky * 2020-05-06 */public cl...
2020-05-06 10:35:11
136
原创 排序算法:冒泡排序
排序算法:冒泡排序一、排序介绍二、排序算法实现2.1 代码实现三、复杂复分析一、排序介绍冒泡算法是一种交换排序算法,两两比较相邻的元素,如果反序就进行交换,否则不进行交换;每一趟遍历,都会使得最大或最小的值排到序列的最末端,如同气泡慢慢浮到睡眠,因此将此算法命名为冒泡算法。二、排序算法实现2.1 代码实现/** * 冒泡排序,加入标记量flag,避免无意义的循环判断 * @auth...
2020-05-06 09:41:44
157
转载 ROS学习
ROS: Could not find a package configuration file provided by "amcl" with any of the following names: 问题解决问题解决方法1.查找缺少的依赖2.安装所有依赖3.重新配置空间环境4.重新编译问题在turtlebot3的catkin_ws 工作空间下进行编译操作catkin_make后出现如下错误:...
2020-04-23 14:34:53
1735
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅