自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 SpringBoot默认200个线程对于Websocket长连接够用吗?(一)
原力计划

上篇推文从源码剖析SpringBoot中Tomcat的默认最大连接数中我们知道,SpringBoot的内嵌Tomcat默认的最大连接数为200。那么,这个默认值对于项目中引入了WebSocket使用长连接后,是否足够用呢?今天强哥就带大家一起从源码的角度来分析一下。 我们还是从上一篇推文给的代码...

2020-03-27 14:08:53

阅读数 136

评论数 0

转载 Java NIO原理与简单实现

Java NIO 简介 JAVA NIO有两种解释:一种叫非阻塞IO(Non-blocking I/O),另一种也叫新的IO(New I/O),其实是同一个概念。它是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题...

2020-03-10 17:33:34

阅读数 27

评论数 0

转载 10分钟看懂, Java NIO 底层原理

1.1. JavaIO读写原理 无论是Socket的读写还是文件的读写,在Java层面的应用开发或者是linux系统底层开发,都属于输入input和输出output的处理,简称为IO读写。在原理上和处理流程上,都是一致的。区别在于参数的不同。 用户程序进行IO的读写,基本上会用到read&am...

2020-03-10 17:12:04

阅读数 55

评论数 0

原创 Java导出Excel解决乱码及导出文件打开不可读需修复的问题

工具代码: public class FileUtil { public static void download(String filename, HttpServletResponse res) { String filePath = "./templa...

2020-03-10 14:55:08

阅读数 72

评论数 0

转载 Java使用POI操作Excel合并单元格

合并单元格的方法: 指定 4 个参数,起始行,结束行,起始列,结束列。然后这个区域将被合并。 CellRangeAddress region = new CellRangeAddress(startRow, endRow, startCol, endCol); sheet.addMergedR...

2020-02-13 20:04:26

阅读数 35

评论数 0

原创 从源码剖析SpringBoot中Tomcat的默认最大连接数

上篇推文为什么你的websocket只能建立256个连接?推出后,有许多小伙伴问:关键是怎么解决256这个问题。嗯,可能是我的标题起的有点问题,不过如果有认真阅读文章的话,应该会知道,其实256的限制是Chrome浏览器对WebSocket进行的限制。不过,对于一个客户端来说,假如一个窗口建立一个...

2020-01-20 20:03:36

阅读数 640

评论数 0

原创 为什么你的websocket只能建立256个连接?

WebSocket想必大家都不陌生,当我们的程序需要实时高效的获取后端的返回结果时,除了早期大家用到的前端轮循的机制之外,当前比较简单好用的莫过于WebSocket了。 当然,这篇文章不是WebSocket的科普文,按照惯例:强哥出品,必属精品的原则(哈哈,自吹一波)。我们就不在这里介绍WebS...

2020-01-18 00:16:04

阅读数 3326

评论数 3

原创 Springboot配置log4j2异步输出日志

强哥之前有发过一篇文章:聊一聊项目中的日志配置,其中讲述了项目log4j日志配置文件中,通过修改一些参数实现日志分期保存以及保存文件个数限制相关问题以及相应的处理方式。当然如果日志量过大还是推荐项目中接入ELK将日志放入搜索引擎中进行后期的查询处理。 今天我们还是来讲讲日志,不过,不是关于日志的...

2020-01-15 23:37:45

阅读数 320

评论数 0

转载 ServletContextListener使用详解(监听Tomcat启动、关闭)

在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。   当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletC...

2020-01-03 11:22:51

阅读数 187

评论数 0

转载 简单的描述spring的时间驱动原理

Java设计模式——事件驱动模式(观察者模式) 角色 事件 事件源 事件监听器 事件 事件类一般继承自java.util.EventObject类,封装了事件源以及跟事件有关的信息 source:事件源getSource():获取事件源 public class EventOb...

2020-01-03 10:02:59

阅读数 179

评论数 0

转载 Springboot整合WebSocket,实现向指定页面推送信息

技术选型 Springboot + WebSocket + Mybatis + Enjoy(类似Jsper、freemarker的模板引擎) + FastJson+ SpringBoot 默认的连接池 Hikari 由于懒的写样式,并且不想用JQuery,直接用 Vue 加上 ElementU...

2020-01-02 09:38:24

阅读数 192

评论数 0

转载 Java8 计算两个日期之间相差多少天

在使用Java8 新特性中关于Period.between的方法时需注意该方法获取日期的区间问题。 @Test public void test1(){ LocalDate from = LocalDate.of(2018,10,1); System.out.println(P...

2019-12-30 14:39:17

阅读数 233

评论数 0

原创 用策略模式设计车子模型

小强所在的游戏公司最近设计了一款赛车游戏,游戏中会有很多种的车型,比如自行车、三轮车、小汽车、卡车、跑车等等。基于面向对象的设计思路,小强设计了一个车的超类,并让各种车辆继承这个超类。因为是新游戏,为了看看市场反响,所以第一版本所有类型的车辆只有样式不同,其他功能都一样: 上线后,用户反响还...

2019-11-07 19:57:35

阅读数 53

评论数 0

原创 聊一聊项目中的日志配置

相信大家都知道,作为一个开发,除了要会写bug之外,还要能够通过日志来解决bug。这样,线上出了问题,有人来找我们解决,有人需要我们,我们才能保住自己的饭碗……可见,要知道怎么检测和解决自己搞出来的bug是多么的重要。 嘿嘿,开个玩笑,引入正题。相信很多人在项目中都有用到日志管理工具:log4j...

2019-10-28 22:52:54

阅读数 54

评论数 0

转载 分析堆内存OOM

主要功能 概述 显示jvm运行时的参数,Java版本,以及系统属性。 监控 显示当前这个pid的cpu,堆,PermGen,类,线程的运行情况,可以主动进行垃圾回收,以及生成此时刻的dump文件。 线程 显示所有线程的“实时”状态(运行,休眠,等待,监视)以及时间,(调整好刷新...

2019-10-25 16:17:35

阅读数 39

评论数 0

转载 性能分析神器VisualVM

VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。本文主要介绍如何使...

2019-10-25 15:48:06

阅读数 65

评论数 0

原创 java 获取中文拼音首字母(缩写) 含pinyin4j maven包

废话不多说了,其实就是为了实现将中文转换成拼音或者拼音首字母缩写。比如:强哥,转成:qiangge或者qg。网上都是两种写法,一种是自己写,一种是引用pinyin4j包,这里就不给自己写完的方式了,因为好像错误很多。而另一种pinyin4j包的方式,因为现在项目一般都是maven写的。这里找了一个...

2019-10-16 09:20:44

阅读数 65

评论数 0

原创 ExcelUtil 生成excel工具

import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; imp...

2019-09-11 11:29:52

阅读数 58

评论数 0

转载 Java POI生成Excel文件,下载

1、pom引入poi的maven依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <ve...

2019-09-03 09:34:50

阅读数 32

评论数 0

原创 Java 版本号字符串大小比较

public class Version implements Comparable<Version> { private String version; public final String get() { return this.version...

2019-08-30 16:07:37

阅读数 258

评论数 0

转载 AbstractRoutingDataSource动态数据源切换,AOP实现动态数据源切换

上周末,室友通宵达旦的敲代码处理他的多数据源的问题,搞的非常的紧张,也和我聊了聊天,大概的了解了他的业务的需求。一般的情况下我们都是使用SSH或者SSM框架进行处理我们的数据源的信息。 操作数据一般都是在DAO层进行处理,可以选择直接使用JDBC进行编程(http://blog.csdn.net/...

2019-08-22 15:00:41

阅读数 38

评论数 0

原创 Erwin sql脚本反向建模,中英文映射model

首先写在最前面的,我只想说Erwin反向工程真是难用。或者是我没有搜到简单的方法吧。总之,希望下面介绍的可以减少点你的工作量。 前言:一般来说Logical model显示中文,Physical显示英文。你可以想成,Logical model是逻辑实体,也就是字段中文评论备注,Physical ...

2019-08-21 16:58:46

阅读数 211

评论数 0

原创 设计模式到底有多重要

其实作为一个开发人员,不管是前端或者后端,对于设计模式不知道大家是否有认真的学过。强哥一开始,对于设计模式的态度其实一直是感觉可有可无的。大学没有相关课程,学习Java,懂得面向对象,自学Java web毕业后顺利找到工作。工作期间,就算技术功底不行,只要你不傻,拿着前辈的代码,对于新的一些简单的...

2019-08-14 17:52:04

阅读数 423

评论数 0

原创 读读这段Lambda表达式代码,测试下你对JAVA传参方式的理解程度

直接进入正题,首先我们有一个Uer对象如下: static class Student { private String name; private int score; private int star; Student(String name, int sc...

2019-07-26 20:41:46

阅读数 70

评论数 0

原创 编码常见问题汇总

1、不要给javabean设置属性默认值 因为如果设置了属性默认值,当用该对象接收来自mybatis返回的数据时,即使没有获取到数据,该对象还是不为null,而是获取到一个设置了该默认属性值的对象,容易造成bug。 ...

2019-07-16 18:10:39

阅读数 71

评论数 0

原创 一起学习Mysql索引三(ICP,索引条件下推)

上一篇文章一起学习Mysql索引二(索引的高性能策略)中我们提到了Mysql5.7版本的一个改进:"索引条件下推"(index condition pushdown)。那么,今天就让我们来揭开它的神秘面纱。 从ICP(index condition pushdown)的字面意...

2019-07-10 19:34:09

阅读数 224

评论数 0

转载 Navicat Premium 破解方法

Navicat Keygen 这份repo将会告诉你Navicat是怎么完成离线激活的。 注册机是怎么工作的? 如何使用这个注册机 从这里下载最新的release。 使用navicat-patcher.exe替换掉navicat.exe和libcc.dll里的Navicat激...

2019-07-09 14:55:05

阅读数 192

评论数 0

转载 生产环境下JAVA进程高CPU占用故障排查

问题描述: 生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。 问题分析: 1,程序属于CPU密集型,和开发沟通过,排除此类情况。 2,程序代码有问题,出现死循环,可能性极大。 问题解决: 1,开发那边无法排查...

2019-06-26 16:04:05

阅读数 108

评论数 0

转载 一起学习Mysql索引二(索引的高性能策略)

通过上一篇的学习,我们理解了Mysql索引背后的数据结构以及MyISAM和InnoDB两个存储引擎中BTree索引的实现原理。理解了索引背后的机制之后,强哥今天就和大家聊一聊Mysql索引的优化。 不过在此之前我们需要先了解一些概念: 三星系统 索引的选择性 BTree...

2019-06-25 22:08:12

阅读数 72

评论数 0

转载 一起学习Mysql索引一(索引的数据结构)

相信大家在使用Mysql的时候,为了提高查询效率或多或少的会使用到索引。然而,在建立索引的时候,你是根据什么去创建索引对应的列的呢:每一个where查询条件建立一条索引?根据查询的列建立联合索引?还是在多列索引中将选择性最高的列放在第一列来建立索引? 如果我们不能够对Mysql索引有更深的了解,...

2019-06-20 20:31:55

阅读数 49

评论数 0

转载 一文看懂HttpServletResponse

Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。获取网页提交过来的数据,只需要找request对象就行了。要向网页输出数据,只需要找response对象。 一,HttpServletResponse对象介绍 ...

2019-06-11 09:42:47

阅读数 269

评论数 0

原创 spring定时任务的数字星期域不符合常规的cron定义

大家都知道,使用Spring的定时任务非常的简单方便,只需要在配置类上添加@EnableScheduling注解,同时在定时方法上添加@Scheduled(cron = "* * 1 * * *")便可以设置一个每天1点定时跑的任务。 当然,本文不是为了介绍Schedule定...

2019-06-03 21:07:30

阅读数 118

评论数 1

原创 Mysql RR级别依然可能丢失更新数据

上篇推文中,我们了解到Mysql MVCC的相关知识:一文理解Mysql MVCC。今天我们就用学到的相关知识,解决一个问题。 我们都知道,Mysql Innodb引擎的默认事务隔离级别是RR可重复读,也就是在同一个事务中,多次读取相同的数据结果相同。而其底层就是通过:“排它锁+MVCC”来实现...

2019-05-27 23:55:28

阅读数 459

评论数 0

原创 Java mysql 处理特殊字符% _

sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符。如果我们想要模糊查询带有通配符的字符串,如“60%”,“user_name”,就需要对通配符进行转义,有两种方式。如下: 1、反斜杠是转义符,通过反斜杠来转...

2019-05-24 10:35:44

阅读数 1314

评论数 0

原创 一文理解Mysql MVCC

MVCC 就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。 为什么需要MVCC呢?数据库通常使用锁来实现隔离性。最原生的锁,锁住一个资源后会禁止其他任何线程访问同一个资源。但是很多应用的一个特点都是读多写少的场景,很多数据的读取次数远大于修改...

2019-05-23 20:47:31

阅读数 82

评论数 0

转载 对共享可变数据不加同步,虚拟机可能会搞死你

大家都知道,在Java中,除非变量的类型是 long 或 double,否则对于变量的读取和写入操作都是原子性的。也就是说,即使多个线程同时访问并修改变量,也不会有线程安全的问题。 于是,有人可能就会觉得,既然对变量(除long或double)的读取和写入操作是原子性的,那我们是不是在多线程情况...

2019-05-20 23:12:50

阅读数 110

评论数 0

转载 从泛型的使用情况看出你对语言的理解程度(3)

上一篇推文中我们学会了什么是泛型单例工厂,并且了解了它的实现原理:从泛型的使用情况看出你对语言的理解程度(2)。今天我们继续最后一篇关于泛型的学习。 Part1 类型参数和通配符之间存在对偶性,可以使用其中一种方法声明许多方法。例如,下面是静态方法的两种可能声明,用于交换列表中的两个索引项。第...

2019-05-18 22:40:51

阅读数 42

评论数 0

原创 从泛型的使用情况看出你对语言的理解程度(2)

上篇我们提到:Java中的泛型是不可变的,可以通过<? extends E>实现了泛型的协变,<?superE>实现泛型的逆变。从泛型的使用情况看出你对语言的理解程度(1) 今天我们来讲讲泛型单例工厂,在之前的推文中也有推送过单例模式的实现,但是不是用泛型实现的,这次我们...

2019-05-17 18:47:44

阅读数 37

评论数 0

转载 从泛型的使用情况看出你对语言的理解程度(1)

从JDK5开始,泛型就已经作为编译时类型安全监测机制加入进来。可是强哥发现,身边的很多开发人员,能够编写并熟练使用泛型的却非常少。一部分原因在于,开发人员对泛型的理解较浅,外加尽管我们在代码中不使用泛型,绝大部分代码还是可以很好的运行起来。这就导致了泛型的使用往往不尽如人意。 其实,对于泛型的熟...

2019-05-15 23:59:41

阅读数 51

评论数 0

原创 还在用try-finally中关闭各种资源,你不累吗?

相信大多数人在使用Java的时候,经常会使用到try-finally去关闭各种打开的资源,比如数据库连接,文件流等。于是,我们的代码经常就会像这个样子: import java.io.BufferedReader;import java.io.FileReader;importjava.io....

2019-05-13 16:11:44

阅读数 311

评论数 0

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