君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理

随笔分类 - java

1 2 3 下一页

摘要:第一部分析了BEA提供的Java/COM互操作解决方案—jCOM的实现原理;本文是第二部分,比较全面地分析了Weblogic Server的jCOM实现技术之后,通过一个具体实例来说明了jCOM的具体使用过程。WebLogic Server 8.1的发行包中带有大量参考示例,其中有专门供jCOM使用... 阅读全文
posted @ 2014-05-08 02:06 刺猬的温驯 阅读(394) 评论(0) 推荐(0) 编辑

摘要:本文将重点讨论BEA的Java/COM解决方案,是全文的第一部分,细致分析BEA提供的Java/COM互操作解决方案—jCOM的实现原理。一、jCOM简介据Gartner的研究分析,在名列全球前1000名的企业中,大约90%都混合应用了Java和Windows技术。然而,Java技术和微软技术分别提... 阅读全文
posted @ 2014-05-08 02:04 刺猬的温驯 阅读(385) 评论(0) 推荐(0) 编辑

摘要:1、用户自定义的类加载器:要创建用户自己的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定类的名字,返回对应的Class对象的引用。findClassprotected Class<?> findClass(String name) throws ClassNotFoundException使用指定的二进制名称查找类。此方法应该被类加载器的实现重写,该实现按照委托模型来加载类。在通过父类加载器检查所请求的类后,此方法将被 loadClass 方法调用。... 阅读全文
posted @ 2013-04-02 01:59 刺猬的温驯 阅读(9357) 评论(2) 推荐(1) 编辑

摘要:简介:jspf(JavaSimplePluginFramework)是一个插件框架,用于减少小型项目的的开发时间,增加代码的可维护性。他完全隐藏了组件的详细实现,只用到他们的接口。加载组件所需要的代码也很少,便于编写。jspf框架完全基于java注释实现@PluginImplementation,@InjectPlugin,@PluginLoaded,@Timer和@Thread等.(关于java注释:元数据从metadata一词译来,就是“关于数据的数据”的意思。越来越的开源框架都提供了“元数据”支持,其实也就是注释支持。Annotation是从java5开始在语言级别提供的一项新特性,An 阅读全文
posted @ 2013-04-01 23:15 刺猬的温驯 阅读(879) 评论(0) 推荐(0) 编辑

摘要:简介:任何企业应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐。现在来看看 Joda Time,一个面向 Java™ 平台的易于使用的开源时间/日期库。正如您在本文中了解的那样,Joda-Time 轻松化解了处理日期和时间的痛苦和繁琐。在编写企业应用程序时,我常常需要处理日期。并且在我的最新项目中 — 保险行业 — 纠正日期计算尤其重要。使用java.util.Calendar让我有些不安。如果您也曾使用这个类处理过日期/时间值,那么您就知道它使用起来有多麻烦。因此当我接触到 Joda- 阅读全文
posted @ 2013-02-28 18:03 刺猬的温驯 阅读(254) 评论(0) 推荐(0) 编辑

摘要:天地连站群可以根据用户输入的初始关键词,获取该关键词搜索引擎的搜索结果,然后逐条获取这些相关文章的内容。这样就需要面对无数网页的各种编码。为了解决这个问题,引入了下面的解决办法:在引入编码自动识别前,我们有两种途径获取网页的编码信息:其一、通过服务器返回的header里的charset变量获取其二、通过页面里的meta 信息获取正常情况下,如果服务器或者页面有提供这两个参数,而且参数是正确的,那我们抓取网页时就不存在编码的问题了。但是现实总是会难为我们这些程序员,抓取网页时,经常会出现以下几种情况:1.这两个参数缺失了2.这两个参数虽然都提供了,但是不一致3.这两个参数提供了,但是与网页实际的 阅读全文
posted @ 2012-11-19 22:17 刺猬的温驯 阅读(1077) 评论(1) 推荐(1) 编辑

摘要:CDO的全称为Common Data Object 是公用数据结构的意思,这是抽象的一种新型的数据结构,可以设置基本的数据类型,比如:byte、short、int、long、float、double、String,也可以存储这些类型的数组,同样,CDO里可以嵌套新的CDO或者CDO数组,这种数据结构几乎是万能的数据结构,它可以很方便的转化为XML表示,也可以很方便的转化为Json的表示,同样XML或者Json也可以很方便的转化为CDO对象,设想有如下的代码:01CDO cdo1=newCDO();02cdo1.setIntegerValue("classid",1);03c 阅读全文
posted @ 2012-11-01 23:40 刺猬的温驯 阅读(894) 评论(0) 推荐(0) 编辑

摘要:CDO中存储的数据类型用如下的接口常量定义:01packagecom.cdoframework.cdolib.base;0203importjava.io.Serializable;04importjava.text.SimpleDateFormat;050607publicinterfaceDataTypeextendsSerializable08{091011intNONE_TYPE =0;1213intBOOLEAN_TYPE =1;14intBYTE_TYPE =2;15intSHORT_TYPE =3;16intINTEGER_TYPE =4;17intLONG_TYPE =5;18 阅读全文
posted @ 2012-11-01 23:36 刺猬的温驯 阅读(344) 评论(0) 推荐(0) 编辑

摘要:今天看NFS-RPC的源码,看到有这样的代码:Collections.unmodifiableList(servers);突然想起来自己之前看重构时的一种叫Encapsulate Collection的思想,今天以代码为主线再来回顾下:1publicclassCompany {23privateString companyName;//the name of company4privateList<String> clerkList;//the clerk list56//companyName,clearList getter and setter method7........ 阅读全文
posted @ 2012-11-01 23:35 刺猬的温驯 阅读(114) 评论(0) 推荐(0) 编辑

摘要:在模块化Java系列文章的第4篇里,我们将介绍声明式模块化,描述如何定义组件并将它们组织在一起,而无需依赖于OSGi API进行编程。前一篇文章,《模块化Java: 动态模块化》描述了如何通过使用服务(service)给应用程序带来动态模块化特性。它们是通过输出的一个(或多个)可以在运行时被动态发现的接口而实现的。尽管这种方式使得client和server完全解耦,但是又带来一个如何(何时)启动服务的问题。启动顺序在彻头彻尾的动态系统里,服务不仅可以在系统运行的时候装卸,还可以以不同的顺序启动。有时,这是个大问题:无论A和B的启动顺序如何,在系统达到就绪状态并准备好接收事件之前,如果没有事件( 阅读全文
posted @ 2012-11-01 23:24 刺猬的温驯 阅读(235) 评论(1) 推荐(0) 编辑

摘要:本文是“模块化Java”系列文章的第三篇,我们将讨论动态模块化。内容涉及如何解析bundle类、bundle如何变化、以及bundle之间如何通信。在前一篇文章《模块化Java:静态模块化》中,我们讨论了如何构建Java模块并将其作为一个单独的JAR进行部署。文中的例子给出了一个client和一个server bundle(两者在同一个VM中),client通过工厂方法找到server。在该例子中,工厂实例化了一个已知类,当然也可以使用反射来获取一个服 务实现;Spring就是大量运用这种技术把spring对象绑定在一起的。在我们讨论动态服务之前,有必要回顾一下类路径,因为标准Java代码和模 阅读全文
posted @ 2012-11-01 23:19 刺猬的温驯 阅读(321) 评论(0) 推荐(0) 编辑

摘要:模块化是大型Java系统的一个重要特征。在这些项目中构建脚本和项目通常被划分为多个模块,以便改进构建过程,但是在运行时却很少考虑划分模块的问题。在“模块化Java”系列文章的第二篇里,我们将讨论静态模块化(static modularity)。内容包括如何创建bundle、将其安装到OSG引擎以及怎样建立bundle之间的版本依赖。在下一篇文章中,我们将讨论动态模块化(dynamic modularity)并展示bundle如何对其他bundle作出响应。在上篇文章《模块化Java简介》 中讲到,Java在开发时把package作为模块化单元,部署时把JAR文件作为模块化单元。可是尽管像Mav 阅读全文
posted @ 2012-11-01 23:17 刺猬的温驯 阅读(257) 评论(0) 推荐(0) 编辑

摘要:在过去几年,Java模块化一直是一个活跃的话题。从JSR 277(现已废止)到JSR 291,模块化看起来是Java进化过程中的必经一环。即便是基于JVM的未来语言,比如Scala,也考虑了模块化的问题。本文是关于模块化Java系列文章中的第一篇,讨论模块化的含义,以及为什么要关注它。什么是模块化?模块化是个一般概念,这一概念也适用于软件开发,可以让软件按模块单独开发,各模块通常都用一个标准化的接口来进行通信。实际上,除了规模大小有区别外,面向对象语言中对象之间的关注点分离与模块化的概念基本一致。通常,把系统划分外多个模块有助于将耦合减至最低,让代码维护更加简单。Java语言并不是按照模块化思 阅读全文
posted @ 2012-11-01 23:15 刺猬的温驯 阅读(189) 评论(0) 推荐(0) 编辑

摘要:输入输出是指应用程序与外部设备及其他计算机进行数据交流的操作,如读写硬盘数据、向显示器输出数据、通过网络读取其他节点的数据等。任何一种编程语言必须拥有输入输出的处理方式,Java语言也不例外。Java语言的输入输出数据是以流的形式出现的,并且Java提供了大量的类来对流进行操作,从而实现了输入输出功能。所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java把这些不同来源和目标的数据都统一抽象为数据流。数据流可分为输入流和输出流,输入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列。流序列中的数据可以是没有进行加工的原始数据(二进制字节数据),也 阅读全文
posted @ 2012-10-27 14:21 刺猬的温驯 阅读(299) 评论(0) 推荐(0) 编辑

摘要:转载http://www.itzhai.com/java-based-notebook-object-serialization-and-deserialization-of-its-implementation-and-use-of.html1、对象持久化:将一个对象保存到永久存储的设备上的机制。2、对象序列化(serialization):将对象转换为字节流保存起来是把一个对象的状态写入一个字节流的过程。在需要时还原此对象的机制。在一个对象图表中,如果试图序列化一个顶层的对象,所有其他引用的对象都被循环的定位和序列化。同样,在反序列化过程中,所有的这些对象以及他们的引用都被正确恢复。2.1 阅读全文
posted @ 2012-10-26 11:02 刺猬的温驯 阅读(432) 评论(0) 推荐(0) 编辑

摘要:转载http://www.itzhai.com/java-based-notebook-the-object-of-deep-and-shallow-copy-copy-copy-implement-the-cloneable-interface-serializing-deep-deep-copy.html深复制与浅复制:浅复制(deep clone):被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。深复制(shallow clone):被复制对象的所有变量都含有与原来的对象相同的值,除去 阅读全文
posted @ 2012-10-26 10:55 刺猬的温驯 阅读(170) 评论(0) 推荐(0) 编辑

摘要:SingletonClient.getHttpClient().execute(post2,localContext);这里是采用httpclient组件提交http请求,需要导入相应的依赖<!--httpclient--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.2.1</version></dependency><de 阅读全文
posted @ 2012-10-25 12:59 刺猬的温驯 阅读(1027) 评论(0) 推荐(0) 编辑

摘要:关于本系列本系列文章旨在将您的思维方式向函数式思维方式调整,使您以全新的角度来思考常见问题,并提高您的日常编码工作。本系列介绍了函数式编程概念,函数式编程在Java 语言中运行的框架、在JVM 上运行的函数式编程语言、以及语言设计未来的一些方向。本系列主要面向了解Java 以及其抽象层的工作方式,但缺乏函数式语言使用经验的开发人员。在本系列的第一期中,我首先讨论函数编程的一些特点,并演示如何在Java和其他函数语言中体现这些观念。在本文中,我将继续讨论这些概念,讲解一级函数、优化和闭包。但本期的内在主题是控制:什么时候想要控制、什么时候需要控制、什么时候应该放弃控制。一级(First-clas 阅读全文
posted @ 2012-10-14 21:15 刺猬的温驯 阅读(165) 评论(0) 推荐(0) 编辑

摘要:面向对象的编程通过封装可变动的部分来构造能够让人读懂的代码,函数式编程则是通过最大程度地减少可变动的部分来构造出可让人读懂的代码。— Michael Feathers,Working with Legacy Code一文的作者,这篇文章是通过微博发表的关于本系列本系列的目标是重新塑造您对函数式编程思想的看法,帮助您从新的角度看待常见问题,找到改​​进日常编码的途径。它探讨了函数式编程的概念,支持在Java 语言中进行函数式编程的框架,运行在JVM 上的函数式编程语言,以及语言设计的一些未来发展方向。本系列面向想了解Java 及其抽象工作、但在使用功能性语言方面经验很少或根本没有经验的开发人员。 阅读全文
posted @ 2012-10-14 20:54 刺猬的温驯 阅读(168) 评论(0) 推荐(0) 编辑

摘要:我将按照基类的顺序:InputStream、OutPutStream、Reader、Writer来分别对Java I/O加以总结。java中的流,简单理解就是管道里有流水,这个管道连接了程序和文件。InputStream、OutPutStream是字节输入流的所有类的超类。Reader、Writer是字符输入流的所有类的超类。Java IO流对象(其实大家都和懂啦,我这里再赘述一下)1.输入字节流InputStreamIO 中输入字节流的继承图可见上图,可以看出:InputStream 是所有的输入字节流的父类,它是一个抽象类。ByteArrayInputStream、StringBuffer 阅读全文
posted @ 2012-10-05 21:39 刺猬的温驯 阅读(192) 评论(0) 推荐(0) 编辑

1 2 3 下一页