Java
花罚
一只迷茫的攻城狮
展开
-
单例模式的Java泛型实现方式
单例模式是一个常用的设计模式,主要保证了在内存中永远仅存在一份实例空间。编写高复用性代码的过程中,泛型是难免的。以前已知为每个单独的类进行单例模式实现,而且代码大致都相同,我就在思考是否可以适用泛型将单利模式实现,然后继承泛型类的子类就自动拥有了单例模式。查了一些资料,找了了我最喜欢的实现方式,再次记录以备以后用得上!原创 2016-11-29 22:42:57 · 5056 阅读 · 0 评论 -
quartz实现任务动态增加和删除
java解决定时任务的方法较为常用的是有两种方法:java.util.Timer 和org.quartz;这两种方式各有起优缺点,Timer实现起来非常简单,只需要实现一个TimerTask即可进行定时任务调度,但是Timer定时任务存在几个缺点导致在实际开发中很少用其作为定时器,以下是timer和quartz相比的不足原创 2017-03-29 15:56:55 · 3315 阅读 · 0 评论 -
使用maven打可执行jar包的两种方式
前言打可执行包有两种方式: - 将所有依赖jar的class文件和本地编写的代码一起打包为1个jar包 - 将依赖包和本地编写的代码分开打包,把包结果会有多个jarmaven针对这两种打包方式也有这对应的解决方案, 以下两种方式均只需在pom.xml中增加该代码即可打出可执行包将所有文件打成单独的一个jarpom.xml代码为:<build> <plugins>原创 2017-04-07 17:52:55 · 643 阅读 · 0 评论 -
Java的文件相关操作
java的文件相关操作,本文记录了文件的内容替换、文件夹删除、文件删除功能。原创 2017-02-14 15:19:58 · 467 阅读 · 0 评论 -
基于SVNkit的项目代码贡献量统计
SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操作系统。通过比对每个文件的修改记录,统计每个成员的代码贡献量。原创 2017-02-14 15:11:57 · 2978 阅读 · 1 评论 -
Arrays.toList(T[] t)返回的List不可执行add方法
前言首先让我们来看一段代码:String[] strings = new String[]{"hello","world"};List<String> stringList = Arrays.asList(strings);stringList.add("java");咋眼一看这段代码没什么问题,然而这段带却抛出了一个名为:UnsupportedOperationException的异常。原创 2017-02-20 18:21:02 · 3321 阅读 · 0 评论 -
mongodb中根据时间范围进行查询
时间字段处于数据顶层结构中例如: 当前数据库中有1000条数据,数据的结构为:{ "_id" : { "$oid" : "587dc4069f527a223ca81f4f" }, "index" : 664, "create" : { "$date" : 1484637190565 }}时间字段create就处于数据的最顶层原创 2017-01-17 16:45:38 · 11004 阅读 · 0 评论 -
Java实现BT种子解析
BT种子结构announce:tracker服务器的URL(字符串)announce-list(可选):备用tracker服务器列表(列表)creation date(可选):种子创建的时间,Unix标准时间格式,从1970 1月1日 00:00:00到创建时间的秒数(整数)comment(可选):备注(字符串)created by(可选):创建人或创建程序的信息(字符串)info:一个原创 2016-12-16 09:39:19 · 10576 阅读 · 3 评论 -
基于Jsoup实现的简单爬虫
Jsoup 概念 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。其实在这之前我解析Html一直都是使用HtmlPaser来做,在我第一次看到Jsoup的时候,我就在思考Jsoup的存在意义,既然已经有htmlPaser为什么还会Jsoup出现。原创 2016-12-09 15:19:26 · 3413 阅读 · 0 评论 -
Java实现的简单字符串加密工具
一个使用位运算实现的简单的字符串对称加密工具原创 2016-12-09 09:54:27 · 1126 阅读 · 1 评论 -
基于HTTP的多线程文件下载功能实现
思想文件信息获取的获取方式与单线程的方式一样与单线程相比不同的是将远程文件分块并发获取,然后再并发写入到本地暂存文件中远程文件分块的实现依据是:connection.setRequestProperty(“Range”,”bytes=”+start+”-“+end)本地将文件写入指定位置的实现依据是:RandomAccessFile原创 2016-12-08 19:33:58 · 2026 阅读 · 0 评论 -
基于HTTP的单线程文件下载功能实现
思路使用http请求远程文件地址从响应体中获取文件头信息读取响应体中的输入流,并写入本地文件输出流中原创 2016-12-08 19:32:51 · 1327 阅读 · 0 评论 -
浅谈复合优于继承
在包内进行继承时和在继承专为继承而设计的超类时是安全的,但是继承一些设计初衷并不是为了继承而涉及的类时就不安全了,因为这种类可能在后面的版本中发生变化,如添加新的方法,这个方法可能会与子类中的已有方法冲突,比如子类中有 int getBirthYear()方法,而在新的超类中有一个 String getBirthYear()方法,这样就会直接导致编译不通过;原创 2016-11-20 22:01:03 · 1229 阅读 · 0 评论 -
HttpServletRequest中直接获取实体对象
组件功能:从HttpServletRequest中获取数据并填充到具体的实体对象注:该方法目前应该无法获取json数据进行填充核心方法:coverDomainFromRequest/** * 从request中获取实体对象 * @param e 用于装载数据的空实体对象 * @param request 当前的请求对象 * @param <E> 实体对象类型 * @throws Illeg原创 2016-11-18 10:26:48 · 4868 阅读 · 1 评论 -
拼接可用于in查询字符串
组件功能:将一个可遍历的对象中的数据拼接为可用于sql中进行in查询的字符串注:当前方法还无法进行数组遍历/** * 组件:拼接参数 * 拼接好的样式为:(1,2,3....) * @param t 包含参数的列表 * @param <T>实现Iterable的接口的类型 * @return 拼接好的字符串 */protected <T extends Iterable> Strin原创 2016-11-18 10:13:12 · 2221 阅读 · 0 评论 -
ImageIO处理图片时Unsupported Image Type
异常代码 BufferedImage bi = ImageIO.read(inputStream);异常信息javax.imageio.IIOException: Unsupported Image Type at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageRe...原创 2017-09-12 16:14:42 · 8429 阅读 · 0 评论