自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot文件上传的简单实现

springboot文件上传的简单实现基本功能主要配置后端代码上传测试后记(本功能实现使用的是springboot1.5,springboot2.0配置略有不同)基本功能1.支持多文件上传,并返回上传成功后可以访问的地址2.上传的文件最大限制为1M3.可以自定义上传目录主要配置#限制文件上传(springboot不同的版本有所不同)spring.http.multipart....

2019-11-15 12:08:18 293 1

原创 解决gradle打包中文乱码问题

解决gradle打包中文乱码问题在gradle安装目录下的/bin文件夹中的gradle和gradle.bat更改配置:“-Dfile.encoding=UTF-8”。如图:(水一下)

2019-10-29 15:49:52 3201

原创 线程池线程数过多引起的问题

1.创建更多的线程会消耗更多的内存(这个大家都知道);2.线程数过多,会引起频繁的线程上下文切换。那么,这个该怎么理解呢?我会结合以下代码给大家举一个例子。synchronized (this.getClass()){ doSomething();}假如,现在服务器只有一个cpu,有3个线程a,b,c,并发执行这段代码。a抢到锁时,bc还没有真正的阻塞,因为bc不知道a抢到锁了。那么,...

2019-08-05 16:45:05 6512

原创 ThreadPoolExecutor线程池中的线程发生异常时

结论:发生异常的线程被回收,重新填充一个新的线程证明: ExecutorService pool = Executors.newFixedThreadPool(2); pool.execute(() -> { try { Thread.sleep(2000); System.out.println(Thread.currentThread().getId()+...

2019-08-04 20:51:53 3364 2

原创 java如何获取网页全部内容

URL获取之前在项目中,遇到这样一个问题。需要读取一个网页的内容,却发现只读取到了网页内容的一部分。下面是代码: public static void read1(String urlStr) { URL url = null; InputStream is = null; InputStreamReader isr = null; BufferedReader br = n...

2019-07-24 22:38:40 6254

原创 超线程与双核

超线程将一个物理cpu当作两个逻辑cpu使用,使cpu可以同时执行多线程,从而发挥更大的效率。一般可以使处理器的处理能力提高30%。对于单线程芯片来说,每秒可以处理成千上万条指令,但在某一时刻,其只能对一条指令进行处理,这就会处理器内部的其他处理单元闲置。超线程就是将闲置的处理单元运用了起来,例如,当一个逻辑处理器在执行浮点运算时,另一个逻辑处理器可以执行加法运算。需要指出的是,超线程仅在多任...

2019-07-22 22:01:54 955

原创 公钥、私钥,https原理

https://www.cnblogs.com/shijingjing07/p/5965792.htmlhttps://blog.51cto.com/11883699/2160032上面链接中讲得很棒。但是依然有几个地方不太明白:1.同一家第三方的证书预留在操作系统中的公钥是不是一样的?2.如果是一样的,那么中间人在自己的电脑中是否能得到该公钥?3.如果能得到,那么中间人不就能获取到服务...

2019-07-21 01:28:44 131

原创 基于redis的分布式锁的Java实现

关于分布式锁到底是个什么东西,我在这里就不多说了。本文的分布式锁主要的构成元素有:ip,线程id,加锁次数。ip:在集群环境下,部署在不同机器上的应用可能争抢一把锁,用ip实现互斥;线程id:同一个应用下,不同的线程也可能争抢一把锁;加锁次数:让锁对同一个线程是可重入的。每加一次锁,当前加锁次数加一,每释放一次锁,当前加锁次数减一。当加锁次数为0时,锁完全释放。1、普通锁1.1 单线程...

2019-07-21 00:49:13 473

原创 用户态、内核态的理解

用户态、内核态的理解起因:“为了防止用户程序破坏操作系统或直接操作硬件,必须严格区分操作系统代码和用户代码。为此,许多处理机在处理机状态字(PSW)中增加了一个执行方式位,区分两种操作方式:用户态,内核态”,说白了,就是为了安全;“内核态下,允许访问cpu的全部指令,可以访问所有的寄存器和存储区;”“用户态下,只允许访问cpu的非特权指令,访问制定的寄存器和存储区。如果在用户态下企图运行一条...

2019-07-13 23:33:11 473

原创 1分钟理解FileInputStream、BufferedInputStream原理

1分钟理解io、缓冲io原理基础知识文件的读取过程:性能优化:其他:基础知识文件的读写,是以页为单位的,页的大小通常为4kb。程序读取文件时,会执行一次read系统调用,由用户态转换为内核态,然后从磁盘读取一页数据放到内核缓冲区,接着数据从内核缓冲区复制到用户缓冲区,此时read系统调用返回,由内核态切换回用户态。(不理解这几个关键字的可以自行百度)文件的读取过程:假设系统一页大小为4kb...

2019-07-13 02:02:55 2164 3

原创 基于poi的excel导出封装

基于poi的excel导出封装之前我所过的项目中,进行excel导出时,无一例外地都是先读取excel模板,然后再导出excel,修改导出这块的时候,代码和excel模板都得修改,使用起来感觉很麻烦;还有,如果我要在一个sheet中导出用户数据和省份数据时,后端实现起来也很复杂。我对基于poi导出excel进行了封装,现在贴出来,与大家交流交流。主要名词解释:ExcelModel:exc...

2019-07-11 18:39:49 290

原创 java发送带请求体的delete请求

java发送带请求体的delete请求有时候,我们需要在A系统中使用delete请求调用B系统中的方法进行批量删除数据,所以需要向请求体中写入参数,但是org.apache.commons.httpclient.methods.DeleteMethod这个类中没有我们所需要的方法。此时,我们需要自己实现一个DeleteMethod。代码如下:import java.io.BufferedRea...

2019-07-08 15:00:44 7077 1

空空如也

空空如也

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

TA关注的人

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