自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 技术评审文档格式

技术评审设计文档格式参考1.背景和业务价值背景介绍业务价值2.技术设计2.1系统架构设计变动2.2 领域对象设计2.3 技术模块设计2.3.1 业务流程图2.3.2 数据库表变化对接接口/API设计2.4 稳定性保障2.4.1 测试方案2.4.2 多维度评估2.5 代码评审3 工作量评估和排期4 评审纪要(记录问题以及后续解决方案)

2023-12-08 11:26:07 399

原创 记录一次poi-tl使用,把多个word合成一个word

java多个word合成一个word

2023-03-20 17:33:10 574

原创 springboot+mybatis+druid多数据源配置

springboot+mybatis+druid多数据源配置

2022-10-27 11:36:29 708

原创 计算Java对象大小

计算Java对象内存大小

2022-10-20 00:08:22 410

原创 easypoi导出多个Excel压缩zip下载

easypoi导出多个Excel压缩zip下载

2022-10-08 22:13:44 700

原创 Java导出多个excel压缩成zip下载

Java导出多个excel压缩成zip下载

2022-10-08 17:36:48 974 4

原创 DCL单例(懒汉)模式

/** * DCL 懒汉模式 * new Singleton() JVM执行过程 * 1.给对象分配内存 * 2.实例化对象 * 3.对象引用指向内存 singleton == ??? * 编译器为了提升执行效率会指令重排,执行顺序并不会1.2.3, * 要是一个线程执行1,3还没有执行2,第二个线程进来看到singleton != null,内存地址不是空的,但是对象还是空对象,拿对象去使用就会报空指针 */public class Singleton { /** .

2022-04-25 17:43:35 291

原创 对JVM的一些笔记

Linux IO 模型1.阻塞IO2.异步非阻塞IO3.IO复用4.信号驱动IO5.异步IOJava 类加载器自定义类加载器 Custom ClassLoader启动类加载器 Application ClassLoader扩展类加载器 Extension ClassLoader引导类加载器 Bootstrap ClassLoaderJVM运行时数据区线程私有:程序计数器 记录程序运行位置线程私有栈本地方法栈 通过JNI调用c,c#语言的方法线

2022-04-24 17:58:28 144

原创 Jmeter Java Request(编写Java业务代码)

jmeter 编写java代码

2022-01-24 22:37:15 1321

原创 JVM笔记

Linux IO 模型 1.阻塞IO 2.异步非阻塞IO 3.IO复用 4.信号驱动IO 5.异步IOJava 类加载器自定义类加载器 Custom ClassLoader 启动类加载器 Application ClassLoader 扩展类加载器 Extension ClassLoader 引导类加载器 Bootstrap ClassLoaderJVM运行时数据区 线程私有: ...

2021-03-13 15:26:17 73

原创 常用的垃圾回收算法 jvm垃圾回收

常用的垃圾回收算法引用计数法(Reference Counting)原理:对于一个对象A,任何对象引用A,则A的引用计数器+1,引用失效则-1,当引用计数为0的时候,则进行回收缺陷:不能解决循环引用,当A和B互相引用的时候,引用计数器就不会为0,则无法回收,造成内存泄漏,最终会内存溢出。可达对象:通过根对象进行引用搜索,最终可以达到的对象不可达对象:通过根对象进行引用搜索,最终不可达的对象注意:由于不能解决循环引用,所以Java虚拟机并没有采用标记-清除算法(Mark-Sw

2020-09-21 18:24:51 221

原创 JVM 配置参数

JVM 配置参数其他配置参数栈帧中的局部变量表中的槽位是可以重用的,超过作用域,并且被重用是可以被gc顺利回收的 -Xss:栈空间的大小,栈越大,调用的方法就越多,越深-XX:+PrintGC:可以看到垃圾回收前后堆的大小-XX:+DoEscapeAnalysis:启用逃逸分析(局部对象不逃逸,成员对象会逃逸)-XX:+EliminateAllocations开启了标量替换(默认打开)-XX:-UseTLAB关闭了TLAB-XX:PermSize和-XX:MaxPermSize指

2020-09-19 18:09:19 201

原创 spring even事件模式 监听者模式

Spring Even事件1.1 定义一个数据源,业务数据user类(监听user业务数据变化,做对应的改变)package serviceprovider.demo.test.even.source;/** * @program: Alibaba * @description: 用户类 * @author: Wei Zeng * @create: 2020-09-03 18:24 */public class User { private String name;

2020-09-04 11:21:41 326

原创 Java事件监听设计模式(通俗易懂)

事情监听设计模式(通俗易懂)这样一个场景:小狗要吃饭,爸爸妈妈收到他吃饭的消息有哪些类呢Dog:小狗,要被人监听了(事件源)PeopleEventLister:监听者的抽象接口,到时具体哪个类要监听小狗吃饭就要实现他PeopleListersManager:管理监听者的类代码小狗类package com.example.demo.event;import java.util.EventObject;/*** @program: demo* @description:

2020-08-10 16:44:47 1630

原创 java并发编程思维导图

java并发编程思维导图

2020-06-08 14:50:59 156

原创 JVM 垃圾收器

并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾收集程序运行于另一个CPU上。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N8189IpI-1587023418895)(http://reade...

2020-04-16 15:51:34 141

原创 JVM垃圾收集算法

文章目录标记-清除算法复制算法标记-整理算法分代收集算法标记-清除算法最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如同它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,它的标记过程其实在前一节讲述对象标记判定时已经介绍过了。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其不足进行改进...

2020-04-14 17:30:41 95

原创 对象回收

在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)引用计数算法很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的客观地说,引用...

2020-04-13 18:09:38 257

原创 对象在JVM中的定位访问

建立对象是为了使用对象,我们的Java程序需要通过栈上的reference数据来操作堆上的具体对象。由于reference类型在Java虚拟机规范中只规定了一个指向对象的引用,并没有定义这个引用应该通过何种方式去定位、访问堆中的对象的具体位置,所以对象访问方式也是取决于虚拟机实现而定的。目前主流的访问方式有使用句柄和直接指针两种。句柄访问如果使用句柄访问的话,那么Java堆中将会划分出一...

2020-04-13 18:09:08 131

原创 HotSpot虚拟机中,对象在内存中存储的布局

文章目录对象头(Header)实例数据部分对齐填充对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)对象头(Header)HotSpot虚拟机的对象头包括两部分信息第一部分用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部...

2020-04-13 18:08:31 244

原创 深入探讨HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程

对象的创建虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定(如何确定将在2.3.2节中介绍),为对象分配空间的任务等同于把一块确定大小的内存从J...

2020-04-13 18:07:51 167

原创 JVM 运行时数据区

JVM 运行时数据区JVM 运行时数据区1.程序计数器(Program Cunter Register)2.Java虚拟机栈(Java Virtual Machine Stack)3.本地方法栈(Native Methond Stack)4.Java堆(Java Heap)5.方法区(Methond Area)6.直接内存(Direct Memroy)JVM 运行时数据区1.程序计数器(Pr...

2020-04-10 17:09:35 117

原创 idea 给创建的类和方法添加注释

给新创建的类添加注释1.打开设置 - 2.找到 Editor —> File and Code Themplates —> Class3.添加自己需要的内容/***@program: ${PROJECT_NAME}*@description: ${description}*@author: Wei Zeng*@create: ${YEAR}-${MONTH}-...

2020-02-12 22:47:21 1172

原创 Redis的持久化RDB与AOF

Redis的持久化redi提供了不同范围的持久化选项1:RDB持久性按指定的时间间隔执行数据集的时间点快照2:AOF持久性会记录服务器接收的每个写入操作,这些操作将在服务器启动时再次播放,以重建原始数据集。使用与Redis协议本身相同的格式记录命令,并且采用仅追加方式。当日志太大时,Redis可以在后台重写日志。3:你不想持久化,可以直接禁用持久化4:可以在同一实例中同时合并A...

2020-01-15 13:13:10 139

原创 数据库MVCC模式(多并发版本控制,避免幻读)

数据库MVCCMulti-Version Concurrency Control 多版本并发控制,MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问;在编程语言中实现事务内存。大多数的MySQL事务型存储引擎,如InnoDB,Falcon以及PBXT都在使用一种简单的行锁机制。事实上,他们都和另外一种用来增加并发性的被称为“多版本并发控制(MVCC)”的机制来一...

2020-01-14 23:42:29 847

原创 数据库三大范式

数据库三大范式1NF(第一范式):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性简单来讲就是: 每一字段(属性)不能再拆分了2NF(第二范式):满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情简单来说就是:一张表只描述一件事情3NF(第三范式):必须先满足第二范式(2N...

2020-01-14 23:40:41 145

原创 数据库事务

数据库事务1.数据库的特性原子性 Atomic一致性 Consistency隔离性 Isolation持久性 Durability特性说明原子性 Atomic一次事务的多个数据库操作是不可分割的原子单元,所有操作要么成功,要么失败,不会有第三种状态一致性 Consistency一个事务或者多个事务的操作后,数据库所处的状态和业务规则是一致的;简单来说...

2020-01-14 23:40:00 124

原创 Explain对select语句的了解

explain是什么?MySQL8.0文档:explain提供了MySQL执行语句的信息explain可以显示select,insert,update,delete,replace语句的信息explain和可解释性语句执行时,MySQL将显示来自优化器的有关执行语句的优化信息explain与不可解释的语句一起使用时,它将显示在命名连接中执行的语句的执行计划对于selec...

2020-01-14 23:07:24 1339

原创 Fiddler对安卓:小米 进行抓包

Fildder对安卓手机进行抓包下载链接 : fiddler.腾讯下载快一点: fidder.安装,打开设置允许远程连接fiddler设置完毕,查看电脑IP手机设置—请确保你的手机和电脑是在同一的局域网,主机名就是你电脑的ip,端口就是你fiddler默认设置888...

2019-11-29 15:26:47 3199

原创 Springboot 整合redis 精简版

Springboot 整合redis 精简版pom.xml<!--Redis 依赖 Strat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta...

2019-07-31 10:38:17 444

原创 Redis轻量级的消息队列

redis轻量级的消息队列redis有两种模式:生产者消费者模式发布者与订阅者模式我们先看看redis的官方文档介绍Redis列表为了解释List数据类型,最好从一点理论开始,因为术语List经常被信息技术人员以不正当的方式使用。例如,“Python Lists”不是名称所暗示的(Linked Lists),而是Arrays(实际上相同的数据类型在Ruby中称为Array)...

2019-07-26 14:39:53 447

原创 设计模式---简单工厂模式(通俗易懂)

工厂模式字面理解就是我们要什么,工厂就给我们生产什么!就是这么Esay!1. 我们需要一个商品的接口,商品可以干嘛呢,就是制造对吧!我们生产(衣服,鞋子,裤子为例)Dome1.1.商品接口package com.example.demo.DesginMode.工厂模式;/** * @Author: zengwei * @Date: 2019/6/15 15:49 * @Ver...

2019-06-15 16:14:24 464

原创 MessageFormat.format使用

MessageFormat.format使用package com.jeagine.controller.uapp;import java.text.MessageFormat;/** * @Author: zengwei * @Date: 2019/4/28 10:23 * @Version 1.0 */public class Test { public stat...

2019-04-28 10:40:00 254

原创 HttpClien模拟浏览器请求

1:添加必要的依赖 <!-- Apache Http Begin --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifact...

2019-04-18 19:42:30 857

原创 Spring Boot 整合 Druid

1.先看看依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactI...

2019-04-09 16:30:50 147

原创 Spring AOP注解

这是注解类package com.example.demo.Test;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.*;import org.springframework.stereotype.Compon...

2019-04-01 08:49:34 173

原创 MIME字符串与普通字符串(中文)的转换

MIME字符串与普通字符串(中文)的转换需要用到java自带的两个工具类URLEncoder和URLDecoder**将application/x-www-form-urlencoded MIME字符串转成普通字符串,并指定编码格式URLDecoder.decode(String s, “UTF-8”) String encode = URLEncoder.encode...

2019-03-29 13:45:06 1524

原创 数据结构

数据结构数据结构 一个结构类型的数据对象的结构S由其元素集合C和元素之间的关系集R组成: S = ( C , R) S:称为数据的逻辑结构,简称数据结构。数据结构分类(根据元素之间的不同特性划分)1.集合:数据元素之间未定义特定的关系2.线性结构:数据元素之间存在一个一对一的线性关系3.树形结构:数据元素之间存在一对多的层次关系4.图结...

2019-03-12 11:47:21 226

原创 Java虚拟机内存

2019-02-27 10:39:36 150

原创 对象集合排序,两个属性排序

实体类package com.funtl.hello.spring.web.admin.ribbon.Test;public class User { private String name; private int age; public User(String name,int age){ this.name = name; ...

2019-01-25 16:38:46 1254 1

空空如也

空空如也

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

TA关注的人

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