自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java生产环境线上栈故障排查问题(COPY)

0.前言JVM自带了一堆可排查JVM运行状况的工具。But,每个工具的使用姿势、使用后果均不同。作为开发人员,需要清楚每个工具的执行结果,不然会出现随手执行一个命令、引发严重线上故障的场景。这里简要说明几个使用命令jmapjmap -dump例如, jmap -dump:format=b,file=heap.hprof 7该命令姿势会令JVM将整个heap信息dump到一个文件中。如果heap比较大,会导致这个过程比较耗时。而且,为了保证dump的信息是准确、可靠的,JVM会处在STW状态,致使

2021-08-06 14:10:09 602

原创 Java并发02:Java并发Concurrent技术发展简史(各版本JDK中的并发技术)

Java并发02:Java并发Concurrent技术发展简史(各版本JDK中的并发技术)本章主要对Java并发(Concurrent)在不同jdk版本中的发展简史进行学习。Java语言从第一版本至今,内置了对并发(Concurrent)的各种支持技术。为了能够让我们在学习Java并发(Concurrent)时,不被各种各样的并发技术弄得晕头转向,本章先对Java个版本中的主要并发技术进行简述。1.JDK1.4及之前在JDK1.4及之前的版本,主要提供的并发技术有:synchroni

2021-03-10 16:03:04 207

原创 深究Spring中Bean的生命周期

前言这其实是一道面试题,是我在面试百度的时候被问到的,当时没有答出来(因为自己真的很菜),后来在网上寻找答案,看到也是一头雾水,直到看到了《Spring in action》这本书,书上有对Bean声明周期的大致解释,但是没有代码分析,所以就自己上网寻找资料,一定要把这个Bean生命周期弄明白!网上大部分都是验证的Bean 在面试问的生命周期,其实查阅JDK还有一个完整的Bean生命周期,这同时也验证了书是具有片面性的,最fresh 的资料还是查阅原始JDK!!!一、Bean 的完整生命周期

2021-02-21 17:53:27 182

原创 本文将通过模拟Mybatis动态代理生成Mapper代理类,讲解Mybatis原理

本文将通过模拟Mybatis动态代理生成Mapper代理类,讲解Mybatis原理1.平常我们是如何使用Mapper的先写一个简单的UserMapper,它包含一个全表查询的方法,代码如下public interface UserMapper {@Select("select * from user")public List<User> queryAll();}然后大家思考一个问题,我们平时是怎么使用这个UserMapper的?很多时候我们会把Mybatis和Spring整合起

2020-06-22 18:33:00 344

原创 RSA公钥、私钥、签名和验签

1 RSA加密算法介绍RSA又叫非对称加密算法,这类加密算法有一对秘钥,其中一个用来加密一个用来解密。这一对秘钥中你可以选择一个作为私钥(自己保存),另一个作为公钥(对外公开)。用私钥加密的内容只能用对应的公钥解密,反之用公钥加密的内容只能用对应的私钥解密。还有一种对称加密算法,其加密秘钥和解密秘钥为同一个秘钥,比如DES。2 RSA加密过程假设A 产生了一对秘钥,私钥自己保存,公钥对外公开...

2019-11-20 15:58:29 889

原创 Servlet的生命周期执行流程与参数配置

Servlet的生命周期大多数资料是这样说:客户端请求该 Servlet;加载 Servlet 类到内存;实例化servlet,并调用init()方法初始化该 Servlet;service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy());调...

2019-10-11 16:00:19 123

原创 mybatis-plus 分页查询 total和pages为0的问题解决 并且有分页记录

mybatis-plus 分页配置直接在springboot 注入该插件就可以@Configuration@MapperScan(“com.magicdu.cloud.dataquery.mapper”)public class MybatisPlusConfig {/*** 分页插件*/@Beanpublic PaginationInterceptor paginationIn...

2019-09-29 14:23:21 9425 1

原创 git clone出现 fatal: unable to access 'https://github.com/...'的解决办法(亲测有效)

如下图所示,当我试图克隆别人的repo时,会发生这样的错误,当我从git:/而不是https://,克隆时,它工作得很好。发生这种情况是因为代理是在git中配置的。既然它是https代理(而不是http)git config http.proxy和git config --global http.proxy也无济于事。解决方案一1、看看你的git配置git config --global...

2019-09-27 15:42:03 213256 123

原创 分布式服务解决方案

1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,比...

2019-09-12 15:59:41 309

原创 java数据脱敏

敏感数据梳理在进行数据脱敏之前我们应该要确定公司的哪些数据(哪些表、哪些字段)要作为脱敏的目标,下面从用户、公司、卖家方面分析:1、用户:名字、手机号码、身份证号码、固定电话、收货地址、电子邮箱、银行卡号、密码等2、卖家:名字、手机号码、身份证号码、固定电话等3、公司:交易金额、优惠券码、充值码等确定脱敏规则确定好了公司的哪些数据要作为脱敏目标后,我们就需要制定脱敏的规则(具体的实施方...

2019-09-12 15:31:54 3596

原创 fastjson对象,JSON,字符串,map之间的互转

1.对象与字符串之间的互转将对象转换成为字符串String str = JSON.toJSONString(infoDo);字符串转换成为对象InfoDo infoDo = JSON.parseObject(strInfoDo, InfoDo.class);2.对象集合与字符串之间的互转将对象集合转换成为字符串String users = JSON.toJSONString(user...

2019-09-12 15:28:48 124

原创 Java 证书(keytool实例)代码实现加解密、加签、验签

一、使用keytool工具制作一个jks证书、并导出公钥进入jdk bin目录下,使用命令生成merKey.jks证书文件keytool -genkey -alias michaelkey -keypass michaelpwd -keyalg RSA -keysize 1024 -validity 3650 -keystore michael.keystore -storepass mich...

2019-08-25 13:01:29 1051

原创 java keytool证书工具使用小结

Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(Key entity)-密钥(secret key)或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trusted certificate entries)-只包含公钥.JDK中keytool...

2019-08-25 11:30:34 139

原创 堆排序java实现

一、堆排序介绍来源百度百科:堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。前面我已经有二叉树入门的文章了,当时讲解的是二叉查找树,那上面所说的完全二叉树是怎么样的一种二叉树呢??还有满二叉树又是怎么的一种二叉树呢??甚至还有完满二叉树??完全二叉树: 除了最后...

2019-08-24 12:03:08 151

原创 Java线程池ThreadPoolExecutor实现原理剖析

继承结构继承结构看起来很清晰,最顶层的Executor只提供了一个最简单的void execute(Runnable command)方法,然后是ExecutorService,ExecutorService提供了一些管理相关的方法,例如关闭、判断当前线程池的状态等,另外不同于Executor#execute,ExecutorService提供了一系列方法,可以将任务包装成一个Future,从...

2019-08-20 20:19:05 118

原创 spring 事务REQUIRES_NEW 不起作用的解决方法

spring 事务REQUIRES_NEW 不起作用的解决方法spring 的事务传播这边就不提了,各种可百度到。但在用REQUIRES_NEW的时候,发现没有起作用。原因:spring的事务管理通过切面实现,如果直接使用this.方法()或者方法(),不会触发切面中对事务的管理。应使用该方法所在的类的实例.方法()。解决方案1:需要将两个方法分别写在不同的类里。解决方案2:方法写在同一...

2019-07-12 17:21:36 937

原创 SSO单点登录

背景在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次登录,而且每个系统的账号都不一样,这对于运营人员来说,很不方便。于是,就想到是不是可以在一个系统登录,其他系统就不用登录了呢?这就是单点登录要解决的问题。单点登录英文全称Single Sign ...

2019-06-25 16:30:19 121

原创 java 单点登录

需求背景:随着公司的发展,公司内部使用的系统越来越多。但是对于使用系统的员工来说不是个好事情。1.每个系统都需要记住对应的账号和密码,很多员工都是每个系统的账户和密码都一样的。2.如果同时要使用CRM系统、WMS系统、OA系统,用户需要登录三次,如果10个系统需要登录分别登录十次,非常繁琐。3.如果不使用了,还需要分别在三个系统中依次的注销。需求:1.后台用户通过SSO系统实现统一登录,...

2019-06-23 16:17:23 248

原创 springboot集成mybatis的分页插件pageHelper

springboot集成mybatis的分页插件pageHelper1、添加分页插件依赖文件<properties> <java.version>1.8</java.version> </properties> <parent> <groupId>org.springfram...

2019-06-13 12:34:20 258 1

原创 优化代码中的if/else 方案

Java 中 优化代码中大量if/else ,以及 if/else 嵌套看见这个无限循环嵌套,,,,内心是一万只草泥马奔腾而过, 稍微数了数,10多层嵌套。接收这种项目的同学,内心应该是绝望的。出现这种情况的原因有很多设计不够完善 , 需求考虑不周 ,开发人员变动 ,最为致命的是 懒你懒,我也懒,前期迭代懒得优化,来一个需求,加一个if,久而久之,就串成了一座金字塔。if...

2019-06-12 22:44:33 411

原创 Java 基础算法篇

Java 基础算法Java 基础算法Java 基础算法话不多说,直接上干货1.算法应用之百钱买白鸡案例说明:主要内容是:公鸡5元一只,母鸡3元一只,小鸡1元三只,问100元怎样可以买100鸡?思想:想要实现此算法,需要明白其中的关系,根据公鸡5元一只,母鸡3元一只,小鸡一元三只,100元,100只鸡,最多买20只公鸡,母鸡33只,小鸡100只。代码实现:```java@Testp...

2019-06-11 21:14:22 273

原创 Java中response.setContentType常用参数

这里写自定义目录标题Java中response.setContentType常用参数Java中response.setContentType常用参数image/bmp BMPimage/png PNGimage/gif GIFimage/jpeg JPEGimage/tiff TIFFimage/x-dcx DCXimage/x-pcx PCXtext/html HTMLtex...

2019-06-11 17:13:46 1439

原创 JAVA的垃圾回收机制

一、 技术背景你要了解吧二、 哪些内存需要回收?2.1 引用计数算法2.1.1 算法分析2.1.2 优缺点2.1.3 是不是很无趣,来段代码压压惊2.2 可达性分析算法2.3 Java中的引用你了解多少2.4 对象死亡(被回收)前的最后一次挣扎2.5 方法区如何判断是否需要回收三、常用的垃圾收集算法3.1 标记-清除算法3.2 复制算法3.3 标记-整理算法3.4 分代...

2019-03-17 13:18:59 162

转载 java并发编程--Executor框架

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-01-31 15:47:45 119

空空如也

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

TA关注的人

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