- 博客(14)
- 收藏
- 关注
原创 对象内存分布查看工具
研究对象内存分布首先引入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关注的人