- 博客(511)
- 资源 (46)
- 收藏
- 关注
原创 利用FreeMarker生成java源代码
一 FreeMarker简介Apache FreeMarker是一个Java模板引擎库,官网:http://freemarker.incubator.apache.org/。 Apache FreeMarker is a template engine: a Java library to generate text output (HTML web pages, e-mails, con
2015-12-22 16:31:53 13834 1
原创 Joda-Time 用法
今天在Spring官网demo中无意看到了Joda-Time,于是去Joda-Time官网了解了一下,瞬间被它的强大功能和易用性所折服。Joda-Time简介Joda-Time — 面向 Java 应用程序的日期/时间库的替代选择,Joda-Time 令时间和日期值变得易于管理、操作和理解。事实上,易于使用是 Joda 的主要设计目标。其他目标包括可扩展性、完整的特性集以及对多种日历系统的支持。并且
2015-12-21 19:52:25 27031 3
原创 Maven Missing artifact jdk.tools:jdk.tools:jar:1.7 解决办法
在Eclipse中创建一个新的Maven工程,引入依赖时 pom.xml 一直报这个错:“Missing artifact jdk.tools:jdk.tools:jar:1.7” 最终在 stackoverflow 上找到答案了,直接在pom.xml中加上一个依赖项目:<dependency> <groupId>jdk.tools</groupId> <artifactId>jd
2015-12-17 14:27:18 11603 3
原创 使用Git上传项目代码到github
Github是一个基于git的代码托管平台,我们可以创建自己的仓库(repository), Github上的仓库分为两种:私有仓库(private repository)和公共仓库(public repository),二者的区别在于:私有仓库你可以选择谁可以看到它以及谁可以commit,它是收费的;公共仓库对任何人都是可见的,任何人都可以commit,它是免费的。对于广大普通开发者来说公共仓库就
2015-12-09 21:42:33 5476 3
原创 CGlib动态代理实战
CGlib是什么CGlib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。 官方介绍: cglib - Byte Code Generation Library is high level API to generate and transform Java byte code. It is used by AOP, testing, data
2015-12-09 16:15:32 1628
原创 生产者—消费者模型及实现
一、什么是生产者消费者模式生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。
2015-12-07 18:16:53 1023
原创 Quartz实现定时任务
在开发过程中,我们经常会遇到一些需要异步定期执行的批处理任务。比如夜里低峰时段的备份、统计,或者是每周、每月对数据库表进行整理,这时就需要通过使用定时任务管理器来辅助我们完成这些任务的定时触发。常见的定时任务管理器多分为三类,分别是:操作系统(OS)级别的定时任务管理器,例如linux的crontab、windows自带的计划任务。OS级不用专门开启监听器,占用系统资源较少,而且操作简便,是定时任
2015-12-03 19:17:16 3322
原创 Linux zip/unzip 命令
一. zip命令 功能说明:zip是个压缩文件命令,文件经它压缩后会另外产生具有”.zip”扩展名的压缩文件。 语 法: 参 数: -A 调整可执行的自动解压缩文件。 -b<工作目录> 指定暂时存放文件的目录。 -c 替每个被压缩的文件加上注释。 -d 从压缩文件内删除指定的文件。 -D 压缩文件内不建立目录名称。 -f 此参数的效果和指定”-u”参数类似,但不仅
2015-07-20 11:45:42 1083
原创 Java 图片添加水印
最近接到一个需求 将所有商户详情大图加上文字水印,实现起来并不复杂,其实就是在原图之上再画一张图片(drawImage)或者文本文字(drawString),Java SE中提供了 java.awt.image包和javax.imageio包可以实现非常方便的实现 图片水印或者文字水印。1.图片水印package com.ricky.image;import java.awt.Alph
2015-06-30 14:03:35 1785
原创 JDK自带VM分析工具jps|jstat|jmap|jconsole使用
一、概述 Oracle JDK中提供的几个监控工具非常好用。下面简单介绍一下这几种工具。(注:这些工具在JDK5.0以上版本的都集成进去了,不须特意安装,路径在$JAVA_HOME/bin/目录下)jps 与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。 jstat 一个极强的监视V
2015-06-25 20:22:45 1812
原创 Eclipse设置断点无效的解决办法
今天在用Eclipse进行断点调试时,发现明明设置了断点,可是Eclipse直接无视你设置的断点直接就执行完了,让人非常抓狂。而且设置的断点还有 一道斜杠,看着怪怪的最后找到解决办法了:通过 Run——Skip All Breakpoints来搞定,就是取消你“跳过所有断点”的设置。
2015-06-11 16:22:32 6596
原创 java.lang.IllegalArgumentException: Service Intent must be explicit
最近开发的一款应用在Android 5.0 手机上出现了崩溃现象,log信息如下:05-14 12:48:36.363 11954 11954 E AndroidRuntime: java.lang.RuntimeException: Unable to start receiver com.yulore.recognize.android.receiver.PhoneStateReceive
2015-05-14 13:53:19 8666
原创 Google Android性能优化课程资源
最近由于恋爱、工作原因很少有时间更新博客了,虽然现在不做Android开发了但一直都在关注这块,这里分享一下刚发现的两个非常不错的在线课程。 2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何
2015-04-15 14:41:25 1241
原创 Android 手机录制wav格式音频文件实现
上一篇文章已经实现了在Android手机上使用MediaRecorder录音,但是后期在处理这些音频文件的时候发现3gp格式的音频不大方便处理,使用wav格式的音频处理起来更方便一些!这里需要用到AudioRecord 类,通过 int android.media.AudioRecord.read(byte[] audioData, int offsetInBytes, int sizeInByt
2015-03-26 16:10:24 15796
原创 Android手机通话录音实现
最近在做语音IVR的时候需要对通话进行录音,主要用到了MediaRecorder类,实现代码如下:MediaRecorder mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(Med
2015-03-19 16:48:36 6848 3
原创 Linux curl命令http请求3xx跳转解决办法
之前开发的一个项目是使用Linux curl命令来实现文件下载,之前跑着都挺好的,最近两天抽风了文件怎么都下载不下来。查看log发现是请求的页面404错误了,于是把log中打印的链接粘贴到Chrome中居然可以打开,F12一看原来是请求的这个链接有一个302的跳转。 Google查了一下发现其实 curl 命令是支持请求重定向的,可以通过 -L 参数配置,如下curl -L
2015-03-09 14:06:08 38150 2
原创 Java 自定义类加载器实现插件式开发
由于种种原因最近一直没更新博客,最近开始接触Solr,认识越深越是被它优秀的架构设计所折服。同时自己也在思考改如何去实现跟它类似的系统。刚好公司的聚类系统也想借鉴Solr的开发模式,于是这里以聚类系统为原型来讲解,纯属个人天马行空的想法,有不成熟的地方恳请大家指出!这里ClassLoader_Main 被假定为我们的主程序,ClassLoader_Extensi
2015-01-23 16:32:15 14268 3
原创 Java Runtime.exec 执行shell命令
最近做一个团购文件下载服务的时候,自己偷懒不想写文件下载的逻辑,而且Linux的curl 命令非常强大,于是乎想直接通过Java来执行curl命令做下载。 在Java中,你可以通过Runtime.getRuntime().exec 来执行外部的shell命令。Process proc = Runtime.getRuntime().exec("ping www.baidu.com
2015-01-23 10:54:08 9598
原创 Google Gson使用小结
最近开始接触使用Google Gson Library,个人觉得还是挺好用的,在这里简单介绍一下开发中 Gson的常用功能!1.Serialize JSONpackage com.ricky.java.gson;import java.util.ArrayList;import java.util.List;import com.google.gson.Gson;import c
2014-12-15 16:12:08 3027
原创 Builder模式两种常见写法
Builder模式是23中常见模式的一种,最近做Android SDK开发中使用Builder模式比较多一点,自己写了一个简单示例demo,在这里mark一下,如有写的不对的地方还请大家指正!/** * A simple demo of builder pattern * @author Ricky Feng * */public class LruCache { private
2014-12-12 15:22:17 9811
原创 K-Means(K均值) 算法
K-Means算法的基本思想是初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个簇。然后按平均法重新计算各个簇的质心,从而确定新的簇心。一直迭代,直到簇心的移动距离小于某个给定的值。K是我们事先需要给定的聚类数目(K小于样本的个数N)。K-Means聚类算法主要分为三个步骤:(1)随机在样本中选取K个样本点作为聚类中心。(2)计算每个点到聚类中心的距离,将每个点聚类到
2014-12-11 15:16:14 4551
原创 KNN(K近邻)算法
介绍 K近邻算法又叫KNN(K Nearest Neighbor)算法,这个算法是机器学习里面一个比较经典的算法,其中的K表示最接近自己的K个数据样本。KNN和K-Means算法的区别K-Means算法用来聚类,用来判断哪些样本是一个比较相近的类型,属于非监督算法。KNN算法是用来做分类的。也就是说,有一个数据集里的样本的label已经确定了,然后,给
2014-12-10 18:25:16 1555
原创 机器学习概述
概要 机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与统计推断学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可
2014-12-07 21:47:10 1660
原创 Android AIDL开发
Introduction 在Android中, 每个应用程序都运行在自己的进程中,拥有独立的内存空间。但是有些时候我们的应用程序需要跟其它的应用程序进行通信,这个时候该怎么办呢?显然, Java中不允许跨进程内存共享.无法直接交换数据。Android中可以采用AIDL的方式实现进程间通信(interprocess communication(IPC))。
2014-12-07 20:45:47 1961
原创 Linux curl get请求参数多个参数被截断的解决方法
最近做团购相关的服务,使用Linux下的curl命令来请求团购XML信息,今天在使用curl访问一个链接的时候出现了一个很奇怪的现象,请求的url:http://api.union.meituan.com/data/api?city=%E5%8C%97%E4%BA%AC&limit=10&key=xxxxx&sort=1
2014-11-24 16:51:20 20062 1
原创 Android 数据库加密
一 简介 SQLite是一个轻量的、跨平台的、开源的数据库引擎,它的读写效率、资源消耗总量、延迟时间和整体简单性上具有的优越性,使其成为移动平台数据库的最佳解决方案(如Android、iOS)。Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作,具体就不详细说明了。 然而,Android平台自带的SQLite
2014-11-16 22:29:18 7008 5
原创 Java 内省(Introspector)与反射(Reflect)
一、java反射机制 Java反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。用一句比较白的话来概括,反射就是让你可以通过名称来得到对象 ( 类,属性,方法 ) 的技术。例如我们可以通过类名来生成一个类的实例;知道了方法名,就可以调用这
2014-11-04 14:45:21 2276
原创 Java BitSet
BitSet简介实现了一个按需增长的位向量。位 set 的每个组件都有一个boolean值。用非负的整数将BitSet的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作,可以使用一个BitSet修改另一个BitSet的内容。默认情况下,set 中所有位的初始值都是false。每个位 set 都有一个当前大小,也就是该位 set 当前所用空间的位
2014-10-29 12:03:48 2159
原创 Apache Commons Compress
The Apache Commons Compress library defines an API for working with ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE and Z files.
2014-10-27 12:00:47 4182 1
原创 Java Exchanger
JDK Exchanger类允许在2个线程间定义同步点,当2个线程到达这个点,他们相互交换数据类型,使用第一个线程的数据类型变成第二个的,然后第二个线程的数据类型变成第一个的。A synchronization point at which threads can pair and swap elements within pairs. Each thread presents some ob
2014-10-16 12:14:22 1220
原创 Java Semaphore
Semaphore简介Semaphore是一个计数信号量,它的本质是一个"共享锁"。信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。 线程可以通过release()来释放它所持有的信号量许可。Semaphore的函数列表
2014-10-16 11:16:44 1467
原创 Log4j 配置详解
十一之后的第一天配置根 Logger Logger 负责处理日志记录的大部分操作。 其语法为: log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中, level 是日志记录的优先级,分为 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL 或者自定义的
2014-10-08 13:11:04 1218
原创 Java OCR(使用Tess4J)
最近突然对手机上的OCR功能比较感兴趣,于是乎研究了一下Java OCR技术,在Google上找到
2014-09-29 11:34:52 41673 20
Android仿QQ消息列表ListView滑动删除效果
2014-02-11
Android SlidingMenu仿网易新闻布局
2013-12-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人