自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 判断url能否访问

返回值如果是200表示能访问通,其他都表示该网址不能访问。

2023-11-02 10:31:25 803

原创 mybatisplus使用技巧

【代码】mybatisplus使用技巧。

2023-10-18 14:47:39 600

原创 idea将jar包deploy到本地仓库

其中url是你本地仓库的地址。注意:1和2的id要一致。

2023-10-09 14:56:29 1967

原创 关于全局异常提示

假如日期格式传的不对,这个注解校验的时候没有友好提示,反而是报出网络异常,且是HttpMessageNotReadableException异常下的格式异常。

2023-06-20 11:14:22 286

原创 关于pdf和其zip格式的导出

/** * 生成转账PDF * @param withdrawPdfMoreQO * @return */ @PostMapping("/transfer/pdf") public HttpServletResponse transferPdf(HttpServletResponse response, @RequestBody @Validated WithdrawPdfMoreQO withdrawPdfMoreQO) throws Except.

2021-12-14 17:55:11 586

原创 关于导出文件的两种思考方式

有时候我们需要做文件导出的需求,这里以导出excel文件为例,给出两种方式。1、文件内数据不是很多的时候,比如只有“千”这个数量级的时候,我们可以用“流”的方式从客户端导出,如下代码示例:/** * 入账记录导出为excel表 * @param response * @param qo * @return * @throws IOException */ @PostMapping("/records/income/export")

2021-09-18 14:38:05 957

原创 gitlab去除本地文件

我们在gitlab上新建一个文件,然后本地新建一个这个文件,然后准备将本地推送到远程时,以下命令“git add .”推送了所有本地文件,包括本地配置文件,如"mvn,mvnw,mvnw.cmd“文件,这是不应该推送到远程的,那怎么删除呢?现在本地的”.gitignore“文件中添加你想删除的文件,如下然后通过在terminal终端输入以下git命令就可删除git rm -rf --cached .git add .git commit -m 'update .gitignor..

2021-08-24 13:56:42 247

原创 利用线程模拟一个简单的商品生产和消费

首先是商品类,里面有商品生产和扣库存的方法:package com.chen.test.demo3;/** * @Description: * @Author chenjianwen * @Date 2021/3/15 **/public class Product { private static volatile int p = 1; //假设这里只有一个并保持一个有效商品 /** * 生产商品 * @throws InterruptedExc

2021-03-15 16:34:49 124

原创 手写一个单向链表

package com.chen.test;/** * @Description: 手写一个单向链表 * @Author chenjianwen * @Date 2021/3/11 **/public class MySingleLinkedList<E> { private Node<E> first; //该链表的头节点 private Node<E> last; //该链表的尾节点 private int size; //该.

2021-03-11 11:18:38 137

原创 手写一个双向链表

package com.chen.test;/** * @Description: 手写一个双向链表 * @Author chenjianwen * @Date 2021/3/10 **/public class MyLinkedList<E> { private Node<E> first; //该链表的首节点 private Node<E> last; //该链表的尾节点 private int size; //改链表的大小.

2021-03-11 10:52:27 218

原创 excel和csv文件导出

这里做一个excel和csv以流的形式导出到客户端的案例,即为可以在postman端直接调用可下载的。这里我用的是第三方依赖是hutool,里面有可直接使用的工具方法。其maven依赖如下:<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.7</versio...

2020-09-22 09:51:32 792

原创 git stash的使用

情景:当我们本地开发一个需求进行中时,未提交,未推送到远程,我们称之为需求1。此时突然有一个bug需要修复,我们称之为需求2。矛盾点是:需求1未提交,如果我们直接开发需求2,然后推送到远程,就会连带着需求1一起推送过去,但是需求1并没有开发完,推送到远程显然是不符合的。此时就需要用到git stash了,如下:然后他就暂时存储在一个暂存区,你之前需求1写的代码都存储起来了,在你...

2020-04-15 14:52:14 173

原创 git fetch和update project的使用

(1)git fetchgit fetch在这里:使用情景:当别人上传自己的分支到git远程,但是你在本地这里看不到的时候可使用git fetch,之后就能看到对方推上去的分支了。(2)update projectupdate project在这里:使用情景:当你使用git pull拉取远程代码而发生冲突的时候,使用update project命令可打...

2020-04-07 18:06:14 11482 1

原创 邮箱,短信等消息站台服务总结

最近公司准备搞分布式,需要将原代码按功能等一个个抽离出来,我负责弄邮箱短信部分,经历了半个月的折磨,总算搞出来了,这里做个总结,有许多之前没弄过的,算是由0到1的一个过程。 整个思路过程如下: 比较简单的,对外暴露的仅仅只是api接口,内部最重要的是一个实体类,用于存储需上传的数据,再发送给mq,然后消费mq中的信息。 ...

2020-04-07 17:56:28 502

原创 git命令git tag之打标签的使用

背景: 我们项目上线的时候,由于需要将每次上线的内容整理成一条时间轴线以及确认每次上线什么东西,git tag打标签就用到了。使用: github上你打的标签在release可以看到,由于现在没有打标签,所以什么都没有。在idea上打标签的步骤如下:1、打标签第一步:vcs ——> git ——> tag第二步:Tag Na...

2020-01-19 11:24:10 873

原创 MongoDB的安装

mongodb作为nosql数据库,存储文档资料很有用,存储格式类似于json形式,下面主要介绍他的安装:一、windows平台1、去官网 https://www.mongodb.com/download-center/enterprise 下载,选择好自己的机型:2、正常的下一步安装,结构目录如下:3、配置bin目录环境变量,在命令行执行 mongod --versi...

2019-12-16 14:37:00 113

原创 关于比较器Comparator排序时间的问题

最近涉及一个需要按照时间排序的问题,由于在数据库层面order by太麻烦,所以就准备在代码层面解决,但是过程中遇到了一个很有意思的问题。 先介绍一下用的比较器的api:o1大于o2,则返回正数;o1等于o2,则返回0;o1小于o2,则返回负数。先弄一个实体类:package com.chenjianwen.test;import java...

2019-12-12 10:24:55 5463

原创 mysql语句update之联合更新

最近遇到一个小问题,数据库方面的,两张表有主外键关系,其中一个表添加一个字段,在另一个表中是有值的,并把这个字段同步更新到这张表中,说起来有点绕,还是看具体案例吧。学生表(student) 班级表(class) 由以上两张表可知,一个班级对应多个学生,所以将班级表的主键作为学生表的外键 。...

2019-12-04 09:27:18 602

原创 数据库隔离级别辨析

数据库的隔离级别有四种:读未提交 ----> read uncommitted读已提交 ----> read committed可重复读 ----> repeatable read序列化 ----> seriali...

2019-12-02 13:29:40 131

原创 多线程之 volatile 关键字随笔

1、volatile的作用学习多线程始终跳不过“volatile”这个关键字,最大的作用是:多线程的共享可见性。什么意思,下面画个图就明白了: 每个线程都有自己的私有数据栈,他们取值都是从自己的数据栈中取,但是我们修改这个值是在公共堆栈中进行的,所以我们希望每个线程都从公共堆栈中取值,那么就把这个值设定为volatile。如下,代码演示:package com.c...

2019-11-14 16:48:44 162

原创 lambda表达式常用篇

这里介绍一下lambda表达式,主要是平时写代码常用的,也许不全面,但是常用的我会很详细的介绍的,其原理大家有兴趣可以自己探索,我看中的是它的应用价值,废话不多说,直接进入主题。 lambda表达式形式其实比较简单的,如下,基本上都这样的,更加具体的,看如下代码() -> statement() -> {statement}(param1,pa...

2019-11-07 15:30:41 3726 1

原创 利用hutool工具发送邮件

最近公司有发送给用户发送邮件消息功能,找了一下,利用hutool工具挺简单的,它封装的挺彻底的。直接上代码吧。首先,引入maven,如下:<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <versi...

2019-08-30 13:34:14 15183 9

原创 关于mybatis标签<foreach>的使用总结

我们在使用mybatis循环遍历的时候,经常会用到<foreach>标签,如下:<foreach collection="array" item="item" index="index" open="(" separator="," close=")"> #{item}</foreach>这里面有6个元素,需要注意,分别是:collecti...

2019-08-22 14:26:16 939

原创 项目细节总结

这里记录一些项目中一些细节,便于以后查找方便。一、实体类的定义 我们在定义实体类时,一般会定义三个:param,po,vo三个实体对象,一般这三个对象内部属性大体上保持一致,只是功能不一样,param用于从前端接受参数,po用于数据库持久层操作,vo用于向前端传递参数。那么问题时,必要时,我们需要转换这三个对象,用的工具是spring里面的BeanUtils,.........

2019-07-19 09:21:57 780

原创 找不到MSVCP140.dll或VCRUNTIME40.dll文件

大家用windows电脑启动某些程序时,有时候会遇到这样的错误:这是由于你的 电脑缺失“Microsoft Visual C++ 2015 Redistributable”这个软件,去官网下载一个即可:地址如下:https://www.microsoft.com/en-us/download/details.aspx?id=53587然后这里点击下载就可以了:...

2019-07-17 09:54:41 5167

原创 一个OutOfMemoryError的实例

OutOfMemoryError,即内存溢出异常,代码中常见的错误,一下介绍一个重量级的武器,坑害他人必备。友情提示:该行为有可能导致电脑死机。@Testpublic void stackThread(){ while(true){ new Thread(){ @Override public vo...

2019-07-07 14:08:57 294

原创 通过递归调用来测试虚拟机栈的深度

我们知道在JVM内存模型中有个虚拟机栈的存在,它存在的目的是保存方法以及局部变量。 栈其原理是:它本身是一个栈的结构,那么栈的结构特点是,压栈和弹栈,当调用一个方法时,就创建一个该方法的栈帧,将其压入到虚拟机栈中,当该方法执行结束时,就将该栈帧弹出虚拟机栈。 按照这种原理,如果给定一个虚拟机的栈的深度,即栈的缓存容量,并且入栈和弹栈的效率假设是一样的话,那么...

2019-07-07 11:29:28 643

原创 利用反射访问private修饰的方法

我们知道一个类中被private修饰的方法具有封装特性,即为我们从外部是无法访问它的,先建一个基本的bean:package org.chenjianwen.reflect;public class ReflectBean { private String bye(String tag){ return tag; }}先从外部创建对象去访问这个方...

2019-07-05 21:08:40 711

原创 map的应用技巧

前些时间项目遇到一个有意思的问题,让我对map有了一个新的认知,先介绍背景吧:package com.chen.test;public class Employee { private Integer num; private String name; public Employee(Integer num, String name) { th...

2019-06-05 10:53:27 151

原创 web项目中关于日期查询的问题

做javaWEB项目时,对于时间的处理上总会出现一些非常细致的问题,这里总结一下,方便以后查询。 一、 有时候前端显示页不是日期区间,而是就一个日期,也就是查当天的日期,比方说,就查2019-05-22这一天的数据量,这里转换到后端的意思即为查2019-05-22 00:00:00到2019-05-22 23:59:59这个日期区间的数据记录,这时候就需要转换一下:...

2019-05-22 13:49:58 869

原创 mysql集群的搭建

数据库是用来存储数据的,那么数据的重要性不言而喻,那么只用一台数据库存储数据是非常危险的,比如,如果这台数据库或者部署这台数据库的服务器崩溃了,那么这段时间的系统崩溃可能会造成不良的用户体验,进而导致经济效益的下滑。 于是,我们就这样设想,如果有多台数据库提供服务支持,即使有一台崩溃了,还有其他的数据库顶上去干活那不就完事了,确实,这些若干个数据库共同组成了一个集群,...

2019-04-25 18:20:54 12731 1

原创 JVM虚拟机面试知识点之言简意赅篇

3年及以上Java老程序员面试的时候不可避免的会面对JVM虚拟机方面知识点的面试,但是深入了解JVM虚拟机内容太过于详细且深奥,下面就我对面试的认知将本书重要的知识点抽出来进行一次总结,总结比较简单,适合有基础的看,没基础的还是看书为好。 面试主要考以下内容: (1)Java内存模型; (2)判断对象是否已死...

2019-03-14 23:30:47 219

原创 mysql使用合适的存储类型存储数据

       在mysql中,存储时间可以使用varchar类型,也可以使用datetime,timestamp,或者是date类型。但是还可以使用int类型,只需要通过一些函数转换即可。      例如建立下面一个表:CREATE TABLE test( id INT AUTO_INCREMENT NOT NULL, timsstr INT, PRIMARY KEY(id));...

2019-02-01 17:46:00 4371

原创 如何找出list中重复的数据以及重复数据的个数?

       今天被问到了一个面试题,挺有意思的,这里特意的记录一下,问题是这样的:怎么从list中找出重复数据,以及这些重复数据的个数?       解决思路是:使用一个map,key用来记录list中的数据,value用来记录重复数据的个数,然后操作map来获取list中的重复数据即可,代码如下:package com.Jevin.test;import java.util.Ar...

2019-01-10 15:06:31 31870 8

原创 Java排序算法之快速排序

        快速排序,顾名思义,速度快;其时间复杂度为(NlogN),那么它是如何运作来实现高速排序的呢?先讲一下它的基本原理:        (1)寻找到一个枢纽元,也就是在一组元素中找一个元素(怎么找是有讲究的);        (2)然后在这组元素中,比这个枢纽元小的放在左边,比其大的放在右边;        (3)然后对左右重复上述两步,即可实现从小到大排序;     ...

2018-12-17 17:46:35 19232 13

原创 Java算法之归并排序

       这里我们说说归并排序,其最坏的时间维度是O(NlogN),其思想是利用了“分治法”。       所谓的“分治法”即为:当一个大问题难以解决时,我们将其分为若干个小问题,然后将这些小问题解决了,那么大问题也就顺利解决了。那么怎么将其具体于排序上面呢?分两步:(1)拆分;(2)合并。       (1)拆分       当一组数据没法排序时,我们将其一分为二,发现他的一半还...

2018-12-13 17:24:31 116

原创 WebService入门实例

       最近接触WebService,听说是一个跨语言,夸操作系统的远程调用。作为一个新手,对各种的概念实在是头大,对于它的什么soup,uddi,wsdl什么的概念的什么东西我们这里就不介绍了,网上有许多,这里我们通过一个实例来初步的认识webservice。      (1)首先创建一个接口和实现类,注意注解和导的包。package com.Jevin.webservice.d...

2018-12-13 15:38:40 160

原创 Java排序算法之堆排序

       “堆排序”是利用堆这种数据结构而设计的一种排序算法(注意这里和堆内存的区别,二者不同),它是一种选择排序,其平均时间复杂度是O(NlogN)。       这里介绍一下“堆”这种数据结构,它是一种完全二叉树,也就是说除叶子节点外,其余节点全部是满数据的。如下所示,就不是完全二叉树,因为树枝节点不满:如下所示,就是完全二叉树,因为树枝节点满的: 堆的数据结构分为...

2018-12-06 20:22:53 749

原创 Java排序算法之希尔排序

      这几天看了一点希尔排序,据说它是插入排序的优化,但是我愣是没看出来到底优化在什么地方,从原理上分析,希尔排序也就是将一组数按照一定的方式切分成不同的组,然后各个组进行插入排序,说到底,底层还是插入排序。      我们先看看它的原理:将一组含n个元素的数,不停的除以2取“间隔数”,然后隔着间隔数取数成组,在对这个组进行插入排序,直到这个间隔数为1为止,也就是对整体数组进行插入排序,...

2018-12-03 14:36:03 303

原创 Java排序算法之插入排序

       最近接触了插入排序算法,查了一些资料,写一些自己的理解吧。这种排序方式感觉有些像选择排序法,选择排序法是将当前元素与之后的所有元素逐一比较,从而找出最大或最小值,而插入排序时将当前元素与之前元素逐一比较,从而找到该元素合适的位置。下面看一个例子吧:       例如:将一组数【14,2,21,36,19】按插入排序。       第一趟:从第二个元素2开始,2比14小,交换位...

2018-11-29 16:53:23 113

空空如也

空空如也

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

TA关注的人

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