Java
文章平均质量分 56
shrekmu
企者不立;跨者不行;自见者不明;自是者不彰;自伐者无功;自矜者不长。
展开
-
Log4j源代码阅读—Log4j中主要的类
一、 Log4j的主要接口 1、 Appender:封装了Appender的操作,所有Appender都应该实现该接口。主要方法有: 1)、addFiltre()、getFilter()、clearFilters()操作Filter的方法。 2)、close():关闭Appender的方法。 3)、doAppend():当Lo原创 2005-01-28 13:02:00 · 1829 阅读 · 0 评论 -
J2ee程序中的面向对象设计(OO Design Recommendations for J2EE Applications)--摘自ExpertOneOnOneJ2eeDesignAndDev
面向对象程序设计比任何具体技术都重要。但是在使用种种模式的时候,也要防止过度设计,增加不必要的复杂性、浪费时间和经费。1、使用接口降低程序的耦合性(Achieving Loose Coupling with Interfaces) 虽然面向接口编程回比直接面向具体类编程增加一点点的复杂性,但是带来的好处却是巨大的。 1)、可以改变实现而不改变调用的代码。这使我们可以重新实现翻译 2006-06-23 18:08:00 · 864 阅读 · 0 评论 -
客户端与服务端的通讯
一、概述上图简单描述了框架中的客户端与服务端通讯,画面调用doAction()方法,读取画面的配置文件,并根据配置文件将画面上的内容映射到bean中,然后通过Spring HttpInvoker的将组成的bean传到服务端。二、画面映射现在使用的画面映射的方法有两种:及时映射:控件的值改变后就直接映射到bean中,bean中的值改变后也及时映射到画面的控件中。 延时原创 2008-04-28 11:18:00 · 803 阅读 · 0 评论 -
应用 fork-join 框架---硬件革新对软件的发展
IBM DeveloperWorks Java 理论与实践: 应用 fork-join 框架[硬件趋势驱动编程语言语言、库和框架形成了我们编写程序的方式。Alonzo Church 早在 1934 年就曾表明,所有已知的计算性框架对于它们所能表示的程序集都是等价的,程序员实际编写的程序集是由特定语言形成的,而编程模型(由语言、库和框架驱动)可以简化这些语言的表达。另一方面,一个时代原创 2008-04-18 17:03:00 · 727 阅读 · 0 评论 -
序列化性能测试
一、起因 这次项目中客户端和服务器端的通讯为了简单使用了Java的序列化功能,需要传输的地方直接构造一个HashMap传过去就可了,相当的简单。可是看以前做过的系统中都是使用字符串传输的,要不是直接构造一个特殊的字符串序列,要不就是构造一个xml文件都没有直接使用Java的序列化功能。又听说序列化的性能很差,所以在总结这个项目的客户端与服务端的数据传送之前先调查一下,序列化的性能差多少。二、测试原创 2008-04-11 15:11:00 · 1097 阅读 · 0 评论 -
业务框架上消息、异常、Log的实现重点
一、消息体系的实现重点 1、消息必须支持嵌套,应该实现自己的消息对象 2、异常和log必须只支持系统实现的消息对象 3、应该有自己的消息访问对象,可以在其中设定Locale和做一些必要的判断(如MessageID的判断)二、异常体系的实现重点 1、必须有一个共同的父类,用来支持自己的消息对象 2、异常的父类中必须有个属性标志,是否能够继续处理。当发生DB中断异常的时候原创 2008-01-07 13:28:00 · 1951 阅读 · 0 评论 -
业务框架中Message的设计
这个项目由于我们公司设计经验不足,导致现在到后期需要花大量的时间来弥补。这几天在做项目中的消息整理和统一,觉得非常有必要在业务框架中加入相应的功能。一、消息分类 1、成功消息:{0}处理已经成功。 {0}中填入处理的名称,应该是各种按钮的名称。 2、输入check错误消息:{0} 输入check的错误消息没有统一的格式,由各个check贵 2、处原创 2007-12-22 11:00:00 · 906 阅读 · 0 评论 -
第四章网络移动性(Chapter Four: Network Mobility)
一、网络移动性的必然 在PC时代来临之前,计算机界被大型机统治着。那时大型机通过分时系统来给多个终端提供服务。但是随着微处理器的发展,PC逐渐走上历史舞台。早期,PC 总是工作在一个封闭的孤岛上,软件也是工作在独立的PC上。但是很快,PC开始连接上了网络,并随之诞生了客户/服务器(client/server)软 件工作模式。客户/服务器模式最终发展为多层服务模型(N-tier),也就是翻译 2006-06-23 18:04:00 · 894 阅读 · 0 评论 -
第六章 Java类文件(Chapter Six: The Java Class File)
一、什么是Java类文件 Java类文件是Java程序的二进制表示形式。每一个类文件代表一个类或者接口。不可能在一个类文件中放入多个类或者接口。这样就使得无论类文件是在哪一种平台上生成,都可以在任何主机上执行。 虽然类文件是Java体系结构的一部分,但是他并不是与Java语言不可分的。你可以将其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。Java翻译 2006-06-23 18:06:00 · 1118 阅读 · 0 评论 -
Junit3.8.1代码阅读—执行流程(textui)
一、 TestRunner.doRun(Test suite,Boolean wait)方法 1、 创建一个TestResult对象,该对象是实际测试过程中的调度员。他不仅存储了所有测试的结果,调用中的测试方法,并将结果送给ResultPrinter对象,来打印结果。 2、 将生成的ResultPrinter对象设置到TestResult对象中。 3、 取得开始时间原创 2005-02-17 13:14:00 · 1934 阅读 · 1 评论 -
jakarta-struts-1.2.4代码阅读
一、stuts工作原理:1、web.xml中的设置如下 action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml 2 servlet定义了系统中需要用到的servlet的访问标签,类名、原创 2006-06-23 17:49:00 · 1195 阅读 · 0 评论 -
JUnit简介
Junit3.1.8(Keep the bar green to keep the code clean) 一、系统结构图二、Junit测试箴言 1、每次只对一个对象进行UT测试(unit-test one object at a time)这样能使你尽快发现问题,而不被各个对象之间的复杂关系所迷惑。 2、给测试方法起个好名字(choose meaningful原创 2005-02-17 13:09:00 · 1349 阅读 · 0 评论 -
Spring消息代码理解
一、简介1、Spring消息体系的定义:①消息取得接口:MessageSource、HierarchicalMessageSource②消息参数接口:MessageSourceResolvable2、Spring消息体系的实现:①消息取得:AbstractMessageSource、ResourceBundleMessageSource、ReloadableReso原创 2007-05-20 14:36:00 · 4030 阅读 · 6 评论 -
Log4j学习—Log4j简介
Log4j学习—Log4j简介 一、 Log4j使用 1、 配置运行环境,包含log4j-1.2.9.jar,使用BasicConfigurator.configure()配置运行环境。 2、 使用Logger.getLogger(TestLogginLevel.class)获取Logger实例。 3、 使用fatal()、error()、warn(原创 2005-01-25 13:02:00 · 3568 阅读 · 2 评论 -
Log4j源代码阅读—Log4j初始化
Log4j源代码阅读—Log4j初始化 一、 Log4j的初始化(LogManager类中的静态块中)。 1、 以DEBUG等级创建一个RootLogger,然后以RootLogger为参数创建一个Hierarchy类的实例。 2、 Hierarchy类中实现了LoggerRepository接口和RendererSupport接口。LoggerRepositor原创 2005-01-28 12:49:00 · 7354 阅读 · 2 评论 -
Log4j源代码阅读—Logger创建
一、 Log4j中Logger的层次结构 Log4j中的Logger是以一个双向树的结构来组织的,但是Log4j却不是用通常使用的叶子结点和树枝结点来组织Logger的结构。Log4j中使用了虚拟结点(ProvisionNode)和Logger(Logger)结点两种组织树的结构。 用户真正创建的Logger结点用真正的Logger结点表示,而Logger结点的祖先却可能不是真正的Log原创 2005-01-28 13:01:00 · 2893 阅读 · 1 评论 -
第五章Java虚拟机(Chapter Five: The Java Virtual Machine)
一、什么是Java虚拟机 当你谈到Java虚拟机时,你可能是指: 1、抽象的Java虚拟机规范 2、一个具体的Java虚拟机实现 3、一个运行的Java虚拟机实例二、Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有翻译 2006-06-23 18:05:00 · 1696 阅读 · 2 评论 -
第三章安全性(ChapterThree:Security)
Java是一门迎合网络需要而诞生的语言,他的各种特定性的选择都极大的倾斜于网络这一面。而网络环境意味着极大的危险性。为了保护最终用户,Sun提出了沙箱(sandbox)的概念。所有的程序必须在沙箱中执行,不能做任何沙箱不容许的事情,比如写磁盘,开进程等等。一、沙箱(sandbox) 一般认为,你只能运行一个被信任的程序。你必须保证从被信任的渠道获得程序,并且定期查毒,以保证获得程序原创 2006-06-23 18:03:00 · 1126 阅读 · 0 评论 -
业务framework中Exception的设计与log的纪录方式
一,Exception的设计1、uncheck Exception的使用 服务器的framework中,所有的Exception都有框架来处理,业务不需要处理Exception。所以服务器端全部使用uncheck Exceptino。服务器端的uncheck Exception分为三种: SystemException DBException Busine原创 2007-11-29 11:19:00 · 1304 阅读 · 0 评论 -
Eclipse RCP与Spring的整合
Eclipse RCP与Spring的整合 最近上一个项目想在Eclipse RCP中使用Spring,在网上Google了一下发现这方面的资料比较少,知道Spring自己有个Spring-OSGI的项目,可以在 Spring中配置OSGI服务。可是,我只是想在RCP中引入Spring来管理Java Bean,不想去研究那个东西。于是,看看有没有什么简单的方法来解决这个问题。在陈刚的BlO转载 2007-05-25 18:44:00 · 2044 阅读 · 0 评论 -
String Stringbuffer和StringBuilder的区别
String类是不可变类,任何对String的改变都会引发新的String对象的生成;而StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象.当改变字符串内容时,采用StringBuffer能获得更好的性能。既然是为了获得更好的性能,那么采用StringBuffer能够获得最好的性能吗?答案是NO!为什么?如果你读过《Think in Java》,而且对里面描述H转载 2007-08-29 10:11:00 · 878 阅读 · 0 评论 -
JBoss+Spring+Oracle+JTA的设置方法
一、配置数据源 拷贝%JBOSS_HOW%doc/examples/jca/oracle-xa-ds.xml到%JBOSS_HOW%server/default/deploy目录下修改其中的设置: XADS/SecurityCenter原创 2007-08-15 18:06:00 · 6668 阅读 · 3 评论 -
JBoss中Web运用的发布
一,发布运用将运用Copy到%JBOSS_HOME%server/default/deploy/XXXX.war其中XXXX为运用名.比如:SecurityCerter_S.war的目录中SecurityCerter_S为运用名.二,JBOSS的启动JBOSS默认绑定127.0.0.1通过其他的地址不能访问,所以在启动的时候需要添加参数.run.sh -b 0.0.0.0原创 2007-08-14 09:28:00 · 1382 阅读 · 0 评论 -
Eclipse查询中正则表达式的使用
Eclipse中的查询支持使用正则表达式,但是他和标准的正则表达式有所区别。1、替换一个函数调用中参数的顺序。 原句:Assert.assertEquals(RemotingServiceMock.ERR_MSG_LOGIN_SE, getMessage()); 目的:Assert.assertEquals(se.getMessage(), RemotingServiceM原创 2007-05-11 14:02:00 · 2151 阅读 · 0 评论 -
Maven中代理服务器的设定
1、下载Maven后,解压缩2、设定MAVEN_HOME环境变量 3、将${MAVEN_HOME}/bin加入Path中4、编辑${MAVEN_HOME}/bin/settings.xml中的Proxies块如下 | Specification for one proxy, to be used in connecting to the network. | --原创 2007-04-17 16:50:00 · 3552 阅读 · 0 评论 -
逐渐挖掘Static Import
J2SE 1.5里引入了“Static Import”机制,借助这一机制,可以用略掉所在的类或接口名的方式,来使用静态成员。本文介绍这一机制的使用方法,以及使用过程中的注意事项。在Java程序中,是不允许定义独立的函数和常量(当然,准确的说,只是被final修饰、只能赋值一次的变量)的。即使从它们本身的功能来看,完全不需要依附于什么东西,也要找个类或接口作为挂靠单位才行(在类里可以挂靠各种转载 2007-08-29 15:09:00 · 659 阅读 · 0 评论 -
Framework中Context的反思
1、现状 现状:在DigitalCinema项目中的客户端framework中的存在一个静态的DCContext类。 愿望:将系统中所有可配置的属性限制在一个单独的类中,由这个类向其他类提供可配置的各种属性,其属性由spring在配置文件中动态配置。 现实:为了方便使用将他的所有get方法都写成了静态,并且每个使用其属性的类中都省略了本来应该属于自己的属性,而在需要的时候直接调用原创 2007-11-27 21:31:00 · 1009 阅读 · 0 评论 -
Eclipse RCP自动输入援助的实现--swtaddons的使用与扩展
一、效果 将输入过的值保存在临时文件中,当重新输入时可以根据已经输入的文字进行匹配显示。 二、使用 // 生成控件 txtTheaterName = new Text(cmpCondition, SWT.BORDER); txtTheaterName.setBounds(55, 0, 150原创 2007-11-27 17:19:00 · 1776 阅读 · 0 评论 -
利用正则表达式如何实现按字数换行
1、表达式 检索表达式:(^[^/n]{60})([^/n]) 替换表达式:/1/n/22、表达式解释 检索表达式:(^[^/n]{60})([^/n]) 将60个不为换行的字符匹配为第一组,在其后再判断是否为非换行 替换表达式:/1/n/2 将第一组替换为第一组加一个换行原创 2007-11-21 15:21:00 · 1176 阅读 · 0 评论 -
InputStream、OutputStream与Reader、Writer的区别
一、区别 InputStream、OutputStream直接操作byte数组。 Reader、Writer在操作时会进行decode、encode,会根据你的系统属性编码格式对数据进行编码或解码。但是当文件的编码格式与当前系统的不一致时,就需要做编码的转换。二、转换 new OutputStreamWriter(FileUtils.openOu原创 2007-09-06 20:25:00 · 4234 阅读 · 0 评论 -
CheckStyle错误的解决
1、Got an exception - Unexpected character 0xfffd in identifier 这是因为CheckStyle不能识别制定的编码格式。 解决方法:设定TreeWalker的charset属性。不过不知道为什么CheckStyle的Eclipse插件不支持这个属性的设定。在Eclipse中可以将CheclStyle导出,然后修改导出的文件:原创 2007-06-01 17:23:00 · 10030 阅读 · 1 评论 -
Linux下IPv6地址的配置
一、加载Ipv6模块modprobe ipv6二、添加地址/sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::2/64 三、删除地址/sbin/ifconfig eth0 inet6 del 3ffe:ffff:0:f101::2/64原创 2007-01-11 14:55:00 · 2002 阅读 · 0 评论