自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 关于mybatis 查询两个相同字段名问题

mybatis 查询两个相同字段取值问题

2023-08-22 23:28:12 696

原创 注解编译处理器实战(Lombok实现原理)

Lombok实现原理,如何使用APT实现编译期对于代码的增强

2023-05-12 22:53:06 331

原创 对象内存分布查看工具

研究对象内存分布首先引入jar包<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.9</version> </dependency>然后就可以直接使用以下代码打印出对象的内存分布了public class Test1 { static A a= new

2021-02-07 20:06:46 177

原创 伪代码

public Map<String, List> calculateLocation(int page, int pageSize) {int pageStart = (page - 1) * pageSize + 1;int numberOfStores = new Random().nextInt(50);int daysDifference = pageStart / numberOfStores;int currentPageNumber = pageStart % number

2020-12-28 21:49:52 198

原创 关于Java中JNI的调用以及线程方法的实现

首先我们知道Java中的线程类是Thread类,而我们知道启动线程采用的是start方法,而start方法中会调用到一个native的start0方法,而Java中的native方法是通过jni的方式去调用底层C(C++)程序.本篇博客模拟Java中的创建线程的整个过程.首先我们要知道操作系统中创建线程的方法,在lInux中采用方法是pthread_create()方法int pthread_create(pthread_t *thread, const pthread_attr_t *attr, vo

2020-08-24 23:16:50 700

原创 导入excel工具类

package com.smec.mts.core.utils;import com.smec.mts.core.annotation.FileAttributes;import com.smec.mts.core.annotation.FileProperty;import com.smec.mts.core.exception.BizException;import com.smec.mts.modular.pojo.model.DiagCode;import org.apache.poi

2020-08-24 10:26:11 102

原创 深入JDK源码系列--ThreadLocal内存泄漏问题

文章开始的时候先解释一下内存泄漏和内存溢出,内存泄漏是由于不当操作(不当代码)使得某些内存无法被操作(回收),导致JVM可使用的内存莫名减少,大量的内存泄漏就会导致内存溢出。内存溢出:我们所需要的内存大于JVM所拥有的内存。言归正传,今天主要是来填坑的,上边文章讲了ThreadLocal部分源码,但是漏了一个remove()和不当操作ThreadLocal导致内存泄漏没有讲。线程中有个ThreadLocalMap对象,这个对象就是来保存本地变量的,其key就是ThreadLocal对象而value就是其对

2020-05-24 00:37:11 439

原创 深入Spring源码系列----SpringMVC如何根据URL来选择调用方法

SpringMVC以及Spring中的初始化tomcat调用Service文件下javax.servlet.ServletContainerInitializer文件中配置的类的全限域名类(org.springframework.web.Spring.SpringServletContainerInitializer),然后通过循环遍历调用实现@HandlersTypes注解中接口的类中的onS...

2020-04-19 16:23:48 463

原创 深入Spring源码解析---Spring-Bean的创建,以及Spring如何解决循环依赖问题

Spring是如何帮我维护Bean,如何进行IOC,如何解决循环依赖的呢?Spring有两个很重要的入口类:一个是ClassPathXMLApplicationContext,另一个是AnnotationConfigApplicationContext,这个两个类都是扩展至AbstractApplicationContext这个类。构造上下文环境是都会调用到AbstractApplication...

2020-04-16 23:26:28 150

原创 深入Spring源码系列----如何取消web.xml和Spring.xml这两个繁重的配置文件

我们知道,SpringMVC结合Spring最重要的两个文件是web.xml和Spring.xml,但是我们通过了注解的方式取消了这两个文件,这个通过什么方式解决这些繁琐的配置文件的呢?首先我们来看web.xml这个文件是如何替换的呢,这个是由于Tomcat启动应用的时候,首先回去找META-INF/services目录下的javax.servletContainerInitializer文件,这...

2020-04-08 17:58:31 222

原创 深入jdk源码系列---关于AQS独占式获取同步状态相关源码解析

AQS:全程AbstractQueuedSynchronizer,是Java用来构建锁或者其他同步组件的基础框架,它使用一个int类型的成员变量state来表示同步状态,通过一个内置的FIFO(先进先出)队列来完成资源获取线程的派对工作。AQS借鉴了CLH队列锁的思想。CLH队列锁是基于链表的可扩展,高性能,公平的自旋锁,申请线程仅仅在本地变量上自旋,它不断轮询前驱节点的主题,假设前驱节点释放了...

2020-04-03 00:28:31 151

原创 基于POI解析Excel文件---通过注解形式可以选中操作模板

功能:解析Excel是个很常见的需求,笔者文件是通过注解形式结合poi来解析Excel文件。第一步:引入相关依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> ...

2020-03-27 11:17:18 404

原创 深入jdk源码系列---ThreadLocal解析+流程图

ThreadLocal类的作用:为每个线程创建独立的副本,从而保证了线程安全。ThreadLocal使用代码示例:public class MyThreadLocalTest { private ThreadLocal<Integer> threadLocal=new ThreadLocal<Integer>(){ @Override ...

2020-03-24 00:04:33 1147

原创 深入Spring源码系列--Spring/Springboot 注解失效原因解析

Spring/Springboot 注解失效的原因解析现象:Spring中某些注解失效事务失效的原因:Spring进行AOP是维护的是代理对象,而第一调用代理对象中的方法,如果你在这个方法中直接调用该类中的另一个方,会导致另一个方法的增强失败,主要是由于第二调用是被代理对象去调用的。失效代码示例调用add方法是会使得queryUser方法上的@Transactional失效@Servic...

2020-03-21 23:08:10 1242

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除