自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wanxu_pursue的专栏

积土成山,风雨兴焉;积水成渊,蛟龙生焉。

  • 博客(19)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Quartz调度引擎基于MySQL的高可用架构调度延迟分析与解决方案

Quartz调度引擎基于MySQL的高可用架构调度延迟分析与解决方案

2023-12-31 19:30:24 520

原创 《Java并发编程实战》第4章-对象的组合

学习笔记:《Java并发编程实战》第4章-对象的组合

2023-09-24 18:18:32 104

原创 《Java并发编程实战》第2章-线程安全性

《Java并发编程实战》第2章-要点记录

2023-09-17 20:47:57 137

原创 路径穿越漏洞二三事

介绍下路径穿越漏洞的概念、复现与处理。

2023-07-22 11:59:00 432

原创 MySQL分区表相关知识总结

MySQL分区表相关知识总结。

2023-04-22 19:26:01 398

原创 使用Docker快速部署基础组件

【代码】使用Docker快速部署基础组件。

2023-04-22 18:51:49 42

原创 Windows/Linux下一些实用的命令技巧【持续更新】

Windows/Linux下一些实用的命令技巧【持续更新】1.进程、端口相关1.进程、端口相关(1)根据端口(port)杀进程:Windows版(cygwin/git bash中运行)://port为端口号,TCP可按需改成UDPtaskkill -f -t -pid $(netstat -ano|awk '/TCP.*:port/{print $(NF)}'|awk 'NR==1{pr...

2019-09-21 10:27:57 109

原创 一个Servlet线程安全问题实例

1.问题起源几年前开发的一个JavaWeb应用,用于课程实验,同一时段内每次使用的用户量大约20人左右,采用的技术框架为Tomcat+Hibernate,功能仅限于简单的增删查改,并没有复杂的逻辑。但是由于当时对JavaWeb只了解皮毛,所以根本没有考虑到线程安全的问题,导致了后来的问题发生。2.问题症状1.单机本地功能测试时完全没有问题,多人同时使用时才出现问题;2.第一年实验过程中未出...

2019-05-22 00:15:48 146

原创 从一个资源文件找不到的问题谈IntelliJ IDEA中的Java/Maven项目构建

1.遇到的主要问题构建一个Maven项目时,无法将resources文件夹中的资源文件打包进构建后的目录中,具体情况如下图。可见,虽然已将源码中的resources文件夹Mark Directory As Resources Root,但是构建出的target文件夹中并没有resources文件夹下的内容,导致后续在Java文件中读取资源文件找不到(开始一直认为是读取的路径配置不正确,因为...

2019-04-04 01:45:12 514

原创 《Java并发编程实战》第3章-对象的共享

0.概念理解对象状态:就是对象当中的各个成员变量;对象发布:就是将对象的引用交给别人;安全发布:创建对象需要一段时间,等彻底创建完了才把引用给别人(其他线程);逸出/逃逸:不应该发布的对象被发布了;不正确构造:this在构造过程中逸出(即使在构造函数最后一行也不行);线程封闭:不要让不安全的对象被多线程共享;不可变对象:只有一种状态的对象;事实不可变对象:状态在发布后不会改变的可变...

2019-03-09 18:01:27 125

原创 Tomcat8.5.23中StandardWrapper容器对Servlet实例的多线程池化复用机制分析

一、前言在前一篇文章中分析filterChain的线程安全问题时讲到了真正需要考虑线程安全问题与复用的场景是Request与Servlet的实例,本文重点分析一下Servlet实例的线程安全问题与池化复用机制。二、正文1. 什么情况下Servlet实例会发生线程安全问题?直接给答案:(1)多个线程尝试同时修改(未做synchronized/lock/condition等同步处理)同一个实...

2018-10-31 22:56:16 455

原创 Tomcat8.5.23中ApplicationFilterChain对象的线程安全性分析

一、前言在前一篇文章中分析ApplicationFilterChain的源码时遗留了线程安全问题未能彻底理解,因此有了本文,来彻底研究下filterChain对象的线程安全是如何保证的。二、正文1. 源码的运行流程分析(1)ApplicationFilterChain对象的特点与创建特点:经过一路代码跟踪发现,每一个url匹配模式对应于一个ApplicationFilterChain对象...

2018-10-28 02:22:25 1543 1

原创 Tomcat8.5.23 ApplicationFilterChain源码分析(职责链模式)

一、前言因为在前一篇文章中分析JavaWeb项目切入点时提到了一种从Filter入手的思路,所以本文来探究一下多个Filter之间究竟是怎么组织、运行的。二、正文1. 首次运行(1)引入依赖(2)关联程序的配置(3)编译构建a)IDE构建b)Maven构建2. 分析源码切入点(1)JavaWeb项目的切入点(以SpringBoot项目为例)a)由URL路由入手b)由Filt...

2018-10-25 05:12:13 3762 3

原创 JavaWeb项目分析系列(一)-从首次运行到源码切入点

一、前言最近开始研究一些优秀的JavaWeb开源项目,由于自己是新手,以前遇到开源项目时也处理得不是太好,往往浪费很多时间,希望在本次研究的过程中总结出一套方法论来,因此有了这一系列文章。二、正文首次运行拿到一个开源项目,第一步要做的一定是把它跑起来,而这个过程又包含了以下几个小步骤,只有全部搞定后项目才能正常运行。(1)引入依赖大多数Java项目采用Maven管理依赖,需要我们在计...

2018-10-24 13:53:33 2652

原创 图相关算法(二):无向无权图的广度优先遍历(BFS)-非递归版本

核心采用邻接表作为图数据的存储结构对访问过的节点进行记录,文中采用HashSet实现采用队列存放未访问的子节点,不断更新队列BFS采用队列实现很简单,采用递归反而更复杂了本文建立的图结构如下:实现代码如下:package algorithms;import java.util.*;/** * Created by Json Wan on 2018/10/19. * ...

2018-10-19 18:44:47 1224

原创 图相关算法(一):无向无权图的深度优先遍历(DFS)-递归版本

核心采用邻接表作为图数据的存储结构对访问过的节点进行记录,文中采用HashSet实现根据深度优先规则递归遍历未访问节点本文建立的图结构如下:实现代码如下:package algorithms;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util...

2018-10-19 18:05:16 2337

原创 Windows10下Rabbitmq+Redis搭建Celery运行环境

Rabbitmq是依赖于erlang语言的,必须先装erlang;最重要的一点:Rabbitmq的版本与erlang的版本是有对应关系的,一开始装的时候版本对应没有搞对结果遇到nodedown的问题,在网上搜的结果是去从C:/windows/下复制.erlang.cookie到用户文件夹下,结果C:/windows/下根本就没有这个文件!后来一步步按照官方文档走,终于装成功了,官方文档请查看htt

2018-01-09 14:51:04 938

原创 分析一下最简单高效的整数互换方式

正好有空,分析一下之前看到过的整数交换的最高效的方式,打算以后一直采用这种方式了。经验证,负数也是没问题的,可以放心使用。原理:异或操作可以得到两个数间的差异信息,两个数各自结合差异信息即可得到对方的值。/** * Created by Json Wan on 2017/10/7. * Description:异或操作可以得到a,b间的差异信息,a,b各自结合差异信息即可得到对方的值

2017-10-07 06:18:54 391

原创 Maven自定义ArcheType踩过的坑

刚接手一个Java Web的ssh+shiro的项目,前辈已经将模板工程打包好了,留下了一个Jar包,自己在使用时只需通过Maven命令利用该包从命令行生成模板工程即可,十分方便。但是在安装好的模板工程中存在一个痛点,就是pom文件中有两个依赖包已过时,Maven中央仓库里没有了,每次生成模板后都需要去修改那两个地方,令人不爽,决定自己重新打包,生成自己的模板工程,所以就开始了踩坑之旅。1

2017-02-14 15:03:07 12669 2

Android蓝牙模块使用简化工具

Android中的蓝牙模块开发需要进行一系列的配置,这对于新手来说有一定难度。该实例提供两个工具类BlueToothUtils与BlueToothConnection来极大程度地简化蓝牙模块的使用。 用户进行蓝牙开发时,首先将这两个工具类放到你的工程中,其次调用BlueToothUtils中的getSearchedDevices方法(需要实现这个类中的两个接口作为这个方法的参数)来获取搜索到的设备,设备将在接口中返回给你。然后创建一个BlueToothConnection对象,实现相应接口,再调用其connect方法即可完成蓝牙连接。 另外,温馨提示:使用蓝牙模块记得在Manifest中加权限。 这份代码是我在使用过一次蓝牙后封装的,在此分享给大家,顺便赚一点点积分,希望能帮到那些刚入门的同学们,代码中有不妥之处还请指正,谢谢~

2016-11-15

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

TA关注的人

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