
Java
文章平均质量分 82
yydcj
爱好体育运动、喜欢看书
展开
-
奇怪的notify()与notifyAll()的执行问题
摘自http://www.javaworld.com.tw/jute/post/view?bid=5&id=72452&sty=1 於 2004-09-28 14:49大家好!我是Java新手!我發現一個問題捏!notifyAll()可以通知所有等待它的執行緒,我測試用notify()的結果也會通知所有的執行緒捏!請問它們最大的差別在哪呢?執行環境:j2转载 2013-01-10 12:41:10 · 752 阅读 · 0 评论 -
java位运算
Java的位运算(bitwise operators)直接对整数类型的位进行操作,这些整数类型包括long、int、short、char和 byte,位运算符具体如下表:运算符说明左移位,在低位处补0>> 右移位,若为正数则高位补0,若为负数则高位补1>>转载 2013-01-10 12:40:04 · 480 阅读 · 0 评论 -
使用DateUtils和DateFormatUtils处理时间日期转换
在Apache Commons项目的Lang里面,有两个类:DateUtils和DateFormatUtils,专门用于处理时间日期转换。它们在org.apache.commons.lang.time包下。 1. 与SUN的SimpleDateFormat相比,其主要优点是:线程安全。 2. 对应于SimpleDateFormat的format()的方法,是转载 2013-01-10 12:39:41 · 1761 阅读 · 0 评论 -
SimpleDateFormat在多线程下不安全
在工具类中有2个时间格式化和字符串转换成时间的函数,使用了类静态变量 SimpleDateFormat,具体代码如下: public class Utils { public static SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); public static Strin原创 2013-01-10 12:39:56 · 598 阅读 · 0 评论 -
Java正则表达式
正则表达式在处理文本方面用处非常大,最早像在Perl和awk语言中,提供了这种机制,Java在Java 2中也增加了正则表达式这个包java.util.regex。这个包为用户使用正则表达式,提供了易用而全面的支持。我的研究方向是web挖掘。从网页中提取内容,处理文本,当然需要正则表达式这个强大的工具了。 一、首先我们看一下怎么使用正则表达式的一个例子: A Matcher examine转载 2013-04-15 21:15:37 · 539 阅读 · 0 评论 -
volatile 变量使用指南
简介: Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践 中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。Java转载 2013-04-18 11:23:16 · 501 阅读 · 0 评论 -
jmock2.5基本教程
第0章 概述现在的dev不是仅仅要写code而已,UT已经变为开发中不可缺少的一环。JUnit的出现给javaer的UT编写提供了巨大的便利。但是JUnit并没有解决所有的问题。当我们要测试一个功能点的时候,需要把不需要我们关注的东西隔离开,从而可以只关注我们需要关注的行为。jmock通过mock对象来模拟一个对象的行为,从而隔离开我们不关心的其他对象,使得UT的编写变得更为可行,转载 2013-06-09 15:13:33 · 912 阅读 · 0 评论 -
使用Eclipse Memory Analyzer对Tomcat进行内存分析
测试环境Java : JDK1.6Tomcat: Tomcat 5.5Eclipse Memory Analyzer:EMA 1.2.1(直接去Eclipse下载,无需安装哈) 获得Heap Dump文件Eclipse Memory Analyzer是针对Heap Dump文件进行分析的,因此第一步就是要获得Heap Dump文件。步骤:转载 2013-05-31 20:58:23 · 1229 阅读 · 0 评论 -
jmokit 静态方法
前言 Jmockit是一个超强大的ut mock工具, 与其他mock工具最大的特点是可以对final类, 静态方法进行mock! 这是其他mock工具不可比的. 这也成为我们选它做ut的原因. 多种mock工具特色比较: http://code.google.com/p/jmockit/wiki/MockingToolkitComparisonMatrix 一 jmockit加载转载 2013-06-14 08:47:28 · 1965 阅读 · 0 评论 -
使用 Spring 进行单元测试
转自http://www.ibm.com/developerworks/cn/java/j-lo-springunitest/index.html?ca=drs-赵 才文, 技术经理简介: 通过本文,您能够在较短的时间内掌握使用 Spring 单元测试框架测试基于 Spring 的应用程序的方法,这套方法主要涵盖如何使用 Spring 测试注释来进行常见的 Junit4 或转载 2013-06-05 20:31:39 · 875 阅读 · 0 评论 -
java.lang.ClassCastException: $Proxy17 cannot be cast to *.*.*.service.impl.DeviceService
报错:java.lang.ClassCastException: $Proxy17 cannot be cast to *.*.*.service.impl.DeviceService at *.*.*.service.impl.DeviceServiceTest.testDeviceIsOnline(DeviceServiceTest.java:436) at sun.reflect.原创 2013-06-07 11:38:09 · 1816 阅读 · 2 评论 -
正则表达式30分钟入门教程
本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :)别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明转载 2013-06-08 08:41:03 · 614 阅读 · 0 评论 -
JUnit4 详解
转载自:http://leowzy.iteye.com/blog/793077标准的Junit4流程及实现我们先看一个标准的Junit4的运行流程,大致如下:测试类实例化->运行@BeforeClass->运行@Before->运行@Test->运行@After->运行@AfterClass,下面的代码输出明确表明了其运行流程,初学者可运行查看其结果输出。import转载 2013-06-08 17:14:11 · 840 阅读 · 0 评论 -
单元测试中mock的使用及mock神器jmockit实践
在最近的r应用的单元测试中,经常需要用到mock,可以说mock在ut (unit test)中是无处不在的。而在r的ut实践中也找到了一种很简洁的mock方式,不仅解决了ut中所有需要mock的地方,而且可以很少量的代码来完成mock。详见下文。 一.Mock的使用场景:比如以下场景:1. mock掉外部依赖的应用的HSF service的调用,比如uic转载 2013-07-17 16:19:12 · 2834 阅读 · 0 评论 -
java的几种对象(PO,VO,DAO,BO,POJO)解释
一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。 二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人转载 2013-08-09 17:13:12 · 667 阅读 · 0 评论 -
JAVA 基本数据类型长度
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 1、整数:包括int,short,byte,long 2、浮点型:float,double 3、字符:char 4、布尔:boolean 基本型别大小最小值最大值boolean----------------转载 2013-01-10 12:40:07 · 646 阅读 · 0 评论 -
String.format 方法使用介绍
在JDK1.5中,String类增加了一个非常有用的静态函数format(String format, Objece... argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一系列等待被格式化的对象。该函数对c语言中printf函数的用法进行了一定的模仿,因此有c语言基础的人学起来会轻松许多。下面我们着重讨论转载 2013-01-10 12:39:48 · 611 阅读 · 0 评论 -
Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要原创 2013-01-10 12:40:37 · 1051 阅读 · 0 评论 -
java中yield(),sleep()以及wait()的区别
往往混淆了这三个函数的使用。从操作系统的角度讲,os会维护一个ready queue(就绪的线程队列)。并且在某一时刻cpu只为ready queue中位于队列头部的线程服务。 但是当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。 或者当前正在被服务的线程需要睡一会,醒来后继续被服务,这就是sleep。 sleep方法不推荐使用,可用wait。 线程退出原创 2013-01-10 12:40:52 · 569 阅读 · 0 评论 -
Java中的hashcode()和equals()方法详解
1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下: public boolean equals(Object obj) { return (this == obj); } 很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们必需清楚,当String 、Math、还有Int原创 2013-01-10 12:40:47 · 506 阅读 · 0 评论 -
腾讯算法面试题算法与代码
题目是这样的:给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排对应那个数在下排十个数中出现的次数。 上排的十个数如下: 【0,1,2,3,4,5,6,7,8,9】 代码如下:/** *//** * http://yydcj.iteye.com/ */public class Test {原创 2013-01-10 12:40:58 · 1887 阅读 · 4 评论 -
几种阻塞队列
BlockingQueue 获取元素的时候等待队列里有元素,否则阻塞 保存元素的时候等待队列里有空间,否则阻塞 用来简化生产者消费者在多线程环境下的开发 ArrayBlockingQueue FIFO、数组实现 有界阻塞队列,一旦指定了队列的长度,则队列的大小不能被改变 在生产者消费者例子中,如果生产者生产实体放入队列超过了队列的长度,则在offer(或者put,a转载 2013-01-15 20:19:41 · 734 阅读 · 0 评论 -
HashMap原理
对于HashMap主要以键值(key-value)的方式来体现,笼统的说就是采用key值的哈希算法来,外加取余最终获取索引,而这个索引可以认定是一种地址,既而把相应的value存储在地址指向内容中。这样说或许比较概念化,也可能复述不够清楚,来看列式更加清晰:Java代码 int hash=key.hashCode();//-------------------1转载 2013-01-15 20:46:36 · 592 阅读 · 0 评论 -
Java ThreadPoolExecutor 线程池 tips 2:偷借线程
SEDA (Staged event-driven architecture)论文在此: The Staged Event-Driven Architecture for Highly-Concurrent Server Applications尚未阅读,从字面理解有event, 则有event queue有event, 则有event handler有Staged,划转载 2013-01-15 21:06:57 · 815 阅读 · 0 评论 -
MINA原理
客户端通信过程1.通过SocketConnector同服务器端建立连接2.链接建立之后I/O的读写交给了I/O Processor线程,I/O Processor是多线程的3.通过I/O Processor读取的数据经过IoFilterChain里所有配置的IoFilter,IoFilter进行消息的过滤,格式的转换,在这个层面可以制定一些自定义的协议4.最后IoFilter将数据转载 2013-01-15 20:26:36 · 606 阅读 · 0 评论 -
线程dump
Java 的线程线程是指能独立于程序的其它部分运行的执行单元。 JAVA语言能够很好的实现多线程的程序。我们在调试程序,或者在开发后期需要做性能调优的时候,往往也需要了解当前程序正在运行的线程的状态,正在执行的操作,从而分析系统可能存在的问题。在阅读本文之前,应对 Java线程的编程原理,同步机制有一定了解 . 产生 JAVA线程 dumpJAVA 的线程 DU转载 2013-01-15 20:49:36 · 682 阅读 · 0 评论 -
Java ThreadPoolExecutor 线程池 tips 1:单线程吞吐量来估计系统的线程数目
问题:我们需要多大的线程池java中的线程池想必都用过,最简单的是通过Executors工厂方法得到线程池,比如固定池大小,task缓冲为无限大小的队列[java] view plaincopyExecutorService pool = Executors.newFixedThreadPool(poolSize); ... pool.execute(new转载 2013-01-15 21:05:26 · 1060 阅读 · 0 评论 -
一个notify()的实例分析
在java多线程编程中,就要涉及到了对于资源的访问,当多个线程同时访问一个资源的时候就要涉及到一种访问策略。java提供了锁的机制,就是一个线程访问这个资源的时候可以先把这个资源锁住可以用synchronized(the object)来锁定the object,其他访问这个资源的线程就进入阻塞状态,直到当前的线程执行了这个对象的notify或者notifyall其他访问这个对象的阻塞状态的线程才原创 2013-01-10 12:41:07 · 772 阅读 · 1 评论 -
owl-s API一个简单例子
owl-s语义Web服务标记语言, 在Tim Berners-Lee的提出Semantic Web之后,Semantic Web服务业也得到了快速的发展。相关的工具很多,主流的框架有DARPA组织和wsmo组织,后者是欧洲提出的,前者组织提出的框架是主流的。owl-s前身是daml-s,其地址:http://www.daml.org/index.html现在owl-s的最新版本是owl原创 2013-01-10 12:39:35 · 4141 阅读 · 4 评论 -
Access restriction: The type XXX is not accessible due to restriction on required library XXX
- Access restriction: The type OperatingSystemMXBean is not accessible due to restriction on required library C:\Program Files\Java\jdk1.6.0_37\jre\lib\rt.jargoogle了一下,下面是解决方法Eclipse 默转载 2013-04-08 10:21:44 · 1595 阅读 · 0 评论 -
Random介绍
Java代码 import java.util.Random; public class random1 { public static void main(String args[]){ Random random =new Random(); int in = random.nextInt(100);转载 2013-01-10 12:40:02 · 668 阅读 · 0 评论 -
Struts2的工作机制及分析
概述 本章讲述Struts2的工作原理。 读者如果曾经学习过Struts1.x或者有过Struts1.x的开发经验,那么千万不要想当然地以为这一章可以跳过。实际上Struts1.x与Struts2并无我们想象的血缘关系。虽然Struts2的开发小组极力保留Struts1.x的习惯,但因为Struts2的核心设计完全改变,从思想到设计到工作流程,都有了很大的不同。 St转载 2013-08-16 08:48:13 · 805 阅读 · 0 评论