![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 90
hechurui
一介草夫,不甚言辞
展开
-
java中使用Thumbnails对图片进行处理
Thumbnails处理图片原创 2023-02-15 14:44:17 · 2381 阅读 · 2 评论 -
并发模拟工具(JMeter、Apache Bench、postMan)详解
目录简介: 一、Psotman:Http请求模拟工具 1.1 下载地址 1.2 操作说明(以win64为例) 二、Apace Bench(AB):Apache附带的工具,测试网站性能 2.1 简介 2.2 原理 2.3 Apache Bench安装 2.4 Apache Bench 使用 2.5 使用注意 三、JMeter:Apache组织开发的压力测试工具(使用比较多的工具)转载 2020-10-19 11:58:02 · 13034 阅读 · 2 评论 -
java8 小技巧保证分组groupingBy后排序不变
问题:遇到一个小问题,查询出来一组数据后,按照其中的属性进行groupBy 分组 ,分组后要保证顺序不变。但是实际用groupBy进行分组后,返回的数据是杂乱无章的,没有按照原来list 的顺序返回排查首先去api中查找解决,查看Java 的 java.util.stream 包 Collectors 类 groupingBy 方法实现,结果如下://一个参数 public static <T, K> Collector<T, ?, Map<K, List&l转载 2020-08-25 17:35:34 · 2188 阅读 · 2 评论 -
通过HttpURLConnection模拟post表单提交
package junit;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import org.junit.Test;import com.hrtx.util.StreamTool;public class EsmTest { /** * 通过原创 2016-01-04 19:56:37 · 7070 阅读 · 0 评论 -
定长字节报文,字节截取
指定字节长度的字符串,临时写了个截取...int[] lengthList = {8,32,16,2,14,14,32,120,120,8,100,120,1,120}; int start = 0; int end = lengthList[0]; byte[] valueByte = value.getBytes("GBK"); for (int i原创 2016-01-08 17:39:37 · 4166 阅读 · 0 评论 -
Java安全(加密、摘要、签名、证书、SSL、HTTPS)
对于一般的开发人员来说,很少需要对安全领域内的基础技术进行深入的研究,但是鉴于日常系统开发中遇到的各种安全相关的问题,熟悉和了解这些安全技术的基本原理和使用场景还是非常必要的。本文将对非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS等这些安全领域内的技术进行一番简要的介绍,解释他们之间的关系,同时补充一些周边话题。安全领域的技术众多,但是归根结底,他们都是为了保障如下三个方面:转载 2016-04-04 14:44:17 · 1051 阅读 · 0 评论 -
httpclient在并发量较高的调用下问题如何去解决
前面有提及到httpclient模拟系统之间的交互,如果系统之间的交互不高,是非常轻松的动作,不过httpclient是作为WEB容器的web请求存在,在http协议下,都是无状态的协议,也就是连接-请求-反馈-断开几个基本动作,好在现在WEB容器有了keep-alive的功能,包括很多负载均衡设备:如:LB、LVS、nginx、apache、jboss、tomcat等等都是支持的,虽然支持,但是转载 2016-04-04 15:06:01 · 15979 阅读 · 4 评论 -
Java 动态生成jpg图片
1、生成一个页面数据: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.FileOutputStre原创 2016-07-22 15:15:22 · 19759 阅读 · 2 评论 -
Spring使用之:Quartz定时任务为什么会被阻塞
周日,公司CTO给我打电话说,监控系统的数据从下午1点就不更新了。我登录服务器排除了数据同步问题,查看日志也没有例外抛出,查询了前一天的 日志发现几个数据库表空间溢出例外。最后定位,Spring定时任务挂掉了。重启应用恢复正常。周一早上,同样的问题又发生了,6点开始定时任务又停了。 Spring定时任务为什么会被阻塞呢? 原因: 周一中午,我在进行接口状态监控测试时发现,接口状态查转载 2016-08-03 23:28:45 · 19865 阅读 · 2 评论 -
java计算两个日期的月数差
/** * 获取两个日期相差的月数 * @param d1 较大的日期 * @param d2 较小的日期 * @return 如果d1>d2返回 月数差 否则返回0 */ public static int getMonthDiff(Date d1, Date d2) { Calendar c1 = Cal原创 2016-12-09 14:11:13 · 17387 阅读 · 3 评论 -
实体类与Map互转工具类
import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException;转载 2017-03-06 17:18:52 · 11266 阅读 · 1 评论 -
servlet 中获取 spring 管理的 bean
package spring.servlets; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import java原创 2017-04-03 17:32:01 · 708 阅读 · 0 评论 -
java多线程处理导入数据拆分List集合,同步处理插入数据
获取导入excel文件中的数据,存入list中进行多线程处理,设定每个线程处理多少条数据,进行设定值动态启动线程数量数据,根据线程处理数量拆分动态list数据进行相关业务操作package com.ig.bi.game.controller;import org.apache.log4j.Logger;import org.apache.poi.hssf.usermodel.HSSFRo转载 2017-11-01 11:16:44 · 1056 阅读 · 0 评论 -
[Java并发包学习六]Semaphore介绍
概述emaphore字面意思是信号量。他主要用于控制有限的资源的访问数量。我们看一个生活中常常出现的场景:一个厕所只有3个坑位,但是有10个人来上厕所,那怎么办?假设10的人的编号分别为1-10,并且1号先到厕所,10号最后到厕所。那么1-3号来的时候必然有可用坑位,顺利如厕,4号来的时候需要看看前面3人是否有人出来了,如果有人出来,进去,否则等待。同样的道理,4-10号也需要转载 2015-10-30 11:17:17 · 2633 阅读 · 2 评论 -
[Java并发包学习三]ThreadFactory介绍
概述ThreadFactory翻译过来是线程工厂,顾名思义,就是用来创建线程的,它用到了工厂模式的思想。它通常和线程池一起使用,主要用来控制创建新线程时的一些行为,比如设置线程的优先级,名字等等。它是一个接口,接口中只有一个方法:123456789/** * Constructs a new {@code Thread}. Im转载 2015-10-30 11:14:03 · 3374 阅读 · 1 评论 -
logback日志组件的配置和使用
1. logback介绍Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地转载 2015-05-20 10:34:45 · 1196 阅读 · 1 评论 -
MQ、JMS以及ActiveMQ 关系的理解
Best-text mb-10代码 ms 的一个标准或者说是一个协议. 通常用于企业级应用的消息传递. 主要有topic 消息(1 对多), queue 消息(1对1). activemq 是一个jms 的实现, apache 出的. 另外还其它的实现 jboss 啦啥的... MQ简介:MQ全称为Message Queue, 消息队列(MQ)是一原创 2015-07-31 17:24:25 · 1247 阅读 · 0 评论 -
activemq的几种基本通信方式总结
简介 在前面一篇文章里讨论过几种应用系统集成的方式,发现实际上面向消息队列的集成方案算是一个总体比较合理的选择。这里,我们先针对具体的一个消息队列Activemq的基本通信方式进行探讨。activemq是JMS消息通信规范的一个实现。总的来说,消息规范里面定义最常见的几种消息通信模式主要有发布-订阅、点对点这两种。另外,通过结合这些模式的具体应用,我们在处理某些应用场景的时候也衍生出来转载 2015-07-31 17:26:03 · 1586 阅读 · 0 评论 -
时间工具类
import java.text.ParsePosition;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.regex.Pattern;public class D原创 2015-09-14 10:29:40 · 456 阅读 · 0 评论 -
jodd,超全面强大,简洁的Email
http://jodd.org/doc/email.html原创 2015-10-19 10:28:35 · 695 阅读 · 0 评论 -
[Java并发包学习一]Executor和ExecutorService
本文介绍jdk8并发包中的Executor/ExecutorService这两个接口。Executor接口概述该类提供一个提交任务的方法,提交的任务可以在提交程序本线程运行,也可以在不同的线程运行,也可以在一个线程池中的线程运行,全看如何使用。However, the {@code Executor} interface does not strictlyreq转载 2015-10-30 11:11:43 · 1715 阅读 · 1 评论 -
[Java并发包学习四]Future和FutureTask
概述Future主要用来表示线程异步执行的结果,他提供了检查异步执行的程序是否已经执行完毕、是否已经被取消,并且获取执行结果的方法。它是一个接口,接口的定义如下:12345678public interface FutureV> { boolean cancel(boolean mayInterruptIfRunning);转载 2015-10-30 11:15:13 · 2226 阅读 · 2 评论 -
[Java并发包学习五]CountDownLatch和CyclicBarrier介绍
概述JDK中提供了一些用于线程之间协同等待的工具类,CountDownLatch和CyclicBarrier就是最典型的两个线程同步辅助类。下面分别详细介绍这两个类,以及他们之间的异同点。CountDownLatch类CountDownLatch顾名思义:倒计数锁存器。没错,他就是一个计数器,并且是倒着计数的。他的应用场景如下:一个任务A,他需要等待其他的一些任转载 2015-10-30 11:16:19 · 919 阅读 · 1 评论 -
[Java并发包学习七]解密ThreadLocal
概述相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知!看看JDK中的源码是怎么写的:This class provides thr转载 2015-10-30 11:18:14 · 2681 阅读 · 2 评论 -
[Java并发包学习八]深度剖析ConcurrentHashMap
概述还记得大学快毕业的时候要准备找工作了,然后就看各种面试相关的书籍,还记得很多面试书中都说到:HashMap是非线程安全的,HashTable是线程安全的。那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解。今天我们将深入剖析一个比Hash转载 2015-10-30 11:19:02 · 8983 阅读 · 4 评论 -
[Java并发包学习九]Java中的阻塞队列
什么是阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方法:转载 2015-10-30 11:20:12 · 869 阅读 · 1 评论 -
[Java并发包学习二]Executors介绍
概述Executors类是JDK 1.5开始自带的一个非常强大的主要用于创建各类线程池的工具类。常用方法介绍newFixedThreadPoolnewFixedThreadPool方法有两种函数签名:12public static ExecutorService newFixedThreadPool(int nThreads)转载 2015-10-30 11:13:04 · 1333 阅读 · 0 评论 -
curl伪造reffer抓取图片资源的方法
为了批量抓一些素材,写了段程序,自动抓100多个页面的5000多张图,对方站点防盗链开启了,只能用图片所在页面地址做reffer才能 抓图,于是用curl伪造reffer。函数贴出来,备忘,函数本身可以模仿Baidu蜘蛛。function baiduSpider($url$reffer){ $ch = curl_init(); $user_agent = “Ba转载 2015-05-20 13:59:06 · 1713 阅读 · 0 评论