自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张振伟的博客

写写代码,做做架构!更多干货内容,可访问:http://zhangzw.com/

转载 Eclipse创建maven多模块项目

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 在使用maven构建项目时,我们常常将项目拆分成多个模块,这样方便解耦和协同开发。本文就讲讲怎么使用Eclipse创建一个maven的多模块项目。 举个简单例子,假设我们要创建一个shop-demo(商城)项目,里面包含...

2019-12-02 11:39:52

阅读数 154

评论数 0

转载 Eclipse安装jad反编译插件详解

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 当使用Eclipse打开第三方依赖包里的类时,常常出现如下画面。这代表Eclipse没有找到该类关联的源码文件。 为了使阅读源码更方便,我们可以给Eclipse安装反编译插件。在众多反编译插件中,jadclipse算是...

2019-12-02 11:37:02

阅读数 141

评论数 0

转载 配置Tomcat开启Gzip压缩,提升页面打开速度。

更多干货内容,可访问我的技术博客:https://zhangzw.com/ Web服务器开启Gzip压缩能显著减少资源的体积,在有限的带宽限制下,提升网站打开速度。不止是Tomcat,常用的nginx、Apache都可以通过配置的方式打开Gzip压缩功能。 Tomcat配置方法 找到%TOMCA...

2019-12-02 11:33:21

阅读数 140

评论数 0

转载 分享几个在线图片压缩网站

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 在做网站搭建、前端开发、网页设计时,常常为了提高网站的加载速度,降低服务器带宽压力等需要用到图片压缩功能。 今天就分享几个很好用的图片压缩网站给大家: TinyPng 地址:https://tinypng.com/ 图...

2019-12-02 11:30:55

阅读数 145

评论数 0

转载 Tomcat配置二级域名映射

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 我们知道nginx是可以根据二级域名配置路由的,其实Tomcat也具有类似的功能。 比如有这样一个场景: Tomcat下有两个项目:blog、shop,部署在服务器上映射的一级域名为:zhangzw.com。 期望效果:...

2019-12-02 11:28:38

阅读数 150

评论数 0

转载 使用代码方式调用MyBatis Generator,并生成自定义注释

更多干货内容,可访问我的技术博客:https://zhangzw.com/ MyBatis Generator是个不错的工具,能方便的从数据库表逆向生成Java实体类以及Mapper文件。 通常项目中使用插件的方式调用MyBatis Generator,常用的开发工具(Eclipse、IDEA)...

2019-12-02 11:26:36

阅读数 136

评论数 0

转载 MarkDown表格中使用竖线问题

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 在MarkDown语法中,表格的列使用|来分割,如: 但当表格的单元格里面需要添加竖线字符时,由于|是特殊字符,会导致表格样式错乱。 正确的做法是使用|代替,在HTML ASCII码对照表中,&...

2019-12-02 11:24:00

阅读数 145

评论数 0

转载 前端开发必备Chrome插件之FeHelper--Web前端助手

更多干货内容,可访问我的技术博客:https://zhangzw.com/ FeHelper是一个非常棒的Chrome插件,集成了很多前端开发中用到的功能。 比如:JSON格式化,代码美化&压缩,二维码生成,时间戳转换,图片转Base64,正则表达式,网页截屏&取色等等。而且还在...

2019-12-02 11:21:38

阅读数 145

评论数 0

转载 闲谈Tomcat性能优化,通过ExpiresFilter设置浏览器缓存

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 同DefaultServlet一样,ExpiresFilter也是Tomcat里一个非常重要的类。 我们知道DefaultServlet可以处理静态资源(HTML,CSS,JS,图片)的请求,并支持缓存。即:能够返回资源...

2019-12-02 11:18:53

阅读数 170

评论数 0

转载 详解HashMap中的Hash算法(扰动函数)

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 面试中经常会问HashMap的源码,因为HashMap不仅是日常开发中最常用到的类,还因为里面还包括了很多巧妙的算法。 HashMap里对Key取Hash和通过Hash找到在数组中的位置需要调用下面两段代码: // 以下...

2019-12-02 11:17:02

阅读数 139

评论数 0

转载 AppScan扫描漏洞:Authentication Bypass Using HTTP Verb Tampering(HTTP动词篡改导致的认证旁路)解决办法

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 公司项目在做安全扫描时发现漏洞:Authentication Bypass Using HTTP Verb Tampering(HTTP动词篡改导致的认证旁路) 扫描报告如下: 风险:可能会升级用户特权并通过Web应用程...

2019-10-17 10:37:09

阅读数 156

评论数 0

转载 npm设置代理方法

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 查看npm配置: npm config ls npm存储配置的文件默认是在当前用户目录下的.npmrc文件里。 代理设置: npm config set proxy http://server:port npm con...

2019-10-17 10:33:32

阅读数 157

评论数 0

转载 使用Apache的FastDateFormat代替JDK的SimpleDateFormat,提升性能。

更多干货内容,可访问我的技术博客:https://zhangzw.com/ SimpleDateFormat的问题 在Java中,格式化日期通常使用SimpleDateFormat这个类。 我们知道,SimpleDateFormat是线程不安全的,主要原因是format方法内部调用calenda...

2019-10-17 10:26:58

阅读数 159

评论数 0

转载 关于IDEA的Autoscroll to Source和Autoscroll from Source功能

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 在IDEA中,点开项目面板的小齿轮,在弹出框里有一些勾选项: 它们的含义分别是: Flatten Packages:摊平包结构;勾选时包按行展示,不勾选包按层级展示。 Show Members:显示类的成员,包...

2019-10-17 10:21:59

阅读数 516

评论数 0

转载 Hexo NexT主题集成utterance评论系统

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 使用Hexo的Next主题搭建的博客内置了很多种评论系统,如:gitalk,changyan等。 这里讲解集成另外一种评论系统:utterance(https://utteranc.es/) 其配置非常简单,支持Gith...

2019-10-17 10:19:23

阅读数 203

评论数 0

转载 使用Collections.unmodifiableMap()方法解析,实现返回不可修改的集合。

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 在实际项目开发中,有时候需要方法返回不可修改的集合或对象,比如:Map。 如以下例子: /** 缓存的Map */ private static Map<String, String> cachedMap =...

2019-10-17 10:13:51

阅读数 188

评论数 0

转载 使用maven-war-plugin的packagingExcludes移除不想打进包的文件

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 在标准的maven项目中,配置文件、资源文件等都是放到resources目录下的。这个目录中的文件打包时会打到classes目录下作为配置文件。 但是在有些项目中,resources目录下有些文件是不想打进WAR包的。 ...

2019-10-17 10:09:45

阅读数 218

评论数 0

转载 maven配置使用国内阿里云镜像,速度快不少。

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 使用maven开发项目,依赖的包一开始都需要从远程仓库中下载再缓存到本地。默认的远程仓库在:https://repo.maven.apache.org/maven2,访问比较慢。 可以选择国内的镜像,阿里云就提供了公有云...

2019-10-17 10:05:30

阅读数 180

评论数 0

转载 使用Typora+docsify+GitHub Pages搭建团队知识库

更多干货内容,可访问我的技术博客:https://zhangzw.com/ 在实际工作中,搭建团队知识库是非常有必要的,比如: 随着项目的迭代,有很多信息需要共享。需求、系统环境信息、任务分配情况、各端开发规范等。这些信息不能只留在某几个人的脑子里,如果有人离职,那这些就成了实实在在的坑。 有...

2019-10-17 09:59:01

阅读数 175

评论数 0

转载 IDEA的[Mybatis Log Plugin]插件配置和使用

欢迎访问我的技术博客:https://zhangzw.com/ 在使用Mybatis开发项目时,由于避免出现SQL注入,大部分情况下都是使用#{}占位符的方式传参。 所以日志打印SQL时,打印的也是占位符,如: 如果SQL比较复杂,参数又很多的话,要通过日志拼凑真正可执行的SQL还是件比较头痛...

2019-10-10 17:33:20

阅读数 290

评论数 0

转载 配置Chrome谷歌浏览器访问本地文件--allow-file-access-from-files

欢迎访问我的技术博客:https://zhangzw.com/ Chrome浏览器默认是不能访问本地文件的,这是浏览器的安全限制。 比如,我最近在尝试使用MDWiki搭建文档库时,使用Chrome浏览器访问本地的mdwiki.html文件,由于其依赖一些其它的本地文件,导致控制台会提示如下异常:...

2019-10-10 17:28:23

阅读数 232

评论数 0

转载 分享几个在线画流程图的网站

欢迎访问我的技术博客:https://zhangzw.com/ 公司的电脑不能安装外面的软件,只能安装内部软件超市的。但是里面又没有好用的流程图软件,如:visio等。 所以只能找找在线的流程图工具,还好找到几个还不错的,推荐给大家: https://www.processon.com/ 这...

2019-10-10 17:24:32

阅读数 2640

评论数 0

转载 CharacterEncodingFilter源码解析以及在SpringBoot中的配置

欢迎访问我的技术博客:https://zhangzw.com/ SpringMVC中有这样一个Filter专门处理编码问题的,它是CharacterEncodingFilter。 比如默认给response返回设定编码格式为:UTF-8,则可以通过配置CharacterEncodingFilte...

2019-10-10 17:20:37

阅读数 211

评论数 0

转载 SpringBoot自动装配原理分析

欢迎访问我的技术博客:https://zhangzw.com/ SpringBoot能流行起来我觉得有个重要的原因就是它的自动装配,想想使用SpringBoot与Spring开发项目的区别,第一反应就是减少了很多配置。 其实SpringBoot是基于Spring基础之上的,通过MAVEN引入Sp...

2019-10-10 17:13:10

阅读数 457

评论数 0

转载 Spring源码分析之ImportSelector工作原理

欢迎访问我的技术博客:https://zhangzw.com/ ImportSelector接口是Spring中导入外部配置的核心接口,SpringBoot的自动化配置和@EnableXXX(功能性注解)核心原理都是它。 该接口只有一个方法,返回需要Import的类的完整类名数组。 packag...

2019-10-10 17:09:42

阅读数 222

评论数 0

转载 解析Java链式编程以及Lombok对链式编程的支持

欢迎访问我的技术博客:https://zhangzw.com/ 所谓链式编程,即:方法可链式调用,方法调用完后返回对象本身,然后又可以继续调用该对象的方法。 常用的StringBuffer就是链式编程的例子: StringBuffer str = new StringBuffer(); str....

2019-10-10 17:04:05

阅读数 151

评论数 0

转载 Java开发中字符集的使用

欢迎访问我的技术博客:https://zhangzw.com/ 实际代码开发中,经常会用到字符集,UTF-8、GBK等。 如: 1,String类里获取字节数组的方法: public byte[] getBytes(String charsetName) throws UnsupportedEn...

2019-10-10 16:59:08

阅读数 136

评论数 0

转载 认识JDK8新特性之Lambda表达式

我的更多文章可访问:https://zhangzw.com/ 说来挺惭愧的,JDK8已经出来这么多年,在实际项目中却很少真正使用Lambda表达式。其实工作中的项目很早就从开发、测试、生产,全面使用JDK8+Tomcat8了。 所以看来是时候要重新认识下这个奇怪的东西。 没错,当第一次看到Lam...

2019-06-04 11:07:43

阅读数 170

评论数 0

转载 SpringMVC之ShallowEtagHeaderFilter源码分析

我的更多文章可访问:https://zhangzw.com/ HTTP的Last-Modified和Etag头能够告诉浏览器如何使用缓存,这有助于提高网站的打开效率。 Etag机制 Etag是HTTP1.1新加的功能。它由服务端生成,由一串字符串标识资源的内容的唯一值,类似MD5值。 ...

2019-06-04 11:02:50

阅读数 190

评论数 0

转载 位运算使用场景之标志位(打标)

我的更多文章可访问:https://zhangzw.com/ 这是某租房APP的截图,对房源的描述除了:房源标题,价格,地理位置等基本信息之外,还有如上图的配套服务属性:是否有电视、是否有冰箱、是否有洗衣机等。 对于基本信息,可以定义表字段来一一对应,但是对于属性信息则很难用表字段来描述。首先...

2019-05-31 16:09:33

阅读数 468

评论数 0

转载 分析布隆过滤器原理以及Guava的BloomFilter使用

我的更多文章可访问:https://zhangzw.com/ 假设遇到这样一个问题:要求判断某个网址URL是否在一个20亿的网址URL集合中,并且需在给定内存空间(比如:500M)内快速判断出。 可能很多人首先想到的会是使用HashSet,因为HashSet基于HashMap,理论上时间复杂度为...

2019-05-31 16:08:01

阅读数 518

评论数 0

转载 查看Class文件编译版本号

我的更多文章可访问:https://zhangzw.com/ Java文件编译出的Class文件带有编译版本信息,那么如何查看某个Class文件编译的版本是多少呢? 以一个最简单的Java文件为例: package springboot; public class HelloWorld { ...

2019-05-31 16:06:52

阅读数 645

评论数 0

转载 Java线程池ThreadPoolExecutor详解

我的更多文章可访问:https://zhangzw.com/ 说到Java多线程就联想到Thread、Runnable等常用类,但是在实际项目中为了避免难以控制的线程创建,往往很少直接创建线程,都是创建线程池,提交任务到线程池执行。这点在阿里Java开发手册里也有提到。 线程池ThreadPoo...

2019-05-31 16:05:48

阅读数 162

评论数 0

转载 详解AtomicInteger原理

我的更多文章可访问:https://zhangzw.com/ 在并发场景中,当多线程需要对同一份资源做操作时,就会产生线程安全问题。以最简单的int i++为例,i++并不是原子操作,编译出来后分为三步:1,获取值;2,修改值;3,设置值。如果有多线程执行i++,则通常不会得到正确的结果。 下面...

2019-05-31 16:04:19

阅读数 301

评论数 0

转载 分析Chrome的瀑布流(Waterfall)

我的更多文章可访问:https://zhangzw.com/ 当需要调试网页或分析网站性能时,我们往往会F12打开浏览器控制台,查看网络请求,看网页加载了哪些资源,以及对应的请求方式(Method)、状态码(Status)、资源类型(Type)、大小(Size)、耗费的时间(Time)等。 如果...

2019-05-31 16:02:47

阅读数 804

评论数 0

转载 PostgreSQL允许远程访问配置

我的更多文章可访问:https://zhangzw.com/ PostgreSQL数据库安装之后,默认只能本地访问连接,如果其它机器需要远程访问PostgreSQL数据库,则需要进行相关配置。 涉及到两个配置文件,都在数据库的data目录下: 修改postgresql.conf文件 修改: li...

2019-05-31 16:01:28

阅读数 286

评论数 0

转载 使用ArrayList.trimToSize方法缩小数组容积

我的更多文章可访问:https://zhangzw.com/ ArrayList底层是由数组实现的,当调用add方法插入数据如果数组空间不够时,会发生扩容,新空间大小为原来的1.5倍。 具体可参考源码的grow方法: // 源码来自JDK1.7 private void grow(int min...

2019-05-31 16:00:43

阅读数 268

评论数 0

转载 HTTP协议no-cache和no-store的区别

我的更多文章可访问:https://zhangzw.com/ no-cache和no-store都是HTTP协议头Cache-Control的值。区别是: no-store 彻底禁用缓冲,所有内容都不会被缓存到缓存或临时文件中。 no-cache 在浏览器使用缓存前,会往返对比ETag,...

2019-05-31 15:59:45

阅读数 464

评论数 0

转载 vi编辑器常用快捷键

我的更多文章可访问:https://zhangzw.com/ vi常用的快捷键,记录一下~ 光标移动 上(k),下(j),左(h),右(l) ctrl+e,滚动页面 ctrl+f,下一页 ctrl+b,上一页 ctrl+d,下半页 ctrl+u,上半页 w,跳到下一个字首,按...

2019-05-31 15:58:29

阅读数 159

评论数 0

转载 JVM调优参数配置

我的更多文章可访问:https://zhangzw.com/ 掌握并理解JVM常用参数,并能根据实际情况,对JVM进行适当的配置提高应用性能是每个Java后端必备的。本文介绍JVM常用参数和调优经验。 JVM常用参数 -Xms,初始堆大小 物理内存的1 / 64,默认(MinHeapFree...

2019-05-30 10:14:09

阅读数 179

评论数 0

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