自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

武培轩

专注分享 Java 技术干货

原创 Full GC 和 Minor GC,傻傻分不清楚

这篇文章主要来介绍下 JVM 中的各种 GC,让大家来搞清楚这几个概念。 大家可能见到过很多的 GC 名词,比如:Minor GC、Young GC、Full GC、Old GC、Major GC、Mixed GC。 这么多概念,想想都头疼,到底各种乱七八糟的 GC 指的是什么? 下面先引用 R ...

2020-01-15 18:29:20

阅读数 79

评论数 0

原创 请停止编写糟糕的提交消息!

我想大家都有过这样的经历: 你正在开发一个项目,它使用 Git 进行版本控制。 你刚刚完成更改,并且想要快速更新分支。 因此,你打开了终端,并通过一些快速命令,使用所做的更改来更新远程分支。 git add . git commit -m "added new feature"...

2020-01-14 17:38:17

阅读数 123

评论数 0

原创 最大的 String 字符长度是多少?

String 类可以说是在 Java 中使用最频繁的类了,就算是刚刚接触 Java 的初学者也不会陌生,因为对于 Java 程序来说,main 方法就是使用一个 String 类型数组来作为参数的(String[] args)。对于这样一个频繁使用的类,String 字符串可以有多长呢?十万字符...

2020-01-13 16:04:37

阅读数 121

评论数 0

原创 2020 年 Java 程序员应该学习什么?

大家好,我相信大家在新的一年都有一个良好的开端,并准备好制定一个提升自我技术的目标。作为 Java 开发人员,我还制定了一些目标,希望在今年成为一名更好的 Java 开发人员。 如果你尚未制定目标,这将帮助你制定 2020 年的目标。作为一名程序员,我们面临的最大挑战是使自己保持不断学习的状态。技...

2020-01-10 14:20:41

阅读数 511

评论数 0

原创 后缀补全用得好,提前下班没烦恼

IntelliJ IDEA 在 2013.1 版本后就出现了后缀代码自动补全的新功能。现在,我很高兴的介绍后缀代码自动补全(Postfix Code Completion),这是一类新的代码补全方式,希望它能提高你的编程效率。 本文使用的 IDEA 版本为 2019.3,首先如果想要查看所有的后缀...

2020-01-06 02:25:21

阅读数 128

评论数 0

原创 Nginx 究竟如何处理事件?

在了解了网络事件以及事件分发收集器以后,让我们来了解 Nginx 是怎么样处理事件的? Nginx 事件循环 当 Nginx 刚刚启动时,在等待事件部分,也就是打开了 80 或 443 端口,这个时候在等待新的事件进来,比如新的客户端连上了 Nginx 向我们发起了连接,此步往往对应 epoll...

2020-01-04 23:50:35

阅读数 115

评论数 0

原创 9 个习惯助你在新的一年更有精力

生产力的根本不是时间,而是精力。如果你大部分时间都精疲力竭,那么即使全天工作也将无济于事。 你的生活习惯决定了你的精力水平,如果你养成良好的习惯,则无论是在身体还是精神上,你都会感到精力充沛,并且更容易从疲倦中恢复精力。如果你的习惯不好,你可能会进入一个你感觉越来越糟的循环,直到你很难跟上。 以下...

2019-12-31 09:32:04

阅读数 421

评论数 2

原创 一篇文章带你了解 ZooKeeper 架构

上一篇文章,我们讲解了 ZooKeeper 入门知识,这篇文章主要讲解下 ZooKeeper 的架构,理解 ZooKeeper 的架构可以帮助我们更好地设计协同服务。 首先我们来看下 ZooKeeper 的总体架构图。 ZooKeeper 总体架构 应用使用 ZooKeeper 客户端库来使用 ...

2019-12-29 14:47:56

阅读数 474

评论数 0

原创 浅析 Nginx 网络事件

Nginx 是一个事件驱动的框架,所谓事件主要指的是网络事件,Nginx 每个网络连接会对应两个网络事件,一个读事件一个写事件。在深入了解 Nginx 各种原理及在极端场景下的一些错误场景处理时,需要首先理解什么是网络事件。 网络传输 接下来看上面这张图,比如主机 A 就是一台家里的笔记本电脑,...

2019-12-28 15:22:00

阅读数 152

评论数 0

原创 Zookeeper 入门看这篇就够了

这篇文章主要介绍了 ZooKeeper 的安装配置,ZooKeeper 的基本概念和 zkCli 的使用,并用 zkCli 来实现一个锁,为后面更加深入的学习打好基础。

2019-12-22 11:39:15

阅读数 618

评论数 0

原创 如何优雅地关闭worker进程?

之前我们讲解 Nginx 命令行的时候,可以看到 Nginx 停止有两种方式,分别是 nginx -s quit 和 nginx -s stop,其中 stop 是指立即停止 Nginx,而 quit 是指优雅的关闭 Nginx,对应的信号也是同样的,还有我们之前提到的 reload 和热升级这样...

2019-12-21 16:39:26

阅读数 118

评论数 0

原创 Nginx热升级流程,看这篇就够了

在之前做过 Nginx 热升级的演示,他能保证nginx在不停止服务的情况下更换他的 binary 文件,这个功能非常有用,但我们在执行 Nginx 的 binary 文件升级过程中,还是会遇到很多问题,比如老的 worker 进程一直退不掉或者新的 worker 进程升级以后出现问题需要考虑回滚...

2019-12-20 16:52:14

阅读数 227

评论数 0

原创 探究 Nginx 中 reload 流程的真相

今天这篇文章主要来介绍下 Nginx 的 reload 流程。实际上在之前文章中,在更改了 nginx 配置文件时,我们都会执行 nginx -s reload 命令,我们执行这条命令的原因是希望 nginx 不停止服务始终在处理新的请求的同时把 nginx 的配置文件平滑的把旧的 nginx.c...

2019-12-16 11:13:27

阅读数 39

评论数 0

原创 每个开发人员都应该知道的11个Linux命令

本文主要挑选出读者有必要首先学习的 11 个 Linux 命令,如果不熟悉的读者可以在虚拟机或云服务器上实操下,对于开发人员来说,能熟练掌握 Linux 做一些基本的操作是必要的! 事不宜迟,这里有 11 个 Linux 命令行技巧,可以使你的生活工作更轻松。 1. grep $ grep &q...

2019-12-10 21:18:48

阅读数 49

评论数 0

原创 如何编写可怕的Java代码?

我决定告诉你如何编写可怕的Java代码。如果你厌倦了所有这些美丽的设计模式和最佳实践,并且想写些疯狂的东西,请继续阅读。 如果你正在寻找有关如何编写良好代码的建议,请查看其它文章! 对一切使用异常 你知道循环对吗?差一错误(英语:Off-by-one error,缩写 OBOE,是在计数时由于边界...

2019-12-10 09:31:34

阅读数 59

评论数 0

原创 请停止编写这么多的for循环!

在这篇文章中,我想和你一起回到基础知识,并讨论 Java 中的 for 循环。老实说,我正在为自己写这篇博客文章,因为我也会这样做。从 Java 8 开始,我们不必在 Java 中编写太多 for 循环!我希望这篇文章将使你的代码更易于阅读和编写。 你需要 for 循环做什么? 一般地说,for ...

2019-12-05 09:51:46

阅读数 74

评论数 0

原创 如何优雅地在Stack Overflow提问?

今天来给大家聊一聊 Stack Overflow,Stack Overflow 是什么呢? 什么是 Stack Overflow? Stack Overflow 是一个全球最大的技术问答网站,作为一个程序员不得不知的网站。程序员可以在上面进行提出问题,别的程序员会免费帮大家解答这个问题。 然后这个...

2019-12-04 18:47:45

阅读数 37

评论数 0

原创 为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作?

在阅读《阿里巴巴Java开发手册》时,发现有一条关于在 foreach 循环里进行元素的 remove/add 操作的规约,具体内容如下: 错误演示 我们首先在 IDEA 中编写一个在 foreach 循环里进行 remove 操作的代码: import java.util.ArrayList;...

2019-12-03 00:22:35

阅读数 113

评论数 0

原创 Java异常处理只有Try-Catch吗?

今天,我们将讨论一个非常重要的主题-Java 中的异常处理。尽管有时可能会对此主题进行过多的讨论,但并非每篇文章都包含有用且相关的信息。 Java 中最常见的异常处理机制通常与 try-catch 块关联 。我们使用它来捕获异常,然后提供在发生异常的情况下可以执行的逻辑。 的确,你不需要将所有异...

2019-12-01 15:59:56

阅读数 59

评论数 0

原创 Nginx 进程管理,你需要了解哪些?

Nginx 是一个多进程的程序,多进程之间进行通讯可以使用共享内存、信号等。当做进程间管理的时候,通常只使用信号。 今天就来看一下 Nginx 进程管理中的信号是怎样使用的。 Nginx 进程管理:信号 从上图可以看出,能够发送和处理信号的有 master 进程、worker 进程、Nginx ...

2019-11-29 23:13:21

阅读数 62

评论数 0

原创 去除有道云笔记广告

打开有道云安装目录下的 build.xml 文件,目录结构为:YoudaoNote->theme->build.xml 搜索 【底部广告】,定位到如下: <!-- 底部广告--> <AdWraperMid type="panel" css=&quo...

2019-11-29 15:42:38

阅读数 50

评论数 0

原创 看完这篇还不会用Git,那我就哭了!

你使用过 Git 吗?也许你已经使用了一段时间,但它的许多奥秘仍然令人困惑。 Git 是一个版本控制系统,是任何软件开发项目中的主要内容。通常有两个主要用途:代码备份和代码版本控制。你可以逐步处理代码,在需要回滚到备份副本的过程中保存每一步的进度! 常见的问题是 Git 很难使用。有时版本和分支不...

2019-11-27 19:43:15

阅读数 9072

评论数 68

原创 在IntelliJ IDEA中,类或方法有被调用,点击却显示 is never used

在IntelliJ IDEA 里面的一些类及方法,明明有被其他的类或者方法调用,但是去看的时候显示灰色,鼠标放上面的时候显示:Class ‘XXX’ is never used或者Method ‘XXX’ is never used,而且运行的时候毫无问题。 解决方法:File—>Inval...

2019-11-27 15:43:39

阅读数 28

评论数 0

原创 Nginx 的进程结构,你明白吗?

Nginx 进程结构 这篇文章我们来看下 Nginx 的进程结构,Nginx 其实有两种进程结构: 单进程结构 多进程结构 单进程结构实际上不适用于生产环境,只适合我们做开发调试使用。因为在生产环境中我们必须保持 Nginx 足够健壮以及 Nginx 可以利用多核的一个特性,而单进程的 N...

2019-11-13 01:20:29

阅读数 72

评论数 0

原创 Nginx 的请求处理流程,你了解吗?

之前我们已经讲解了 Nginx 的基础内容,接下来我们开始介绍 Nginx 的架构基础。 为什么我们要讨论 Nginx 的架构基础? 因为 Nginx 运行在企业内网的最外层也就是边缘节点,那么他处理的的流量是其他应用服务器处理流量的数倍,甚至几个数量级,我们知道任何一种问题在不同的数量级下,他...

2019-11-10 21:49:23

阅读数 115

评论数 0

原创 你编写的Java代码是咋跑起来的?

如果你是一名 Java 开发人员,你肯定指定 Java 代码有很多种不同的运行方式。比如说可以在开发工具(IDEA、Eclipse等)中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至可以在网页(比如各种 OJ)中运行。当然,这些执行方式都离不开 JRE(Java 运行时环境)。 ...

2019-11-04 00:52:08

阅读数 151

评论数 1

原创 使用 Nginx 搭建静态资源 web 服务器

在搭建网站的时候,往往会加载很多的图片,如果都从 Tomcat 服务器来获取静态资源,这样会增加服务器的负载,使得服务器运行 速度非常慢,这时可以使用 Nginx 服务器来加载这些静态资源,这样就可以实现负载均衡,为 Tomcat 服务器减压了。这篇文章,我们将一起去使用 Nginx 去搭建静态资...

2019-11-03 18:16:38

阅读数 298

评论数 0

原创 Nginx 热部署和日志切割,你学会了吗?

上篇文章,我们已经安装好 Nginx,并且配置好 Nginx 文件后,这个时候我就需要操作 Nginx 的命令行了,这篇文章主要讲解 Nginx 命令行相关知识,并通过日常遇到的热部署、切割日志文件场景来熟悉 Nginx 命令行操作。 Nginx 命令行 格式:nginx -s stop 帮助:...

2019-11-02 01:25:29

阅读数 227

评论数 4

原创 微信公众平台接口测试帐号申请

由于用户体验和安全性方面的考虑,微信公众号的注册有一定门槛,某些高级接口的权限需要微信认证后才可以获取。 所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,微信推出了微信公众帐号测试号,通过手机微信扫描二维码即可获得测试号。 进入微信公众帐号测试号申请系统 打开此页面,用自己...

2019-11-01 13:42:32

阅读数 21

评论数 0

原创 Nginx 了解一下?

这篇文章主要简单的介绍下 Nginx 的相关知识,主要包括以下几部分内容: Nginx 适用于哪些场景? 为什么会出现 Nginx? Nginx 优点 Nginx 的编译与配置 Nginx 适用于哪些场景? 如图所示,一个请求会先经过 Nginx 到达应用服务层,然后再去访问数据层(比如 R...

2019-11-01 01:30:42

阅读数 104

评论数 0

原创 你真的了解 volatile 关键字吗?

今天,让我们一起来探讨 Java 并发编程中的知识点:volatile 关键字 本文主要从以下三点讲解 volatile 关键字: volatile 关键字是什么? volatile 关键字能解决什么问题?使用场景是什么? volatile 关键字实现的原理? volatile 关键字是什么?...

2019-10-31 01:16:16

阅读数 256

评论数 11

原创 Java 中的 final、finally、finalize 有什么不同?

Java 中 final、finally、finalize 有什么不同?这是在 Java 面试中经常问到的问题,他们究竟有什么不同呢? 这三个看起来很相似,其实他们的关系就像卡巴斯基和巴基斯坦一样有基巴关系。 那么如果被问到这个问题该怎么回答呢?首先可以从语法和使用角度出发简单介绍三者的不同: ...

2019-10-29 00:19:42

阅读数 555

评论数 0

原创 深入理解 Java 中的 final 关键字

final 是Java 中重要关键字之一,可以应用于类、方法以及变量上。这篇文章中将讲解什么是 final 关键字?将变量、方法和类声明为 final 代表了什么?使用 final 的好处是什么? final 关键字是什么? final 在 Java 中是一个保留的关键字,可以声明成员变量、方法、...

2019-10-28 00:27:18

阅读数 833

评论数 5

原创 如何定制 Spring Boot 的 Banner?

相信用过 Spring Boot 的朋友们一定在启动日志中见过类似如下的内容,比如在启动 Spring Boot 时,控制台默认会打印 Spring Boot Logo 以及版本信息,这是 Spring Boot 固定的还是可自定义的呢? . ____ _ ...

2019-10-27 21:24:49

阅读数 71

评论数 0

原创 Java 异常处理的 20 个最佳实践,你知道几个?

异常处理是 Java 开发中的一个重要部分,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等。Java 提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建于语言自身之中。Java 编程语言也允许创建新的自定义异常,并通过使用 throw 和 throw...

2019-10-26 22:45:24

阅读数 287

评论数 0

原创 Git:解决报错:fatal:The remote end hung up unexpectedly

报错情况:Git 在推送项目时报错:fatal:The remote end hung up unexpectedly 问题原因:推送的文件太大。 解决方法一: 修改设置 git config 文件的 postBuffer 的大小。(设置为 500MB) $ git config --local ...

2019-10-25 14:03:01

阅读数 45

评论数 0

原创 MySQL 日志系统之 redo log 和 binlog

之前我们了解了一条查询语句的执行流程,并介绍了执行过程中涉及的处理模块。一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条 SQL 更新语句的执行流程又是怎样的呢? 首先我们创建一个表 user_info,主键为 id,创建语句如下: CREA...

2019-10-24 19:58:37

阅读数 107

评论数 0

原创 为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 或者用 StringBuilder 进行字符串拼接的效率如何吧(JDK版本为 jdk1.8.0_201)。 package com.wupx.demo;...

2019-10-24 00:12:46

阅读数 77

评论数 0

原创 Java 8 Optional:优雅地避免 NPE

本篇文章将详细介绍 Optional 类,以及如何用它消除代码中的 null 检查。在开始之前首先来看下什么是 NPE,以及在 Java 8 之前是如何处理 NPE 问题的。 空指针异常(NullPointException,简称 NPE)可以说是所有 Java 程序员都遇到过的一个异常,虽然 J...

2019-10-23 12:45:15

阅读数 311

评论数 2

原创 MySQL 时区问题:The server time zone value '׼ʱ��' is unrecognized or represents more than one time zone

MySQL 时区错误 最近在使用 Mybatis 和 MySQL 开发的过程中遇到个奇怪的问题,经过排查发现是 JDBC driver 的问题,报错如下 java.sql.SQLException: The server time zone value '�й���׼ʱ��' ...

2019-10-18 15:27:57

阅读数 26

评论数 0

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