Welcome 微信登录

首页 / 软件开发 / JAVA

Java理论与实践: 修复Java内存模型,第2部分

Java理论与实践: 修复Java内存模型,第2部分

Java理论与实践: 修复Java内存模型,第2部分2010-12-20 IBM Brian Goetz活跃了将近三年的 JSR 133,近期发布了关于如何修复 Java 内存模型 (Java Memory Model, JMM)的公开建议。在本系列文章的 第 1 部分,专栏作 者 Brian Goetz 主要介绍最初的 JMM 中的几个严重缺陷,这些缺陷导致了一些 难度高得惊人的概念语义,这些概念原来被认为很简单。这个月,他介绍在新 JMM 中 vola...
Java理论与实践: 性能管理 ― 您有规划吗?

Java理论与实践: 性能管理 ― 您有规划吗?

Java理论与实践: 性能管理 ― 您有规划吗?2010-12-20 IBM Brian Goetz性能管理通常被视为一种巫术,因为性能问题通常在应用程序开发完成之后 才会出现。到那时,就难以确定它们的根源。然而,一旦十分准确地确定了性能 问题的起因,那么修正它常常是比较简单的事情。工程师在寻找更有效的方法来 执行特殊任务方面通常具有相当的创造性(有时他们的创造性过了头)。对于任 何给定的性能问题,通过使用高速缓存来减少冗余计算或者只是添加更多的硬件 ,解...
Java理论与实践: 消除bug

Java理论与实践: 消除bug

Java理论与实践: 消除bug2010-12-20 IBM Brian Goetz很多有关编程风格的建议都是为了创建高质量、可维护的代码,这很合理, 因为最容易修复 bug 的时间就是在产生 bug 之前(少量的预防措施……)。遗 憾的是,只预防往往是不够的,虽然有一些精巧的工具可以帮助您创建好的代码 ,但是很少有工具可以帮助您分析、维护或提高现有代码的质量。写线程安全的类很难,而分析现有类的线程安全性更难,增强类使其仍然保 ...
Java理论与实践: 线程池与工作队列

Java理论与实践: 线程池与工作队列

Java理论与实践: 线程池与工作队列2010-12-20 IBM Brian Goetz为什么要用线程池?诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务 器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到 达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达,服务器应用程序中经常 出现的情况是:单个任务处理的时间很短而请求的数目...
Java理论与实践: 使用通配符简化泛型使用

Java理论与实践: 使用通配符简化泛型使用

Java理论与实践: 使用通配符简化泛型使用2010-12-20 IBM Brian Goetz自从泛型被添加到 JDK 5 语言以来,它一直都是一个颇具争议的话题。一部 分人认为泛型简化了编程,扩展了类型系统从而使编译器能够检验类型安全;另 外一些人认为泛型添加了很多不必要的复杂性。对于泛型我们都经历过一些痛苦 的回忆,但毫无疑问通配符是最棘手的部分。通配符基本介绍泛型是一种表示类或方法行为对于未知类型的类型约束的方法,比如 “不管 这个方法...
使用SpringSide 3.1.4.3开发Web项目的全过程(上)

使用SpringSide 3.1.4.3开发Web项目的全过程(上)

使用SpringSide 3.1.4.3开发Web项目的全过程(上)2010-12-20 BlogJava 海边沫沫SpringSide 3.1.4.3是目前SpringSide的最新版本,也是完成度比较高的一 个版本,用来做实际项目的应该丝毫不成问题。这里写一下使用该版本开发 一个简单Web项目的全过程,当然,最重要的是我自己的一些心得体会。我的文 章很长,只有耐下性子细看,才能体会个中三味。第一步、下载SpringSide 3.1.4.3 all-in...
使用SpringSide 3.1.4.3开发Web项目的全过程(中)

使用SpringSide 3.1.4.3开发Web项目的全过程(中)

使用SpringSide 3.1.4.3开发Web项目的全过程(中)2010-12-20 BlogJava 海边沫沫第七步、编写Action和JSP。在SpringSide 3.1.4.3中,使用的是Struts 2及 其Convention插件,已经不是前面使用的CodeBehind插件了,关于Convention插 件,这里要再说几句,该插件的大部分功能和 CodeBehind相同,唯一让人有点 迷惑的就是该插件到哪里寻找Action类的问题,它会根据...
使用SpringSide 3.1.4.3开发Web项目的全过程(下)

使用SpringSide 3.1.4.3开发Web项目的全过程(下)

使用SpringSide 3.1.4.3开发Web项目的全过程(下)2010-12-20 BlogJava 海边沫沫第八步、使用Spring Security保护Web资源。在SpringSide 3项目中,已经 整合进了SpringSecurity,实现了符合RBAC规范的权限管理系统,并把数据保存 到了数据库中。我以前的博文SpringSide 3 中的安全框架中对SpringSecurity 有一个初步的探讨,我认为我写的东西对入门来说是很有帮助的,...
Jini技术基础结构

Jini技术基础结构

Jini技术基础结构2010-12-21Jini技术的即插即用的基础结构主要由三组协议组成:查找(Lookup)、发现(Discovery)和加入(Join)。查找服务是分布式Jini系统的基本组成部分,提供了在分布式Jini系统中服务的中央注册机制。在Jini系统中,程序找到服务的首选方法是通过查找服务,而且查找服务也是提供给管理员和用户各种访问接口的基础。查找服务的服务模型查找服务保存了一个服务的表,表中的每个元素代表了系统中可用的一项服务,其中保存了...
Jini设备及其应用实例

Jini设备及其应用实例

Jini设备及其应用实例2010-12-21Jini技术的出现,使得Java在成功地为网络设备的计算提供了合适的平台之后,更为网络设备,尤其是家庭网络下的消费类电子设备提供了一个全新的网络计算结构,从而实现了人们期待已久的网络设备的即插即用。对Jini设备的硬件要求虽然Jini本身是一个软件系统,但是一个真正投入使用的Jini系统则由一系列软件和相应的硬件组成。显然,以往一般的电子设备是不可能直接加入到Jini系统中来的。我们只有全面了解支持Jini技术的...
Struts:自定义taglib的开发

Struts:自定义taglib的开发

Struts:自定义taglib的开发2010-12-21自定义标签必须实现下面三个接口中的一个:Tag、IterationTag、BodyTag1.Tag如果要实现这个接口,可以通过扩展TagSupport这个类,来写自己需要的方法,而不需要把Tag接口中的所有方法实现。Tag接口的方法:doStartTag()、doEndTag()、getParent()、setParent()、release()、setPageContext()在Tag类代码中不能...
WebLogic UDDI Client API实例学习(一)

WebLogic UDDI Client API实例学习(一)

WebLogic UDDI Client API实例学习(一)2010-12-21在开发UDDI的客户端程序时,我们一般考虑的都是IBM提供的UDDI4J,但不知道大家注意到没有,在BEA的WebLogic中也提供了一个非常方便的UDDI Client API。只是它被包含在weblogic.jar文件中而没有单独发布。WebLogic UDDI Client API的结构完全遵循了UDDI的体系结构,所以,通过对这套API类库的学习和实践,相信也有助于我...
WebLogic UDDI Client API实例学习(二)

WebLogic UDDI Client API实例学习(二)

WebLogic UDDI Client API实例学习(二)2010-12-21发布 Publish与查询类似,可以发布到UDDI 注册中心的数据模型也有四个:商业实体、商业服务、绑定信息和tModel。对应Publish类中的四个save方法:四个save方法用于发布或修改UDDI的数据,四个delete方法用于删除数据。getAuthToken则可以获取注册中心的登录信息,得到的AuthInfo需要在对UDDI的数据进行发布、修改或删除时作为身份验证...
动态Proxy与Java ACL用户访问控制机制实现

动态Proxy与Java ACL用户访问控制机制实现

动态Proxy与Java ACL用户访问控制机制实现2010-12-21用户访问控制(Access control )机制总是围绕粗粒度和细粒度两个方面来讨论:粗粒度控制:可以规定访问整个对象或对象群的某个层,而细粒度控制则总是在方法或属性层进行控制,比如:允许一个文件为只读是属于粗粒度控制,而允许对这个文件某行有写操作则属于细粒度控制。一个好的用户控制机制当然既允许粗粒度也允许细粒度控制,在Jive中我们看到是使用Proxy来达到这个目的,但是我们也发现...
对Java嵌套类的讨论

对Java嵌套类的讨论

对Java嵌套类的讨论2010-12-21摘要:与字段和方法类似,Java允许类是其它类的成员。在这里,我们将嵌套类分为4种--嵌套顶级类(nested top-level classes),成员内部类(instance inner classes),本地内部类(local inner classes)和匿名内部类(anonymous inner classes)。在教授Java时,我经常发现学生尝试在方法中声明其它的方法。不过,与Pascal语言不同--...
分布式编程模式中的租约、事务和分布式事件机制

分布式编程模式中的租约、事务和分布式事件机制

分布式编程模式中的租约、事务和分布式事件机制2010-12-21Jini技术面向网络及分布式计算的特性决定了Jini技术必然与传统的单机系统在许多方面有概念上和实际应用中的差别。如网络的延迟、失败,或者设备的突然撤出,将导致信息的无序和丢失;资源的获得、保存、维护和回收情况更为复杂;不同实体之间通讯和协调工作的可靠性及效率并不像单机系统中那样较为容易地获得保证。因而在 Jini 中以 Java 为基础加入了分布式编程模式,特别是引入了租约、分布式事务和分布...
关于EJB返回值的解决方案

关于EJB返回值的解决方案

关于EJB返回值的解决方案2010-12-21相信很多人都有如此之困惑,得此解决方法不敢独享,公之于众,以利后来人。声明:此方法的至于彭璐大侠,彭大侠可能不常上网,这麽好的方法也不告诉我等之小虾米,只好代劳了。好了,不废话了,有两种方法:1、用vector:/*** Finds all EJBeans with a balance greater than a given amount.* Returns an Enumeration of found E...
解析JBuilder数据库应用程序

解析JBuilder数据库应用程序

解析JBuilder数据库应用程序2010-12-21数据库应用程序是访问存储数据,并允许你查看、修改或操作这些数据的程序。在大多数情况下,数据存储在一个中。然而,数据也可以作为文本,或以其它的格式存储在文件中。JBuilder允许你访问这些数据,并在DataExpress组件库连同JavaBean 组件库(JBCL)的DataSet包和dbSwing包中定义的属性、方法和事件,来操作这些数据。从一个数据源(如数据库)请求信息的数据库应用程序被称为客户机应...
<< 81 82 83 84 85 86 87 88 89 90 >>