自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

崔成龙 . 勇往直前

我的个人博客:arronlong.com

原创 你距离家只差一个刷票脚本而已——12306刷票脚本升级版

马上就要回家了,票还没有。你是否用到了我去年发布的刷票脚本呢。传送门~我也在刷票,不过发现12306还是发生了一些变化,在使用过程中,发现会自动退出登录。所以对脚本做了一些改动。顺便加了一些新的功能。具体如下:防自动退出添加刷到票后发起桌面通知勾选某些类型的车选择发站站点选择到站站点选择乘车时间最...

2018-02-06 12:06:32 2827 4

原创 深度剖析ConcurrentHashMap源码

概述 你可能会在一些技术类的书籍上看到下面这样一段关于HahsMap和HashTable的表述: HashMap是非线程安全的,HashTable是线程安全的。 不知道大家有什么反应,我当时只是记住了,知道面试的时候能回答上来就行了…至于为什么是线程安全的,内部怎么实现的,却不怎么了解。...

2017-06-28 22:48:01 1357 3

原创 修改360抢票的刷新频率+突破8车次限制,太简单了

刚分享了一下12306网站刷票防挂js,居然没几个人看,估计都用其他刷票软件了,我之前一直用百度卫士自带的刷票工具,结果今天大家刷的太厉害了,12306不稳定,导致老是登录失败。于是不得不转向国民力荐的360刷票。打开刷票页面,居然让我必须安装360浏览器,这让人很无语。找了半天破解的方法,终于可...

2017-01-03 15:27:05 13801 22

原创 新鲜出炉的12306防挂脚本,有需要的拿走

一年一度的“抢票运动会”又开始了,期间12306网站承受的压力越来越大,极不稳定。随着人们对互联网越来越熟悉,导致大量刷票软件的用户量猛增,大量的访问将12306快压垮了,以至于使用12306自家的刷票助手经常崩溃而无法继续刷票。作为一名“资深”的程序员,我无法忍受了,所以果断出手,写了一段js来...

2017-01-03 10:54:31 4559 10

原创 轻松把玩HttpClient之封装HttpClient工具类(九),添加多文件上传功能

在Git上有人给我提Issue,说怎么上传文件,其实我一开始就想上这个功能,不过这半年比较忙,所以一直耽搁了。这次正好没什么任务了,赶紧完成这个功能。毕竟作为一款工具类,有基本的请求和下载功能,就差上传了,有点说不过去。好了,天不早了,咱干点正事吧。       如果你只想了解怎么用HttpCli...

2016-11-07 14:13:39 9698 0

原创 轻松把玩HttpClient之封装HttpClient工具类(八),优化启用Http连接池策略

写了HttpClient工具类后,有人一直在问我怎么启用http连接池,其实我没考虑过这个问题难过。不过闲暇的时候,突然间想起了这个问题,就想把这个问题搞一搞。

2016-11-07 13:26:36 11529 6

原创 轻松把玩HttpClient之封装HttpClient工具类(七),新增验证码识别功能

这个HttpClientUtil工具类分享在GitHub上已经半年多的时间了,并且得到了不小的关注,有25颗star,被fork了38次。有了大家的鼓励,工具类一直也在完善中。最近比较忙,两个多月前的修改在今天刚修改测试完成,今天再次分享给大家。       验证码识别这项技术并不是本工具类的功能...

2016-06-07 23:05:58 12879 1

原创 轻松把玩HttpClient之封装HttpClient工具类(六),封装输入参数,简化工具类

在写这个工具类的时候发现传入的参数太多,以至于方法泛滥,只一个send方法就有30多个,所以对工具类进行了优化,把输入参数封装在一个对象里,这样以后再扩展输入参数,直接修改这个类就ok了。       不多说了,先上代码:/** * 请求配置类 * * @author arron * ...

2016-02-29 21:55:00 9339 5

原创 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求

最近更新了一下HttpClientUtil工具类代码,主要是添加了一个参数HttpContext,这个是用来干嘛的呢?其实是用来保存和传递Cookie所需要的。因为我们有很多时候都需要登录,然后才能请求一些想要的数据。而在这以前使用HttpClientUtil工具类,还不能办到。现在更新了以后,终...

2016-01-07 11:45:01 15319 3

原创 为百度阅读web端添加工具栏——百阅栏的诞生

在一个偶然的机会,看到了百度阅读这款产品,找了几本免费的书,打开看了看,总体还不错的样子,但是由于公司电脑的屏幕比较宽,而百度阅读设置的阅读宽度是840px的固定宽度,所以看起来就比较费劲了。宽度不提供调整也就算了,连字体、字体颜色、背景色等都没有提供调整的功能,随便打开一个小说网站基本上都会提供...

2015-12-17 13:37:19 3017 1

原创 轻松把玩HttpAsyncClient之模拟post请求示例

如果看到过我前些天写过的《轻松把玩HttpClient之模拟post请求示例》这篇文章,你再看本文就是小菜一碟了,如果你顺便懂一些NIO,基本上是毫无压力了。因为HttpAsyncClient相对于HttpClient,就多了一个NIO,这也是为什么支持异步的原因。不过我有一个疑问,虽说NIO是同...

2015-11-23 09:13:47 23243 11

原创 轻松把玩HttpClient之封装HttpClient工具类(四),单线程调用及多线程批量调用测试

本文主要来分享一下该工具类的测试结果。工具类的整体源码不再单独分享,源码基本上都已经在文章中了。开始我们的测试。单线程调用测试: public static void testOne() throws HttpProcessException{ System.out.println(&q...

2015-11-19 11:21:35 10095 0

原创 轻松把玩HttpClient之封装HttpClient工具类(三),插件式配置Header

上篇文章介绍了插件式配置HttpClient,本文将介绍插件式配置Header。为什么要配置header在前面已经提到了,还里再简单说一下,要使用HttpClient模拟请求,去访问各种接口或者网站资源,都有可能有各种限制,比如说java客户端模拟访问csdn博客,就必须设置User-Agent,...

2015-11-19 11:20:47 19570 1

原创 轻松把玩HttpClient之封装HttpClient工具类(二),插件式配置HttpClient对象

上一篇文章中,简单分享一下封装HttpClient工具类的思路及部分代码,本文将分享如何实现插件式配置HttpClient对象。如果你看过我前面的几篇关于HttpClient的文章或者官网示例,应该都知道HttpClient对象在创建时,都可以设置各种参数,但是却没有简单的进行封装,比如对我来说比...

2015-11-19 11:20:30 19021 0

原创 轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)

搜了一下网络上别人封装的HttpClient,大部分特别简单,有一些看起来比较高级,但是用起来都不怎么好用。调用关系不清楚,结构有点混乱。所以也就萌生了自己封装HttpClient工具类的想法。要做就做最好的,本工具类支持插件式配置Header、插件式配置httpclient对象,这样就可以方便地...

2015-11-19 11:20:16 42430 11

原创 轻松把玩HttpClient之配置ssl,采用设置信任自签名证书实现https

在上篇文章《HttpClient配置ssl实现https简单示例——绕过证书验证》中简单分享了一下如何绕过证书验证。如果你想用httpclient访问一个网站,但是对方的证书没有通过ca认证或者其他问题导致证书不被信任,比如12306的证书就是这样的。所以对于这样的情况,你只能是选择绕过证书验证的...

2015-11-16 16:00:32 16956 3

原创 轻松把玩HttpClient之配置ssl,采用绕过证书验证实现https

上篇文章说道httpclient不能直接访问https的资源,这次就来模拟一下环境,然后配置https测试一下。在前面的文章中,分享了一篇自己生成并在tomcat中配置ssl的文章《Tomcat配置SSL》,大家可以据此来在本地配置https。我已经配置好了,效果是这样滴: 可以看到已经信任该...

2015-11-16 15:11:23 71438 14

原创 轻松把玩HttpClient之模拟post请求示例

HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。 许多需要后台模拟请求的系统或者框架都用的是httpclient。所以作为一个java开发...

2015-11-16 13:23:42 80492 8

原创 Java工作利器之常用工具类(四)——Json工具类,使用正则支持xml与json互转

看到这个题目是不是大部分人都不屑一顾,的确基本上每个java程序猿都写过json工具类,也有很多人都使用json-lib.jar封装过类似的功能,但是我这里使用了正则来支持xml与json的互转,减少了jar包的引入。基本上满足了需求。当然如果你需要更强大的功能,还是最好使用json-lib来实现...

2015-11-16 10:45:30 12233 1

原创 Java工作利器之常用工具类(三)——字符串工具类-智能截取

前两篇博文简单分享了一下数字工具类,现在说说字符串工具类。   相信大家都自己封装过或者用过guava封装的Strings,但是有没有可以智能截取,比如说“截取整数第二个到倒数第二个”的字符串。你是否还需要自己写str.substring(1,str.length()-2)。如果是的话,请继续...

2015-11-16 10:45:17 10151 0

原创 Java工作利器之常用工具类(二)——数字工具类-大数乘法、加法、减法运算

上篇分享了一下数字转汉字的小功能,这里再分享一下大数相乘、相加、相减的功能。其他的不做过多的铺垫了,我先讲一下各个功能的计算原理。   Ⅰ. 乘法运算 为什么先说乘法运算——因为我先做了乘法运算。其实思路也是很多的,但是最终我参考了网络上的一种计算方案,然后做了很多的修改。感觉这个在思路上应...

2015-11-16 10:45:16 7162 0

原创 Java工作利器之常用工具类(一)——数字工具类-数字转汉字

本人是从事互联网金融行业的,所以会接触到一些金融类的问题,常见的一种就是数字转汉字大小写的问题。所以抽空就写了一个小小的工具类,实现了数字转汉字、大数相加、相减、相乘的工具类,希望能帮助有需求的同行们。本篇就分享一下数字转化为汉字的思路吧。   数字转汉字的原理: 拆分:由于整数部分要加权值...

2015-11-16 10:44:59 8860 7

原创 简单的利用UrlConnection,后台模拟http请求

这两天在整理看httpclient,然后想自己用UrlConnection后台模拟实现Http请求,于是一个简单的小例子就新鲜出炉了(支持代理哦): public class SimpleHttpTest { public static String send(String urlStr, M...

2015-11-11 19:13:58 7393 5

原创 你真的真的理解Java的按引用传递吗?

今天在博客上看到《你真的理解Java的按引用传递吗?》这篇博文,就好奇进去看了一下,结果发现,其实说了半天,并没有特别清楚的解释。尤其是对于传递String类型时的例子时,有点发蒙。        接触Java也有好几年了,本来以为这些简单自己早就懂了,结果在看到最后一个例子时,直接就把答案给猜错...

2015-11-05 17:01:03 5743 3

原创 Tomcat配置SSL

本篇博文不讲概念,只介绍如何在Tomcat中配置SSL,以支持Https协议。如果图中与正文描述不符,以正文为主,部分图片是借鉴的。 一、创建证书        证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;这里由于是演示,所以就自己用JDK自带的ke...

2015-11-03 18:30:03 8654 0

翻译 轻松搞定RabbitMQ(七)——远程过程调用RPC

翻译:http://www.rabbitmq.com/tutorials/tutorial-six-java.html 在第二篇博文中,我们已经了解到了如何使用工作队列来向多个消费者分散耗时任务。 但是付过我们需要在远程电脑上运行一个方法然后等待结果,该怎么办?这是不同的需求。这个模式通常叫做RP...

2015-09-30 18:51:13 19348 2

翻译 轻松搞定RabbitMQ(六)——主题

翻译地址:http://www.rabbitmq.com/tutorials/tutorial-five-java.html 在上一篇博文中,我们进一步改良了日志系统。使用Direct类型的转换器,使得接收者有能力进行选择性的接收日志,,而非fanout那样,只能够无脑的转发,如果你还不了解,请阅...

2015-09-29 17:47:33 6385 0

翻译 轻松搞定RabbitMQ(五)——路由选择

翻译地址:http://www.rabbitmq.com/tutorials/tutorial-four-java.html 在前篇博文中,我们建立了一个简单的日志系统。可以广播消息给多个消费者。本篇博文,我们将添加新的特性——我们可以只订阅部分消息。比如:我们可以接收Error级别的消息写入文件...

2015-09-29 14:44:41 9459 0

翻译 轻松搞定RabbitMQ(四)——发布/订阅

翻译地址:http://www.rabbitmq.com/tutorials/tutorial-three-java.html        在前面的教程中,我们创建了一个工作队列,都是假设一个任务只交给一个消费者。这次我们做一些完全不同的事儿——将消息发送给多个消费者。这种模式叫做“发布/订阅”...

2015-09-25 14:28:39 11771 0

翻译 轻松搞定RabbitMQ(三)——消息应答与消息持久化

这个官网的第二个例子中的消息应答和消息持久化部分。我把它摘出来作为单独的一块儿来分享。 Message acknowledgment(消息应答)        执行一个任务可能需要花费几秒钟,你可能会担心如果一个消费者在执行任务过程中挂掉了。基于现在的代码,一旦RabbitMQ将消息分发给了消费者...

2015-09-24 18:48:38 22111 1

翻译 轻松搞定RabbitMQ(二)——工作队列之消息分发机制

上一篇博文中简单介绍了一下RabbitMQ的基础知识,并写了一个经典语言入门程序——HelloWorld。本篇博文中我们将会创建一个工作队列用来在工作者(consumer)间分发耗时任务。同样是翻译的官网实例。

2015-09-24 18:46:29 14861 0

翻译 轻松搞定RabbitMQ(一)——RabbitMQ基础知识+HelloWorld

本文是简单介绍一下RabbitMQ,参考官网上的教程。同时加入了一些自己的理解。官网教程详见:"Hello World!"。 引言        你是否遇到过多个系统间需要通过定时任务来同步某些数据?        你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎...

2015-09-23 16:26:11 11268 4

原创 任务调度(四)——ScheduledExecutorService替代Timer,实现多线程任务调度

上篇博文《任务调度(三)——Timer的替代品ScheduledExecutorService简介》已经对ScheduledExecutorService做了简单介绍,其实使用ScheduledExecutorService来替代Timer也是迫不得已的事情。主要原因如下: Timer不支持多...

2015-08-07 13:25:31 10450 5

原创 任务调度(三)——Timer的替代品ScheduledExecutorService简介

先前的两篇博文《任务调度(一)——jdk自带的Timer》和《任务调度(二)——jdk自带的Timer 动态修改任务执行计划》中,简单介绍了一下Timer,可以实现几本的功能,但是在多线程方面却略显不足。        根据Timer源码,可以看到Timer是单线程的。所以task都是串行执...

2015-08-06 19:07:41 17496 2

原创 jQuery缓存数据——仿Map

最近在工作中遇到了这样一个情景。有些数据是从后台读取的,但是我暂时不需要展示在页面上,那怎么办呀?——缓存呀。今天我就来分享一下我所了解的Jquery缓存数据的方法。 首先分享1篇博文——《读jQuery之六(缓存数据)》,还有2个文档:Jquery中的.data()方法,以及jQ...

2015-07-28 14:36:36 8275 16

原创 任务调度(二)——jdk自带的Timer 动态修改任务执行计划

上一篇博文《任务调度(一)——jdk自带的Timer》中,简单介绍了一下Timer,本文将分享一下如何动态修改Timer制定的计划。       有人问我Timer和Quartz框架的区别。那我就说一下我的理解。Timer毕竟是jdk自带的简易的任务调度工具类。跟Quartz比肯定是鸟枪与大炮...

2015-05-09 15:21:11 9863 10

原创 任务调度(一)——jdk自带的Timer

说到任务调度,大家可能会想到Quartz框架,但是jdk自带的简单任务调度工具类,反而了解的人并不是很多。我觉得如果你的业务相对简单的话,没必要非得用Quartz框架,使用Timer完全可以胜任的。简单来分享一下我了解的Timer。   Timer是jdk中提供的一个定时器工具,使用的时候会在...

2015-05-08 02:13:17 15834 13

原创 httpclient3.x中使用HTTPS的方法

HttpClient请求https的实例: import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.securit...

2015-01-31 21:08:50 4724 5

原创 HttpClient3.x之Get请求和Post请求示例

HttpClient的支持在HTTP/1.1规范中定义的所有的HTTP方法:GET, HEAD, POST, PUT, DELETE, TRACE 和 OPTIONS。每有一个方法都有一个对应的类:HttpGet,HttpHead,HttpPost,HttpPut,HttpDelete,HttpT...

2015-01-31 20:41:24 3796 6

原创 通过反射克隆对象,对象复制(克隆),对象合并工具类 升级版

       上一篇博文提到的工具类,主要是用在对象的复制方面,而且代码有点冗余了。这个工具类也是我现在在做的项目中用到的。        现在在项目中遇到了一个 对象合并的需求。原先的工具类是不满足的,只能全部复制,所以又将原先的工具类做了修改。添加了对象合并的功能,同时还多设置了两个个参数,...

2015-01-30 20:31:36 4665 5

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