- 浏览: 1248866 次
- 性别:
- 来自: 北京
-
最新评论
-
masuweng:
嗯,写的很好
Mysql之Incorrect string value: '\xF0\x9F\x98\x89 \xE6...' -
秋水涛静:
来来来 你告诉我你贴的这代码有什么用??你给的下载包又有什么 ...
利用diyUpload做多图片上传及预览 -
andseny:
如果可以的话,求一份源码,谢谢 邮箱:846526948@q ...
利用diyUpload做多图片上传及预览 -
alloyer:
不错!可以使用,已验证。
Spring与jcaptcha集成 -
bewithme:
这和我去官网看有啥区别?
web之日期组件My97DatePicker
文章列表
单元测试代码质量之必备,junit4中有几个有用但是不常用的注解。
前序:
public abstract class StringUtilsExt {
public static boolean isEmpty(String str) {
return StringUtils.isEmpty(str);
}
public static boolean is(String str) {
if (StringUtils.isNotEmpty(str)) {
throw new RuntimeException();
}
return true; ...
场景:
json格式在目前的数据传输中比较流行,那么我们需要把自己的vo类转换为json的string格式。
实现:
public class User implements Serializable {
private static final long serialVersionUID = 4268352833923502792L;
private String id;
private String name;
private List<String> values = new ArrayList<String>();
...
场景:
1.获取ftp列表
2.获取文件
实现:
private static void list() {
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect("ftp.someabcd.com", 21);
ftpClient.setControlEncoding("UTF-8");
ftpClient.login("anonymous", "anonymous@ftp.someabcd.com");
...
场景:
1.使用list的时候需要判断是否为null,同时是否为空
2.使用String的时候我们需要判断是否为null,同时是否为空
3.随机数,随机字符串
代码:
String t=null;
if(t==null ||"".equals(t)){
//do
}
list的操作
List<String> list=null;
if(list==null ||list.isEmpty()){
//do
}
方案:
我们可以采用apache下的common进行常用的操作
import org. ...
JVM性能调试之mat
- 博客分类:
- Java
mat为eclipse的一个内存分析插件,帮助查找内存泄漏和减少内存消耗。
首先基于jmap导出的堆信息
jmap导出参见另一则博客
jmap -dump:live,format=b,file=test.bin 29030
准备代码:
对象:
class User {
private String id;
private String name;
...
JVM性能调试之jmap
- 博客分类:
- Java
jmap 的用途是为了展示java进程的内存映射信息,或者堆内存详情
常用的参数如下:
histo
jmap -histo pid 展示class的内存情况
展示的信息为编号,实例数,字节,类名
例如:
jmap -histo:live 2540
num #instances #bytes class name
----------------------------------------------
1: 20981 908120 [C
2: 21015 50 ...
场景:
mysql有压力测试,会利用压测工具,mock一大批数据,但是hbase没有提供相应的功能,此时我们可以自己写一个mock工具,以满足我们的测试需求。
分析:
我们看下Mapper的源码:
public void run(Context context) throws IOException, InterruptedException {
setup(context);
while (context.nextKeyValue()) {
map(context.getCurrentKey(), context.getCurrentValue(), con ...
场景:
在MapReduce操作Hbase的时候有时候不需要reduce,只需要用Mapper的时候读A表,处理完之后写B表,也就是A表为输入表,B表为输出表。需求就是 A中的有一列E:E,把‘E:E’中为数字的数据保存到B表中。
表说明:
create A,'E'
create B,'E'
方案一:直接在mapper中打开B表,如果不是数字,那么直接Put进去,这个比较简单优缺点就不说了
方案二:TableMapReduceUtil.initTableMapperJob把A表作为输入,同时设置outputValueClass为Put,然后设置Ou ...
Hbase工具一点通之一
- 博客分类:
- MapReduce
介绍两个小工具
1.MapReduce方式统计某表的行数
org.apache.hadoop.hbase.mapreduce.RowCounter
使用方式如下:
bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter TEST
参数说明:
<tablename> [--range=[startKey],[endKey]] [<column1> <column2>...] -Dhbase.client.scanner.caching=100\n -Dmapred.map.tasks.sp ...
需求如下:
hadoop的MR执行时,有时候需要获取当前读取的文件名,如对qq聊天记录的分词解析,每个聊天记录的问题命名为qq1-qq2.txt用来表示qq1对qq2说的所有的聊天记录,那么当我们分词完成之后,需要入Hbase,这个时候rowkey为qq1-qq2,内容为语义分析的结果列表。
方案:
针对此操作需要获取当前读取的文件的路径或者直接读到文件名,从而得到文件名,实现如下:
String id = ((FileSplit) context.getInputSplit()).getPath().getName();
任务调度Quartz的cron表达式
- 博客分类:
- Java
Spring支持基于Quartz的任务调度,那么其cron表达式类似于Linux的crontab,有7个字符构成,详情如下:
位置
代表名称
允许值
允许字符
1
秒
0-59
, - * /
2
分
0-59
, - * /
3
时
0-23
, - * /
4
日
1-31
, - * ? / L W C
5
月
1-12
, - * /
6
星期
1-7
, - * ? / L C #
7
年
空值1970-2099
, - * /
字符的含义说明如下:
普通的web工程,不支持Spring,我们需要执行定时任务,那么步骤如下:
步骤1:Spring的支持,在web.xml中引入Spring的context
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
同时加入Spring的配置文件路径信息
<context-param>
<param-name>contextConf ...
Jsoup为一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。
场景如下:
1.获取京东的图书类目
2.以类目id为key,类目名称为value保存到map中
代码如下:
private static Map<String, String> getWareCategory() {
Connection conn = Jsoup.connect(JDConstants.CATEGORY_URL_FORMAT).userAgent(
JDConstants.MOZILLA_AGENT).timeout(JDConstant ...
对DateFormat的操作之joda-time
- 博客分类:
- Java
采用的版本如下:
Java代码
joda-time-2.1.jar
基于joda-time进行date format的操作代码如下:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
String pattern = "yyyy-MM-dd hh:mm:s
采用的版本如下:
commons-lang-2.5.jar
基于commons-lang进行date format的操作代码如下:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
String pattern = "yyyy-MM-dd hh:mm:ss";
String dateStr = DateFormatUtils.format(calendar, pattern);
Date ...