1、 关于求模运算。
在MicroblogCrawler的org.ir.search.mapUIU中,我在缓存map页的替换策略中设置队首指针beginPt来实现队列循环,于是在指针移动时就需要以队列长度BufCount求模。在调试中才发现:虽然 -5÷4=-2…3,而事实上 -5%4=-1。所以在“array[(beginPt++)%BufCount]”这样的语句是没问题的,但在“array[(beginPt--)%BufCount]”就会出现负数而抛出越界异常。由于BufCount是2的整次方,所以用位运算的办法“(begin--)&(BufCount-1)”可以解决以上的问题,而且位运算的效率更高。
2、 关于创建目录。
File.mkDirs() 当目标目录的父目录不存在时会自动创建,比 File.mkDir() 好用。
3、 关于相对路径。
“.\\”是指project的目录;而“..\\”是指project的父目录。
在MicroblogCrawler的org.ir.search.mapUIU中,我在缓存map页的替换策略中设置队首指针beginPt来实现队列循环,于是在指针移动时就需要以队列长度BufCount求模。在调试中才发现:虽然 -5÷4=-2…3,而事实上 -5%4=-1。所以在“array[(beginPt++)%BufCount]”这样的语句是没问题的,但在“array[(beginPt--)%BufCount]”就会出现负数而抛出越界异常。由于BufCount是2的整次方,所以用位运算的办法“(begin--)&(BufCount-1)”可以解决以上的问题,而且位运算的效率更高。
2、 关于创建目录。
File.mkDirs() 当目标目录的父目录不存在时会自动创建,比 File.mkDir() 好用。
3、 关于相对路径。
“.\\”是指project的目录;而“..\\”是指project的父目录。