Category Archives: BlogJava_首页

© 2013 . All rights reserved.

获取文章中的图片

瀑布流的功能开发完了,感觉还不错,地址是:http://www.656463.com/waterfall,其中也有一些知识点,和大家分享一下。既然是瀑布流,就会涉及到图片,在这里我是获取本站文章中的图片,所以本节就是用jsoup获取文章中的图片   jsoup简单介绍 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 使用jsoup很简单,就是下载jar包,然后就能用里面的API进行解析了 中文地址是:http://www.open-open.com/jsoup/ 下载jsoup地址:http://jsoup.org/download,最新版是jsoup-1.7.2.jar   获取文章图片 获取文章的图片,就是用jsoup在文章内容里解析出文章路径   Java代码  List<String> imgs = JsoupUtil.getImgSrc(article.getContent());    解析工具类   Java代码  /**   * 解释HTML获取图片列表   * @param html HTML内容   * @return 图片列表   */   public static List<String> getImgSrc(String html){       List<String> imgSrcs= new ArrayList<String>();                Document doc = Jsoup.parse(html);       Elements imgs = doc.getElementsByTag(“img”);       for (Element img : imgs) {           String imgSrc = img.attr(“src”);           if(imgSrc!=null && imgSrc.trim().length()>0){               imgSrcs.add(imgSrc);           }       }                return imgSrcs;   }    简单吧,就这样了   本文链接:用jsoup获取文章中的图片-瀑布流系列文章,由领悟书生原创 … Continue reading

© 2013 . All rights reserved.

Android深度探索(卷1):安装C/C++交叉编译环境

      X86架构的CPU采用的是复杂指令集(Complex Instruction Set Computer,CICS),而ARM架构的CPU使用的是精简指令集(Reduced Instruction Set Computer,RISC)。由于这两种架构的CPU使用了不同的指令集,因此在X86架构上开发可运行在ARM架构上的程序就必须要使用交叉编译器。 通常交叉编译器和相关工具包含的了很多可执行文件以及大量的共享库及头文件等资源。这些资源的集合称为交叉编译环境。                  李宁的新浪微博 http://weibo.com/androidguy 欢迎关注       在Internet上可以找到集成好的交叉编译环境,Android NDK和Android源代码中也包含的交叉编译环境。当然,如果我们需要一个完全独立的交叉编译环境,可以下载集成好的交叉编译环境,也可以自己制作 (比较复杂,建议读者下载集成好的交叉编译环境)。下面介绍一个CodeSourcery交叉编译环境,这个交叉编译环境直接下载安装就可以安装。     读者可通过如下的网站访问CodeSourcery下载页面。 http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/     上面的页面并未直接提供CodeSourcery的下载链接,读者可以点击“Download the GNU/Linux Release”链接,并输入Email(建议使用Gmail)、地址等信息,最后点击“Get Lite!”按钮提交信息。如图2-29所示。最后系统会将下载地址发送到刚才输入的Email。 进入下载页面,会看到如图2-30所示的不同版本的下载链接,选择最新的版本即可。               图2-30  CodeSourcery的不同版本        进入CodeSourcery的下载页面后,会看到如图2-31所示的下载链接。目前CodeSourcery有Windows和Linux两个版本。本书使用的是第1个(IA32 GNU/Linux Installer)。      Linux版本的安装文件是bin格式,读者可执行下面的命令安装CodeSourcery。其中package表示CodeSourcery的安装文件名。 sh package.bin      … Continue reading

© 2013 . All rights reserved.

js日期处理类

将平时自己写的和网上收集的一些日期处理方法整理成DateUtil.js /** * 日期处理工具类*/ var DateUtil = function(){     /**      * 判断闰年      * @param date Date日期对象      * @return boolean true 或false      */     this.isLeapYear = function(date){         return (0==date.getYear()%4&&((date.getYear()%100!=0)||(date.getYear()%400==0)));      }          /**      * 日期对象转换为指定格式的字符串      * @param f 日期格式,格式定义如下 yyyy-MM-dd HH:mm:ss      * @param date Date日期对象, 如果缺省,则为当前时间      *      * YYYY/yyyy/YY/yy 表示年份        * MM/M 月份        * W/w 星期        * dd/DD/d/D 日期        * hh/HH/h/H 时间        * mm/m 分钟        * ss/SS/s/S 秒        * @return string 指定格式的时间字符串      */     this.dateToStr = function(formatStr, date){         formatStr = arguments[0] || “yyyy-MM-dd HH:mm:ss”;         date = arguments[1] || new Date();         var str = formatStr;            var Week = ['日','一','二','三','四','五','六'];           str=str.replace(/yyyy|YYYY/,date.getFullYear());            str=str.replace(/yy|YY/,(date.getYear() % 100)>9?(date.getYear() % 100).toString():’0′ + (date.getYear() % 100));            str=str.replace(/MM/,date.getMonth()>9?(date.getMonth() + 1):’0′ + (date.getMonth() + 1));            str=str.replace(/M/g,date.getMonth());            str=str.replace(/w|W/g,Week[date.getDay()]);                   str=str.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():’0′ + date.getDate());            str=str.replace(/d|D/g,date.getDate());    … Continue reading

© 2012 . All rights reserved.

可重复性读写所 显式锁 隐式锁 线程进程同步读写同步(ReentrantReadWriteLock Lock Synchronized )

ReentrantReadWriteLock的特性 1.公平性和非公平性获取锁:     支持按照公平的原则获取锁,即读写线程按照最长等待时间分配锁     若构造为非公平性的,则按照先到先得的顺序,但是有读线程想获取锁时,该顺序被打破 2.重复获得锁:读线程可以重复的获取锁,尽管当前读线程占用 3.锁降级:     可以将write lock 的等级降为 read lock ,顺序是:先获得WriteLock再获得ReadLock,然后释放WriteLock,这时候线程将保持Readlock的持 有。    反过来ReadLock想要升级为WriteLock则不可能 4.中断锁的获取:读锁和写锁的获取期间都允许被中断 5.Condition 类的支持:该支持仅仅就写操作而言,若readLock(0.newCondition() 将会throws UnsupprotedoperationException 6.可监测性:这个类支持操作是否对锁的获取还是竞争,只是为检测系统状态,而不是为了同步而设计的。 显式锁(Lock)和隐式锁(Synchronized)的不同点,括号注明隐式锁与重复读写锁(ReentrantReadWriteLock)的区别 1.不能主动中断正在试图获得锁的线程  (显式写操作锁可以主动的挂起读操作锁,进行写操作) 2.试图获得锁时不能设置超时 3.在对象内部锁只有一个并且内部锁只有一个单一的条件,可能不够用(显示锁可以有多个,不断重复的对读写操作加锁) 对ReentrantReadWriteLock类测试    1.读/写操作的锁多线程测试 : 单独的读操作和写操作何以完成读或写的同步    2.读操作所和写操作锁多线程测试 :  能同步 (必需操作类中将 ReentrantReadWriteLock声明为static的成员变量)   … Continue reading

© 2012 . All rights reserved.

(原)Junit单元测试框架(junit3.x and junit4.x)

Junit单元测试框架介绍 软件测试 ___________________________________________________________________________Unit Test是由程序员本身来编写的。 以下介绍Junit单元测试框架:官网地址www.junit.org JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。 Junit3.x ___________________________________________________________________________ Junit3.x中使用包junit.framework.* 1.       必须继承TestCase类 public class CalculatorTest extends TestCase {     private Calculator cal;     public CalculatorTest() {     }     public CalculatorTest(String name) { … Continue reading

© 2012 . All rights reserved.

简单的监视某个端口的连接数的Linux命令

首先创建一个脚本文件, 我们叫他count_conn吧 #!/bin/shnetstat -anp | grep :$1 | awk ‘{print $5}‘ | awk -F: ‘{print $1}‘ | sort | uniq -c 然后执行命令: watch -n 1 count_conn 8080 最后的参数就是你要监视的端口. 本文链接 from BlogJava_首页 http://www.blogjava.net/mstar/archive/2012/10/30/linux_shell_watch_connection.html hijab laws vary from one Muslim society to another lous vuitton speedy Oscars 2011 Red Carpet Fashion so this is to make everyone happy valentino shoesEdwardian … Continue reading