`
文章列表
JAVA的静态代理与动态代理比较 一、概念     代理模式是常用的Java 设计模式,它的特征通常是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理 ...
调用处理器InvocationHandler,与被代理类(委托类)的实例想关联。 动态代理构造实例时必须和调用处理器InvocationHandler相关联,它不会替你作实质性的工作,在生成它的实例时你必须提供一个调用处理器InvocationHandler,由它接管实 ...
  其实AOP的意思就是面向切面编程.   OO注重的是我们解决问题的方法(封装成Method),而AOP注重的是许多解决解决问题的方法中的共同点,是对OO思想的一种补充!    还是拿人家经常举的一个例子讲解一下吧:    比如说,我们现在要开发的一个应用里面有很多的业务方法,但是,我们现在要对这个方法的执行做全面监控,或部分监控.也许我们就会在要一些方法前去加上一条日志记录,我们写个例子看看我们最简单的解决方案     我们先写一个接口IHello.java代码如下: Java代码   package sinosoft.dj.aop.staticaop; ...

drupal简单的体验

 
  第一步: 到 drupal.org下下载最新的Drupal安装包,并确保安装好PHP和Apache环境。   第二步: Drupal解压到www目录下,命名为drupal,然后访问http://localhost/drupal, 按步骤一步一步的安装,中间可能提示要修改目录的权限,另外要将default.settings.php复制并重命名为settings.php。   第三步: Druapl安装好后,看起来界面很简单,进入后台,开始建立导航。   第四步: 进入到administer-->site building-->menus下,选Primary Links,点Ad ...
      Java中的很多对象都override了equals方法,都知道,这是为了能比较两个对象是否相等而定义,如果不需要比较,则不需要定义equals方法。比如StringBuffer类,没有提供equals方法,则说明没有两个StringBuffer对象是相等的。再比如Collections类,全部是静态方法,根本没必要创建对象,所以也就没有提供equals方法。      我们程序中自定义的对象有时候需要比较它们是否相等,也需要重写equals方法。如果我们要将对象放到HashMap或者Hashtable这样的hash集合中的时候,就需要重写hashcode方法了。因为它们是根据h ...

JDK Log的设计思想

 
最近在看《Agile Java》,看到日志一节,收获颇多,所以发个贴总结和大家分享下。 JDK的日志框架的包名是java.util.logging,主要的类有: Java代码   ConsoleHandler     ErrorManager     FileHandler     Formatter     Handler     Level     Logger     LoggingPermission     LogManager     LogRecord     MemoryHandler     SimpleFormatter     ...
 通过分析这两个用法的分析,我们可以理解java中锁的概念。一个是实例锁(锁在某一个实例对象上,如果该类是单例,那么该锁也具有全局锁的概念),一个是全局锁(该锁针对的是类,无论实例多少个对象,那么线程都共享该锁)。实例锁对应的就是synchronized关键字,而类锁(全局锁)对应的就是static synchronized(或者是锁在该类的class或者classloader对象上)。下面的文章做了很好的总结:   1.synchronized与static synchronized 的区别       synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该 ...
这两天准备做一些网站编程的工作,于是对HtmlParse小研究了一下,目的是快速入手,而不是深入研究,做了一下整理,和大家共同讨论一下。 一,数据组织分析: HtmlParser主要靠Node、AbstractNode和Tag来表达Html,因为Remark和Text相对简单,此处就将其忽略了。 Node是形成树结构表示HTML的基础,所有的数据表示都是接口Node的实现,Node定义了与页面树结构所表达的页面Page对象,定义了获取父、子、兄弟节点的方法,定义了节点到对应html文本的方法,定义了该节点对应的起止位置,定义了过滤方法,定义了Visitor访问机制。 Abstract ...
听人介绍说HtmlParser(Java版本)在网页预处理方面做得不错,于是最近几日就研究了一番,虽说没有什么大的收获,但是难得能够让我一个对html标签一无所知的人,认识了其树状结构的玄机,并实现了通过文件目录提取html的标题,关键词,摘要信息,链接及其锚文本,以及主题型网页的正文部分。 以下仅就提取正文部分做个简单拙劣的介绍。在提取网页正文时,对于不同类型的网页应当采用不同的提取策略,而网页又可以分成几种类型呢?粗略地讲,网页就分成两种类型:主题型(topic)和hub型,这种分类有一个明显的差别,即主题型相对hub型网页正文要占可视文本的绝大多数。比如,baidu空间,这种博客类型 ...
浮点数7位有效数字。(应该是单精度数) 双精度数16位有效数字。 浮点数取值范围: 负数取值范围为 -3.4028235E+38 到 -1.401298E-45,正数取值范围为 1.401298E-45 到 3.4028235E+38。 双精度数取值范围: 负值取值范围-1.79769313486231570E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。 C/C++中浮点数的表示遵循IEEE 754标准。 一个浮点数由三部分组成:符号位S、指数部分E( ...
我们经常要将数字进行格式化,比如取2位小数,这是最常见的。Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子。下面是一个例子:   importjava.text.DecimalFormat;    publicclassTestNumberFormat{      publicstaticvoidmain(String[]args){     doublepi=3.1415927; //圆周率     //取一位整数     System.out.println(newDecimalFormat("0").forma ...
最近一直在挑选CMS,Opencms和Magnolia是考察的重点,应该说用下来两者各有千秋,Opencms在功能上非常强大,灵活性上则相对没那么强,可能因为设计上的原因吧,例如它的权限系统的修改,不过在功能上确实是比较强大,基本上而言一个CMS的功能都已经拥有了,呵呵,关于CMS的需求详见我另外一篇blog,但Opencms的学习曲线较大,不是那么容易上手,体现在模板的编写、资源类型的配置上,Magnolia在功能上也是同样的强大,不过相对Opencms来说还不是那么的周全,但Magnolia提供了较好的扩展性,并且容易上手,模板的编写也是比较的容易。不过我就搞不明白为什么这些强大的CMS都不 ...
Functional Test Command-Line Interface Most actions that can be performed from the Functional Test graphical user interface can also be performed from the command line, including: 大多数的动作可以从Functional Test 图形用户界面执行,同时也可以从它的命令行执行,包括: ·         Record a script 记录脚本 ·         Compile a script 编译脚本 ...

XMLNS的作用

 
做WEB页面的人经常会碰到形如<html xmlns="http://www.w3.org/1999/xhtml">这样的代码,那后面的xmlns是表示什么意思呢?     官方概念:xmlns是xml namespace的缩写,也就是XML命名空间,xmlns 属性可以在文档中定义一个或多个可供选择的命名空间。该属性可以放置在文档内任何元素的开始标签中。该属性的值类似于 URL,它定义了一个命名空间,浏览器会将此命名空间用于该属性所在元素内的所有内容。       为什么需要这个xmlns呢,个人理解是这样的,比如在xhtml中,允许你使用各个不同的DT ...
    当你用JDK1.6开发出的新功能,在JDK1.6上rebuild后。放到JDK1.5 or JRE1.5的环境下,可能就运行不了了。Java虽然说是到处运行,但是其实和JVM还是相当有关系滴。       今天碰到的问题是双击JAR文件说找不到main函数。在网上找了个答案结果解决了。方法如下:   问题现象:在双击jar出现标题所示提示,并且该jar文件中确实指定了正确的main class。根源分析:可能是在打开方式中的javaw版本过低。比如jdk1.5编译的class文件用1.4的javaw打开就会出现这个问题。解决方案:控制面板->文件夹选项->文件类型-& ...
Global site tag (gtag.js) - Google Analytics