`
nid007
  • 浏览: 45872 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
之前做java开发的时候,遇到进程卡住的情况都会用jstack来打印一个进程里的线程活动情况。到了安卓开发,发现没有这个命令了,很不习惯。 google了一下,发现还是有办法的。 % adb shell ps | grep android.calendar u0_a6 2596 127 912804 48296 ffffffff b6f62c10 S com.google.android.calendar 2596就是进程ID % adb shell kill -3 2596 成功的话logcat里可以看到下面这样的输出: 引用I/dalvikvm( 2596): Wro ...
看下面的代码: String s= "1-2-|4"; for(String str: StringUtils.split(s, "-|")){ System.out.println(str); } 我期望输出的是:引用1-2 4 但很遗憾,输出的是: 引用1 2 4 换个方法就好了: String s= "1-2-|4"; for(String str: StringUtils.splitByWholeSeparator(s, "-|")){ System.out.prin ...

log4j DEBUG工具类

    博客分类:
  • java
<%@ page language="java" contentType="text/html;charset=UTF-8"%> <%@ page import="org.apache.log4j.Level"%> <%@ page import="org.apache.log4j.LogManager"%> <%@ page import="org.apache.log4j.Logger"%> <%@ page import=&q ...
public static void main(String[] args) { int count=10000; long start = System.currentTimeMillis(); for(int i=0;i<count;i++){ "abc".split("b"); } long mid = System.currentTimeMillis(); for(int i=0;i<count;i++){ StringUtils.split("abc",'b'); ...
使用方法: public static void main(String[] args) { SimpleTreeFilter filter = new SimpleTreeFilter(); filter.addKeyword("禁词1"); filter.addKeyword("禁词2"); filter.addKeyword("其它禁词"); System.out.println(filter.contains("我是合法的")); S ...
使用方法: [root@localhost mping]# ./m.pl 172.16.4.71:11211 ping 172.16.4.71:11211 val=Some value use(2.840ms) ping 172.16.4.71:11211 val=Some value use(0.874ms) ping 172.16.4.71:11211 val=Some value use(0.796ms) ping 172.16.4.71:11211 val=Some value use(0.716ms) ping 172.16.4.71:11211 val=Some value use( ...
用过百度或GOOGLE的人应该都有印象,当你在搜索框输入一些关键字之后,会提示相关的搜索关键词,比如,我输入"g",会提示"google","gmail"一类以"g"开头的关键词。本文讨论的就是这样的一个功能,在后台算法上应该如何实现。 首先我们会有一个关键词列表,包含了 关键词 和它的搜索次数,如: good,5 nid,1 google,10 gmail,100 apple, 22 mail,500 把上面的词条是按照编码值从小到大排序,结果如下: apple, 22,0 good,5,0 google,10,3 ...
因为Erlang里的变量只能一次赋值,所以并没有循环语句,只能用递归。所以所谓的Erlang for循环,也是用递归模拟的。看下面的求和代码: for(Max, Max,Sum) -> Sum+Max; for(First, Max,Sum) -> Sum2=Sum+First, for(First + 1, Max, Sum2). 值得注意的是,如果循环次数过多,我们必须使用 尾递归。否则你的内存很快就会用光。尾递归我的理解是,调用了自身后,再没有别的代码要执行,概念上要说清楚还是比较 麻烦,各位意会吧。 下面是一个 非尾递归的示例 ...
erlang并没有switch这个关键词,只有case,来看代码: #!/usr/bin/env escript main(Args) -> [T|_]=Args, case T of "1" -> io:format("1 match ~n"); "2" -> io:format("2 match~n"); _ -> io:format("other match ~n") end. 保存为switch_case ...
事实上erlang没有else这个关键词 #!/usr/bin/env escript main(Args) -> [T,T2|_]=Args, Name=list_to_integer(T), Name2=list_to_integer(T2), if Name==1;Name2==1 -> io:format("first match ~n"); Name==2,Name2==2 -> io:format("second match~n"); true -> ...
-module(hello). -export([start/0]). start() -> io:format("hello word~n"). 把上面的代码保存为hello.erl,文件名必须跟module名一致,这点跟JAVA是类似的 然后编译:erlc hello.erl 然后运行:erl -noshell -s hello start -s init stop 好的,这样erlang的Hello World总算是完成了。 以下是引申部分: 如果我想给这个start方法传个参数,那怎么办?小改一下 -module(hello). - ...
我们用下面的方式来取得当前时间的时间戳: import time print time.time() 输出的结果是: 1285041535.86 这个结果是1970年到现在时间相隔的秒数 time.time()返回的是浮点数,所以如果需要对时间进行加减的话,就是一个简单的浮点运算 ...
VINT 类型lucene给出了定义是一个可变长度的byte组合来表示一个正整数    VInt lucene给出了一个例子表格   Value First byte Second byte Third byte 0 00000000     1 00000001     2 00000010     ...       127 0 ...
定时器是个好东西,然而最近发现一个问题,程序运行了一段时间后,Timer就失效了。仔细研究才发现不是Timer失效了,而是异常没有处理,来看一段简单代码 public class Test extends TimerTask { public static void main(String[] args) throws SQLException, IOException { long period=5*1000; Timer timer = new Timer(true); timer.schedule(new Test(), 0,period); Syst ...
最近挺想认真学一下python,同时把一些实用的代码和思路跟大家分享一下,也方便自己以后查看。 今天先开个头吧,不一定能写完,写多少算多少。 先列个大纲吧 字符串 类型转换 正则表达式 数组,列表 字典哈希表 文件操作 调用系统命令,可执行程序 网络爬虫 数据库 如果网友觉得上面的大纲不完善,欢迎补充
Global site tag (gtag.js) - Google Analytics