240 发简信
IP属地:浙江
  • 浅拷贝和深拷贝

    clone方法 clone是定义一个Object类下基本方法之一: 使用的时候需要继承object对象,并且为了可以使其它类调用该方法,覆写克隆方法时必须将其作用域设置为pu...

  • 堆内存和栈内存

    我们常常做的是将Java内存区域简单的划分为两种: 一种叫做栈内存,一种叫做堆内存。 栈内存 栈内存又分两种,一种是虚拟机栈,一种是本地方法栈。 本地方法栈是去调用nativ...

  • volatile关键字

    要了解volatile则需要了解java的工作内存和主内存之间的关系 [图片上传失败...(image-9a6ba7-1530195663062)]在java的内存模型中,每...

  • ThreadLocal分析

    ThreadLocal介绍 ThreadLocal类用来提供线程内部的局部变量。这些变量在多线程环境下访问(通过get或set方法访问)时能保证各个线程里的变量相对独立于其他...

  • swagger-ui自定义解析

    在实际的项目过程中,会自定义一个AbstractHttpMessageConverter作为包装去统一处理返回结果: 所以在处理的过程中,属于swagger的api的json...

  • Java的类加载机制

    类加载过程 类从被加载到虚拟机内存开始,直到被卸载出内存为止,它的整个生命周期过程是: 加载 ---> 验证 ---> 准备 ---> 解析 ---> 初始化 ---> 使用...

  • Java内存模型

    Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。 Java的内存模型,采用的是共享...

  • Integer源码分析

    title: Integer源码分析date: 2017-09-11 15:07:46tags: javacategories: java Integer继承了Number类...

  • ConcurrentHashMap源码

    在并发的情况下,通常使用ConcurrentHashMap来保证程序的效率 简介 ConcurrentHashMap原理是当一个线程占用锁访问其中一个段数据的时候,其他段的数...

  • mybatis插入数据时返回主键

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数但是业务需求要求获取插入的主键然后去进行下一步操作 很简单,只要在原来的插入中...

  • mybatis插件配合SpringMVC拦截器实现操作日志统计

    在Mybatis的拦截器中,只能统计出最终执行的Sql语句,无法统计出每行语句执行的操作人。 如果想看一个用户主动对数据库的操作日志,则单使用拦截器无法实现。 可以借助Spr...

  • 控制反转(IoC)与依赖注入(DI)

    什么是控制反转 在一般情况下,如果Class A 使用到了Class B的对象,那么就要在Class A中new出来一个Class B的对象。 对象A依赖于对象B,那么对象A...

  • SpringMVC配置及源码分析

    一、环境搭建 创建一个web项目。 如果是maven项目,则直接在pom中加入springMvc依赖 如果不是就从把这些jar包丢到lib里面 二、SpringMVC配置 在...

  • springMvc同时上传文件和json

    springMvc上传文件的时候,我查找的资料都是上传单个文件,在url中传参但是实际项目中使用最多的是json传参springMvc的设计不允许同时使用requestbod...

  • SpringBoot编写自己的starter

    SpringBoot是约定优于配置产物,其核心就是所对应的starter,只要在配置文件中填写所需要的参数,就能够实现自动配置。 用阿里云ONS为例,编写一个自定义start...

  • SpringAOP使用

    问题描述 面向对象设计中有一个弊端,当需要为多个不具有继承关系的对象引入同一个公共行为时,例如日志、安全检测等,需要在每个类中都要去引用一个公共行为,这样的话会产生大量的重复...

  • Autowire原理

    Spring5的@Autowire原理分析 Autowire注解 从Autowire注解点进去看 注释的第一句话说是将构造函数、字段、setter方法或者配置方法通过由Spr...

  • List中元素置顶

    需求是这样:有一个回答列表,需要将这个回答列表中的最佳回答放置到数据的最前面。因为老项目的sql编写的异常的复杂,很难直接从sql直接对回答列表进行排序,所以退而求其次从查询...

  • 使用反射将request中的请求封装到对象中

    由于某些特殊原因不能够使用SpringMvc的自动封装去封装对象,故写了工具类,手动从HttpServletRequest中把属性注入到对象中

  • 120
    Tomcat源码学习(一):搭建Tomcat环境

    首先从官网下载源码。https://archive.apache.org/dist/tomcat/ 选择对应的版本目录下的src文件,我这边使用的是8.5.16这个版本的代码...