java
apexlj
及时当勉励
展开
-
java中判断线程执行是否超时
项目中有个功能需要判断某线程在指定时间内是否执行完毕,FutureTask正好可以实现此功能,FutureTask有个get(long timeout, TimeUnit unit)方法,可以指定超时时间,若超时会抛出TimeoutException。 被调方实现:public <T> void startTimer(Callable<T> task, long timeout) throws T原创 2015-07-16 10:33:56 · 4002 阅读 · 0 评论 -
java中利用jsch执行远程命令,实现sftp
利用jsch可以执行远程命令并实现sftp文件传输,以下为自定义的util:import com.jcraft.jsch.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;原创 2015-08-17 16:41:20 · 4179 阅读 · 0 评论 -
线程池中捕获线程执行异常
在项目中使用线程池时,使用了如下方式:ExecutorService dataUploadPool = Executors.newFixedThreadPool(writeThreadNum);dataUploadPool.execute(new Thread(task))但是这种方式下,主线程无法捕获子线程中的异常,也就无法在子线程出现异常时采取措施。如果换一个实现方式就可以捕获子线程异常,步骤如原创 2015-08-17 16:32:37 · 4859 阅读 · 0 评论 -
批量(bulkload)载入数据到hbase
HBase提供了操作表的java api,但是这种方式是单条数据插入,对于大量数据载入来说效率太低。 对于批量数据导入,直接生成HBase的内部存储结构:HFile,并将其导入到Hbase中的效率无疑是最高。 步骤如下:通过mapreduce将源数据导出为HFile文件 HBaseBulkLoadDriver.javaimport com.sq.platform.hbaseLoadServ原创 2015-08-17 17:07:16 · 1204 阅读 · 0 评论 -
spring DM配置文件加载
spring DM支持Configuration Admin,可以使配置文件的内容注入到程序当中。 包括以下两种方式: 1. 把配置文件内容转换为properties,可以设置配置项默认值<!-- Configuration Admin entry --> <osgix:cm-properties id="cmProps" persistent-id="com.xyz.myapp">原创 2015-09-18 09:18:29 · 633 阅读 · 0 评论 -
利用ThreadPoolExecutor控制并发任务数量
此前在项目中有如下场景:可同时开启多个任务,但要控制同时并发的任务数。这种场景刚好可借用ThreadPoolExecutor阻塞队列线程池来实现,先来看看其构造函数:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,原创 2015-11-23 16:40:03 · 3232 阅读 · 0 评论 -
spring结合mockito
mockito可模拟依赖对象的行为,从而简化跨类的测试。maven获取mockito:<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>1.10.19</version></dependency>以下例:被测类:ConnInfoService原创 2015-12-14 17:18:07 · 1480 阅读 · 0 评论 -
java类加载器
Java在需要使用类的時候,才會将类载入,Java类的载入是由类加载器(Class loader)來完成的。 JVM本身包含了一个ClassLoader称为Bootstrap ClassLoader,和JVM一 样,Bootstrap ClassLoader是用C++实现的,它负责加载系统参数【sun.boot.class.path】中指定的类(例如所有java.*开头的类)。 个人转载 2015-12-16 10:39:01 · 546 阅读 · 0 评论 -
java泛型通配符
定义了通配符的集合是具体类型集合的父类型:public void sort(List<?> dataList)此方法可如此调用List<String> strList = new ArrayList<>();List<Integer> intList = new ArrayList<>();sort(strList);sort(intList);但如果方法如下定义:public void so原创 2015-12-01 10:19:41 · 464 阅读 · 0 评论