- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 Object o = new Object()在内存中占了多少字节
一、 结论想要知道 Object o = new Object();在内存中占用了多少字节,可以使用如下方法直观的看到。maven中添加依赖<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.9</version></dependency>
2020-06-04 15:45:17
5242
8
原创 code review集锦
1.查过3个表的join,改用java进行数据组装我们经常会遇到前端查询列表,但是列表的数据存在于多个表中。一般少于三个表的话,我们就会使用jion语句来处理。但是超过3个表的话,用jion显然不是好办法。通常就会采用java来处理。伪代码如下://查询学生基础信息的listList<StudentVO> list = studentService.getList(request);//封装学生的其他信息buildCallCount(list);private void buil
2020-05-20 15:09:37
177
原创 leecode--单链表移除链表元素,奇偶链表
移除链表元素删除链表中等于给定值val的所有节点示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5此问题想着很简单,删除元素必须用到两个节点,一个节点cur用于遍历链表,另一个节点pre表示当前节点的前一个节点。但是还需要注意以下问题:1)如果需要删除的是链表的头节点该...
2020-03-25 20:19:00
247
原创 leecode-单链表反转
反转链表一种解决方案是按原始顺序迭代结点,并将它们逐个移动到列表的头部。算法过程说明:1.请记住,黑色结点 23 是原始的头结点首先,我们将黑色结点的下一个结点(即结点 6)移动到列表的头部:然后,我们将黑色结点的下一个结点(即结点 15)移动到列表的头部:黑色结点的下一个结点现在是空。因此,我们停止这一过程并返回新的头结点 15。代码实现算法...
2020-03-23 16:04:26
187
原创 leecode--设计单链表
在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节点。addAtTail(val):将值为 val 的节点追加到链表的最后一个元素。addAtIndex(index,val):在链表中的第 index 个节点之前添...
2020-03-20 17:48:39
232
原创 @Async如何使用
@Async注解我们都知道使用@Async标注在方法上,可以使该方法异步的调用执行。而所有异步方法的实际执行是交给TaskExecutor的。关于@Async的基本知识不做讲解,只是对于使用过程中需要的注意的点做下强调。最简单的使用1.启动类添加@EnableAsync注解package com.lara.springbootconfig;import org.springframe...
2020-03-13 19:19:38
3010
原创 ClassLoader-双亲委派模型
ClassLoader的类加载机制源码解读protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchronized (getClassLoadingLock(name)) { //1.检...
2020-03-03 17:24:23
152
原创 springBoot_配置_yaml文件值获取
前言:此文章为对springBoot源码学习的一个记录,参考视频1.简单的创建一个springBoot的项目创建项目的具体步骤,自行搜索。2.创建一个实体类package com.lara.bean;import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperti...
2020-03-01 14:38:37
390
原创 mybatis相关(持续更新)
1.mybatis编程步骤创建SqlSessionFactory对象通过SqlSessionFactory获取sqlSession对象通过sqlSession获取Mapper的代理对象通过mapper的代理对象,执行数据库操作执行成功,则使用sqlsession提交事务执行失败,则使用sqlsession回滚事务最终,关闭会话2.#{}和${}的区别${}是propertie...
2020-02-27 16:56:31
108
原创 springBoot自动配置原理
通常搭建一个基于spring的web应用,我们需要做以下工作:pom文件中引入相关的jar包,包括spring、spring mvc、redis、mybatis、log4j、mysql-connector-java等相关的jar配置web.xml,listenter配置、Filter配置、Servlet配置、log4j配置、error配置配置数据库连接、配置spring事务配置视图解析器...
2020-02-26 10:52:36
350
原创 mybatis参数处理
总结多个参数:mybatis会做特殊处理。多个参数会被封装成一个mapkey : param1….paramN,或者使用@Param注解指定的值value:传入的参数值//id获取的方式有两种 #{param1} 或者#{id}//name获取的方式有两种 #{param2}或者 #{name}selectUserByIdAndName(@Param("id") Integer...
2020-01-20 11:21:47
178
原创 加锁处理重复插入问题,包含多线程的单元测试
先说明业务场景吧:做的一个课程学习模块,要求同一个人同一个课程章节的学习记录只有一条之前的处理流程伪代码如下:if(!isExist()){ //第一步 insert(); //第二步 }即每次插入前都做判断,在大部分情况下,都不会出问题,但是并发情况下,就极有可能出现重复的数据。因为上述第二步操作依赖于第一步操作,这两步操作并不是原子性的。先看段单元测试,模...
2020-01-20 11:08:56
568
原创 线程池
并发与并行并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时并发:通过cpu算法,让用户看上去同时执行,实际上cpu操作层面不是真正的同时。并发往往在场景中有公用的资源,那么针对这个公共的资源往往产生瓶颈,我们会用TPS或者QPS来反应这个系统的处理能力。线程安全:经常用来描绘一段代码,指在并发的情况下,该代码经过多线程使用,线程的调度顺序不影响任何结果。这个时候使用多线程...
2020-01-20 11:06:59
101
原创 springBoot starter原理
通常搭建一个基于spring的web应用,我们需要做以下工作:pom文件中引入相关的jar包,包括spring、spring mvc、redis、mybatis、log4j、mysql-connector-java等相关的jar配置web.xml,listenter配置、Filter配置、Servlet配置、log4j配置、error配置配置数据库连接、配置spring事务配置视图解析器...
2020-01-20 11:05:16
268
原创 树-二叉树-广义表初始化树
先看一些基本概念1.节点的度节点拥有的子树数目称为结点的度2.二叉树二叉树是树的一种特殊情况,每个节点最多有两个子女,分别称为该节点的做子女和右子女,就是说,在二叉树中,不存在度大于2的节点。二叉树的子树有左右之分,次序不能颠倒。3.特殊二叉树3.3.1 满二叉树深度为k的满二叉树,有2的 k-1次方个节点的二叉树,每一层都达到了可以容纳的最大数量的节点3.3.2 完全二叉树...
2020-01-20 11:01:50
599
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人