- 博客(19)
- 收藏
- 关注
原创 切面
package com.xdclass.demo.aspect;import com.alibaba.fastjson.JSON;import com.xdclass.demo.anno.DoLog;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.Signature;impo
2021-04-24 22:04:56
193
原创 jvm双亲委派机制
为什么要设计双亲委派机制:沙箱安全机制:避免jdk源码被篡改避免类的重复加载:当父类加载器已经加载,就没有必要让子类加载器加载一次了。
2021-01-06 15:16:28
176
转载 spring的循环依赖
前言在实际工作中,经常由于设计不佳或者各种因素,导致类之间相互依赖。这些类可能单独使用时不会出问题,但是在使用Spring进行管理的时候可能就会抛出BeanCurrentlyInCreationException等异常 。当抛出这种异常时表示Spring解决不了该循环依赖,本文将简要说明Spring对于循环依赖的解决方法。循环依赖的产生和解决的前提循环依赖的产生可能有很多种情况,例如:A的构造方法中依赖了B的实例对象,同时B的构造方法中依赖了A的实例对象A的构造方法中依赖了B的实例对象,同时B的某
2020-12-09 10:43:50
174
原创 JVM-垃圾回收算法初识
判断对象是否可以回收:引用计数法:当前对象如果被其他对象引用时加1,否则减1,当引用为0时就可以被回收了;局限:两个对象循环引用的时候,就不能作为垃圾回收了。可达性分析算法:肯定不会当作垃圾回收的对象称为GC root(根对象),如果一个对象直接或间接被根对象所引用,则这个对象就不会作为垃圾进行回收。(System Class,Native Stack,Thread,Busy Monitor可以作为GC Root)回收算法: 标记-清除没有被gc root 引用的对象先标记起来,再做清除操作;优
2020-12-07 16:59:59
141
原创 StringTable - 字符串拼接
先看一道题目://StringTable ["a","b","ab"],hashtable结构,不能扩容public static void main(String[] args) { String s1 = "a"; String s2 = "b"; String s3 = "ab"; String s4 = s1+s2; System.out.println(s3 == s4);//s3在串池中,s4在堆中,结果false
2020-12-07 14:56:43
243
原创 JVM-堆的认识(1)
Heap 堆:通过new 关键字,创建对象都会使用到堆内存。堆的特点:线程共享的,堆中对象需要考虑到线程安全问题。有垃圾回收机制。堆内存溢出:OutOfMemoryError:java heap sapce设置堆空间最大参数:-Xmx堆内存诊断工具:jps–查看当前系统中有哪些java进程jmap:查看堆内存占用情况 (jmap -heap 进程id)jconsole:图形化界面,多功能的监测工具...
2020-12-07 09:49:28
95
原创 JVM-虚拟机栈的认识(1)
虚拟机栈的认识:线程运行时需要的内存空间称为栈;每个方法调用表示一个栈帧;一个栈可以有多个栈帧组成;每个线程只有一个活动的栈帧,对应正在执行的那个方法.垃圾回收是否涉及到栈内存?不会,因为方法调用结束后会弹出栈帧,会自动的被回收掉.方法内部的局部变量是否是线程安全的(逃逸分析)如果方法内的局部变量没有逃离方法的作用访问,则是线程安全的.栈内存溢出:栈帧过多导致内存溢出(方法的递归调用)栈帧过大...
2020-12-06 22:13:17
128
原创 JVM-程序计数器的认识
先看看在jvm内存结构中的位置:程序计数器是什么?记住下一条jvm指令的地址.程序计速器的特点:线程私有的;不会存在内存溢出.
2020-12-06 21:11:41
130
原创 ArrayList的源码分析(1)
从构造方法开始说:ArrayList() 构造一个初始化容量为10的空列表,但构造函数只是给 elementData 赋值了一个空的数组,其实是在第一次添加元素时容量扩大至 10 的。public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}2.当使用无参构造函数时是把 DEFAULTCAPACITY_EMPTY_ELEMENTDATA 赋值给 elementData。 当 initialCap
2020-12-05 19:26:05
166
原创 HashMap 想说几点(1)
特点存取无序;键和值都可以为null, 但是键的位置只能一个为null;键位置是唯一的,底层的数据结构控制键的;jdk1.8之前的数据结构是:数组+链表;jdk1.8以后:数组+链表+红黑树;阈值(边界值)>8 并且数组长度>64,才将链表转红黑树,此举目的是提高查询效率。...
2020-12-03 08:44:56
302
原创 ArrayList的几点看法(1)
大数据量操作时使用带参数构造器,指定需要初始化的容量,以避免不断扩容带来的效率低的问题;2、ArrayList 一定比LinkedList插入删除元素慢吗?数组删除元素确实要比链表慢,慢在需要创建新数组,还有比较麻烦的数据拷贝,但是在ArrayList 底层不是每次删除元素都需要扩容,因此在这个方面相对于链表来说数组的性能更好LinkedList删除元素之所以效率并不高,其原理在于底层先需要对整个集合进行折半的动作,然后 又需要对集合进行遍历一次,这些操作导致效率变低3、 Arra..
2020-12-02 15:46:16
255
2
原创 mysql 行转列的实际运用
需要进行行转列的场景:姓名打怪数猪八戒10猪八戒2猪八戒12沙僧3沙僧5沙僧1熏悟空20熏悟空10熏悟空17熏悟空猪八戒沙僧47249使用cross join效率不高,随着人数增加sql越来越复杂。 select * from(select sum(kills) as 孙悟空 from user1 a join user_kills b on a.id = b.`use
2020-11-27 10:42:46
207
原创 sql使用技巧1
1.记录sql使用技巧建表语句:CREATE TABLEuser1` (CREATE TABLE user1 (id int(11) NOT NULL COMMENT ‘主键’,user_name varchar(255) DEFAULT NULL COMMENT ‘姓名’,over varchar(255) DEFAULT NULL COMMENT ‘结局’,PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;INSERT
2020-11-26 18:04:09
124
原创 Spring FactoryBean的学习
FactoryBean的学习今天跟着网上的教程学习了FactoryBean, 有了一些新的认识,可能在工作中用的比较少,所以基本上不怎么知道有这么个神奇的bean存在,之所以说他神奇,是因为他同时生成了两个bean 。第一个bean由于自定义的FactoryBean工厂是实现了FactoryBean这个接口,有 两个空实现的方法,一个是getObject(),暂时让他返回一个User类吧, 一个是getObjectType(),还有一个默认的方法(java8)支持接口内书写默认的方法,isSingl
2020-11-16 21:52:37
122
转载 自定义注解+aop完成controller打印入参和出参日志
自定义注解+aop完成controller打印入参和出参日志写在前面开始上代码写在前面相信大家在开发的时候面对controller层有打印日志的习惯,controller层无需过多代码,基本上包括入参日志打印,调用service层方法,打印返回值结果,便于后期定位问题,再有就是对controller进行try catch处理,而我作为一名很懒的开发者,基本上就是看着别人的代码复制粘贴一遍,入参...
2020-04-15 14:48:24
1599
原创 将byte数组转成poi需要的workbook
将byte数组转成poi需要的workbook最近在公司遇到一个需求,要将前端传过来的byte数组生成excel,然后将数据生成一个List<Map<String,String>> 数据给下方调用者。废话少说,直接上代码:public static List<Map<String, String>> getExcelListMap(byte[]...
2019-12-20 16:59:40
2864
1
原创 springboot有返回值异步任务调用
springboot有返回值异步任务调用编写异步调用方法在实际开发中常常会遇到需要返回值的异步调用,示例代码如下:@Async public Future<Integer> dealA() throws Exception{ System.out.println("开始分析并处理业务A数据"); long startTime = Sys...
2019-12-07 20:38:21
891
原创 Springboot 任务管理
Springboot 任务管理关于web开发的任务异步任务(无返回值异步任务调用)关于web开发的任务异步任务(无返回值异步任务调用)web应用开发中,大多数情况都是通过同步方式完成数据交互处理:但是当处理与第三方系统的交互时候容易造成相应迟缓的情况,之前大部分都是使用多线程完成此任务,除此之外还可以使用异步调用的方式解决这个问题.根据异步处理方式的不同,可以将异步任务的调用分为无返回值异步...
2019-12-07 16:29:49
453
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅