随笔分类 -  Utils

常用的一些工具,小技巧。
摘要:一些零散的笔记: mvn命令若干:mvn -h,不会用时,可寻求帮助。mvn clean compile,将.java类编译为.class文件;mvn clean test, 执行单元测试。本质上,还是执行了一个完整的生命周期,clean:clean, resources:resources, compiler:compile, resources:testResources, compiler:testCompilemvn clean package,进行打包。mvn clean install –Dmaven.test.skipmvn clean install,将某jar包安装到mave 阅读全文
posted @ 2012-08-16 21:36 技术草根女 阅读(15573) 评论(0) 推荐(0) 编辑
摘要:D:cd workspacesmvn archetype:create -DgroupId=com.kkk.wap -DartifactId=testappcd testappmvn eclipse:eclipsehttp://hi.baidu.com/mylovechangchu/blog/item/915b24a95f5850f81e17a2c6.htmlconfig.xml(target, assembly可以解决)$ open hutusubscriptions-1.0-SNAPSHOT.jar open: Failed to open /dev/console: Permission 阅读全文
posted @ 2012-07-17 21:45 技术草根女 阅读(335) 评论(0) 推荐(0) 编辑
摘要:【curl调用http】http://www.21andy.com/blog/20080602/1154.htmlhttp://www.programmersheaven.com/2/Art_Curl_3_p7【curl调用wsdl】http://socol.iteye.com/blog/1088152【wsdl vs. soap】http://blog.csdn.net/pautcher_0/article/details/6798351【curl命令详解】http://blog.csdn.net/foxman209/article/details/6278093http://blog.cs 阅读全文
posted @ 2012-07-12 14:53 技术草根女 阅读(1866) 评论(0) 推荐(0) 编辑
摘要:这里,只讨论区别,不讨论用法。我更关心的是,什么时候,该用什么,用哪种更合适。静态类(static)单例(Singleton)级别:类级别对象级别特点:独一份 独一份 保持一个全局一致的对象实例 内存存储:一份类一份类 一份实例 限制:只能维护静态的属性、方法无限制 限制:不可继承,重载,不能实现接口无限制 初始化:可被延迟初始化可被延迟初始化 内部实现: static单例的内部实现,也是static 多线程并发访问:相当相当 性能:相当相当 比较来,比较去,仍然没看到大的区别。。。还... 阅读全文
posted @ 2012-06-27 22:12 技术草根女 阅读(342) 评论(0) 推荐(0) 编辑
摘要:【1】Object >> byte[]. 约束:该对象必须可序列化,且其包含的各属性对象,也必须可序列化 注意:注释掉的部分为hessian实现方式 public static byte[] objectToBytes(Object obj){ byte[] result = null; ByteArrayOutputStream byteOutputStream = null; Obje... 阅读全文
posted @ 2012-06-26 13:27 技术草根女 阅读(2715) 评论(0) 推荐(0) 编辑
摘要:好像,是学过~眼下,却怎也想不起来可以用他~他是谁呢?他就是Java reflect.【背景描述】A的运行,依赖于B框架,还依赖了C jar包。其中,B、C皆为基础jar包,为众多系统使用,但相互间无必然联系。有一天,A提出一个需求,要在dev下,同一线程当中,需要B、C共享一些资源,如某些变量。从实现上来讲,B、C就必须打通,即要相互依赖彼此。【万分纠结】这时候B、C就头痛了。B作为框架jar包,自是不能依赖于任何一个小小的上层jar包,而C作为通用的上层jar包,不止适用于B框架,对于UVW框架,也都是要适用的,也断然不可依赖B。那么,应该怎么办呢?【方案】好了,开始想办法。 方法一描述: 阅读全文
posted @ 2012-06-25 22:40 技术草根女 阅读(463) 评论(0) 推荐(0) 编辑
摘要:【1】从零开始建工程最简单的:http://www.cnblogs.com/alipayhutu其中d)换作:ApplicationContext context = new ClassPathXmlApplicationContext("Config.xml"); Main main = (Main) context.getBean("main"); 更多可参考:http://hi.baidu.com/shutaodream/blog/item/a51b9f1bf1da00b94aedbcd0.html【2】eclipse,工程/文件目录 1. 获取系 阅读全文
posted @ 2012-06-21 22:33 技术草根女 阅读(38991) 评论(0) 推荐(1) 编辑
摘要:【1】从零开始a). 新建Java Project>>新建package>>新建java类;b). import jar包(一个就够),这里我用的是log4j-1.2.14.jar,c). 新建log4j.properties,置于project根目录下;log4j.rootLogger=info, ServerDailyRollingFile, stdout log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.ServerDaily 阅读全文
posted @ 2012-06-21 21:37 技术草根女 阅读(172055) 评论(13) 推荐(21) 编辑
摘要:列举几种线程池实现:【1】ExecutorServicehttp://www.gznc.edu.cn/yxsz/jjglxy/book/Java_api/java/util/concurrent/ExecutorService.html【2】ScheduledExecutorServicehttp://www.gznc.edu.cn/yxsz/jjglxy/book/Java_api/java/util/concurrent/ScheduledExecutorService.html【3】ThreadPoolExecutorhttp://www.gznc.edu.cn/yxsz/jjglxy/ 阅读全文
posted @ 2012-06-20 13:58 技术草根女 阅读(1041) 评论(0) 推荐(0) 编辑
摘要:【Future】http://www.gznc.edu.cn/yxsz/jjglxy/book/Java_api/java/util/concurrent/Future.html【好奇】(1)future.cancel(mayInterruptIfRunning)的内部实现会是什么样子的?可以中断一个线程池里正在执行着的“那一个”任务。可猜想,必定记录着具体线程标识,且发了一个中断信号。(2)猜测,应该只是发一个中断信号,可以中断阻塞中的操作。而如果是while(true); 这样的占用CPU的非阻塞式操作,是中断不掉的,也即线程依旧在跑,占用着线程池资源。【注意】a). 线程池资源有限,有些 阅读全文
posted @ 2012-06-20 13:16 技术草根女 阅读(13892) 评论(0) 推荐(0) 编辑
摘要:【Server端】 先说说,连接配置协议类型(指定commandFactory)、端口、发送缓冲队列最大字节数、回调线程池、允许的最大回调个数、定时扫描连接的时间间隔,云云; 配置都清楚了,那就开工吧根据配置,创建上下文context;可能会有各种事件过来吧,得注册监听器和处理器在context中注册:各种类型的命令,生命周期连接监听器,连接选择器,心跳包处理器,云云; 请个大管家:控制器controller在controller中设置:backlog参数、协议工厂、handler(这个很重要)、关闭连接时逗留的超时值、socket配置、selector池大小、读事件派发器;万事俱备,所有人注 阅读全文
posted @ 2012-06-15 13:52 技术草根女 阅读(1404) 评论(0) 推荐(0) 编辑
摘要:为了解决对共享存储区的访问冲突,Java 引入了同步机制。但显然不够,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止一个。为解决访问控制问题,Java 引入阻塞机制。阻塞指的是暂停一个Java线程同步的执行以等待某个条件发生(如某资源就绪)。sleep():允许指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时 间,指定的时间一过,线程重新进入可执行状态。典型地,sleep() 被用在等待某个资源就绪的情形:测试发现条件不满足后,让线程阻塞一段时间后重新 测试,直到条件满足为止。suspend()& 阅读全文
posted @ 2012-06-13 14:21 技术草根女 阅读(2689) 评论(1) 推荐(0) 编辑
摘要:class Object{element;public synchronized void method(){}}【描述】线程1,对synchronized(element)访问,线程2,对synchronized A()方法进行访问。【结论】获取成员变量的锁,与获取对象的锁,是独立的。并不存在说,要获取对象的锁,就要求成员变量或神马的都没有锁存在了。即,锁成员变量与锁整个对象是独立的。【描述】在前面描述的基础上,如果method()方法内部,又需要对element()同步访问。【结论】那就得等了,等先前对element的锁释放。class Object extends Thread{publ 阅读全文
posted @ 2012-06-13 14:11 技术草根女 阅读(3882) 评论(1) 推荐(0) 编辑
摘要:javac TestRunTime.javajava TestRunTime hostname // 执行“hostname”Linux命令即可看到输出public class TestRunTime { public static void main(String[] args) throws IOException, InterruptedException { String cmd = ""; if(args == null || args.length == 0){ System.out.println("请输入命... 阅读全文
posted @ 2012-06-12 13:24 技术草根女 阅读(14226) 评论(1) 推荐(2) 编辑
摘要:如何中断一个正在执行的线程?线程中断,意味着该线程在完成任务之前停止其正在进行的一切,有效地中止其当前的操作。那么,线程接下为是死亡、还是等待新的任务,或是继续运行至下一步。【方法一】使用共享变量Shared Variable1. 需要线程“周期性”的核查这一变量,然后有秩序的中止任务。2. 将共享变量定义成“volatile”型,或将它的一切方法封入“synchronized”块或方法中。3. 局限性:如果线程被阻塞,便不能核查共享变量,该方法将失效。例如,Object.wait(), ServerSocket.accept()和DatagramSocket.receive(),等等。pub 阅读全文
posted @ 2012-06-11 13:33 技术草根女 阅读(538) 评论(0) 推荐(0) 编辑
摘要:DecimalFormat a = new DecimalFormat("#,###.000"); System.out.println(a.format(Long.MAX_VALUE)); System.out.println(a.format(Long.MIN_VALUE)); 阅读全文
posted @ 2012-06-05 15:41 技术草根女 阅读(239) 评论(0) 推荐(0) 编辑
摘要:public class SimpleQuartzJob implements Job{ @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { String key = "hello1"; String value = (String)arg0.getJobDetail().getJobDataMap().get(key); System.out.println("key is " + key + ", value is .. 阅读全文
posted @ 2012-06-05 14:17 技术草根女 阅读(508) 评论(0) 推荐(0) 编辑
摘要:总的来说,优先级:Quartz > ScheduledThreadPoolExecutor > Timer方式调度方式线程方式异常处理Timer(不建议使用) 基于绝对时间,因此任务对系统时间的改变是敏感的用单线程方式来执行所有的TimerTask,如果某个TimerTask很耗时则会影响到其他TimerTask的执行不会捕获由TimerTask抛出的未检查异常,故当有异常抛出时,Timer会终止,导致未执行完的TimerTask不再执行ScheduledThreadPoolExecutor基于相对时间。这这同时也意味着,没法实现“请在每天00:05帮我执行myTask”这样的需求 阅读全文
posted @ 2012-06-04 23:19 技术草根女 阅读(587) 评论(1) 推荐(1) 编辑
摘要:【1】典型应用CountDownLatch begin = new CountDownLatch(1);begin.countDown(); //锁计数减1begin.await(); //阻塞等,直到begin为0,或当前线程被其他线程中断http://man.ddvip.com/program/java_api_zh/java/util/concurrent/CountDownLatch.html【2】Thread, 几个一直然不清的方法以下为Thread的自带方法:interrupt() 中断线程.Thread.interrupt()方法,不会中断一个正在运行的线程。这一方法实际上完成的 阅读全文
posted @ 2012-05-28 14:47 技术草根女 阅读(1702) 评论(0) 推荐(0) 编辑
摘要:ERROR,一般由虚拟机抛出,例如OOM、系统中的内部错误以及资源耗尽的情形。这种情形程序员不用抛,想抛也抛不了。。 Exception,是所有异常的大爷(父类),这里我将他简单的划分为:RuntimeException和non-RuntimeException。(前者称为unchecked异常,后者称为checked异常) RuntimeException体系,一般都是程序员的错。例如,错误的类型转换、数组越界访问和试图访问空指针等等。这种异常,不catch的话,eclipse不会报错,异常会一直往上抛,直到线程停掉。用于调试,挺好的。当然也可以catch,进行些处理。无视自己已经酿成的错. 阅读全文
posted @ 2012-05-27 16:37 技术草根女 阅读(317) 评论(0) 推荐(0) 编辑