跳转到主要内容


developerWorks 中国  >  Java technology  >  

文档库

developerWorks
 
  
 
  第 1 - 100 条,共 137 条      下一页  显示所有    隐藏内容简介    
 
题目 日期
Java 安全性的演变和理念 第一部分:安全性的基本要点在这篇介绍性概述中了解计算机安全的概念和术语
本系列文章将提供对网络安全的一般了解,以及开发人员所必需掌握的 Java 编程语言的独特性能。在后续的连载中,将讨论 Java 平台安全性的设计和演变,以及不同的 Java 安全性 API。今后的文章还将讨论 Java 2 Platform,Enterprise Edition (J2EE) 中的安全特性,J2EE 正迅速变为 .com 平台的首选。
    2000年10月25日  
 
编写高效的线程安全(thread-safe)类
在语言级别支持对象的锁定和线程内信号机制使得编写线程安全的类变得简单。在这里,通过简单的程序示例描述了在 Java 中强大和独具一格的线程安全和高效类的开发。
    2001年1月4日  
 
安全的代价是什么?
Java的力量是不容置疑的,但安全问题也是开发者的关注焦点. 本文将权衡其益处与随之而来的危险.
    2001年6月15日  
 
保护系统安全: 一个识别用户的三向解决方案 确定谁在门口,保护您的系统
系统安全问题是由发现通讯连接另一端的用户身份开始的。在本文中, Joseph Sinclair 讨论了三种常见的识别用户的方法,突出了它们的长处和短处(各自的及合并的),并分别提供了一些示例。
    2001年7月13日  
 
控制 DOM,第 3 部分 Weblet 安全性教程
Weblet 是运行在浏览器中的 Java 程序,使用 DirectDOM 来直接操作被显示的文档。就像大多数基于 Web 的程序一样,如果对 Weblet 管理不当,就会对系统安全造成威胁。幸好,Weblet 附带的 Java 沙箱(Java Sandbox)可提高系统的内建安全性。在这个关于 DirectDOM 和基于 Weblet 开发的三部系列的最后一部分,Paul Everett 说明了如何使用沙箱来达到最佳效果。通过简单的工作示例,Paul 演示了 Weblet 在缺省情况下能做什么和不能做什么,还说明了在需要的情况下如何回避沙箱的约束。请加入讨论论坛与本文作者和其他读者交流您对这篇文章的心得。
    2001年8月14日  
 
对等计算的实际使用:对等网络中的信任与安全
一旦 P2P 应用发展到一个引人关注的程度,信任和安全问题就出现了。在用户间互相了解的小型应用中,信任和安全很少会成为问题。可是,有用的 P2P 应用很少会保持这么小的规模。本月,Java 设计师 Todd Sundsted 将探讨在 P2P 应用中的信任和安全问题,为您介绍使分布式应用中的信任成为可能的工具。加入讨论论坛,与作者和其他读者分享您对本文和本系列中其他文章的看法。
    2001年9月14日  
 
对等计算实践: P2P 遇上 SSL 保证对等机之间的通信安全
对任何重要的 P2P 应用程序而言,对等机之间的安全通信都是一个核心要求。尽管安全的细节依赖于如何使用该应用程序和该应用程序将要保护什么,但通过使用现有技术,例如 SSL 实现强壮的、一般用途的安全通常是可能的。本月,Todd Sundsted 演示如何在 P2P 安全中使用 SSL(通过 JSSE)。
    2001年12月28日  
 
Java 安全的演进
这篇论文提供了 Java 安全发展和演进的高级概述。Java 是一项日趋成熟的技术,它从作为一种基于浏览器的脚本编制工具的商业起源演进而来。我们探讨了以 Java 为目标的不同部署环境、Java 运行时的一些特征、这种基本技术当前发行版中的安全功能、新的 Java Development Kit(JDK)1.2 的基于策略的安全模型、基于堆栈的授权安全模型的局限性、通用的安全要求以及 Java 安全将来可能的走向。IBM 关于 Java 安全的倡议考虑到了客户的部署基于 Java 的企业解决方案的愿望。
    2002年6月11日  
 
Java 理论和实践:理解 JTS ― 平衡安全性和性能
在本文中,Brian 讨论了 J2EE 提供的用来管理事务划分和隔离的工具和一些高效率地使用这些工具的指导。
    2002年7月30日  
 
Java 理论和实践:安全构造技术
Java 语言提供了灵活的、看上去很简单的线程功能,使得您很容易在您的应用程序中使用多线程。然而,Java 应用程序中的并发编程比看上去要复杂:在 Java 程序中,有一些微妙(也许并不是那么微妙)方式会造成数据争用(data race)以及并发问题。在这篇 Java 理论和实践中,Brian 探讨了一个常见的线程方面的危险:在构造过程中,允许 this 引用逃脱(escape)。这个看上去没有什么危害的做法可以在 Java 程序中造成无法可预料和不期望的结果。
    2002年8月13日  
 
J2EE 中的安全第一部分
现在越来越多的企业应用构建在j2ee平台上,这得益于j2ee为企业应用的开发提供了良好的框架和服务的支持.j2ee为企业应用提供了多方面的服务(Security、Transaction、Naming等).本文将介绍j2ee提供的安全服务.作者首先介绍j2ee中的安全概念和j2ee的安全体系架构.然后结合具体的实例向读者展示如何在自己的程序中应用j2ee提供的安全特性。
    2002年8月16日  
 
J2EE 中的安全第二部分�� j2ee安全应用
在本系列文章的第一部分作者介绍了j2ee的安全概念、验证模型和授权模型,这部分更偏重于理论的介绍。本文的第二部分作者将通过具体的例子向读者展示如何在开发中应用j2ee提供的安全服务。本部分的重点在于应用与实践。
    2002年9月3日  
 
确保无线 J2ME 的安全--移动商业应用程序的安全性挑战和解决方案
本文讨论了基于 J2ME 的移动商业应用程序的一些安全性挑战和解决方案的当前成果。特别地,J2ME 开发人员 Michael Yuan 和 Ju Long 集中讨论了最常用但也最缺乏安全性的 J2ME 概要文件 ― MIDP 的应用程序开发的挑战。其中包括 J2ME 相对于瘦客户机(如 WAP)和本机应用程序的优点的概述,以及关于 J2ME 当前和未来安全性框架的优缺点对比的讨论。另外,新兴的 Web 服务正逐渐成为因特网领域中重要的组件,所以请了解更多关于它的信息,以及这一新技术可能对您的 J2ME 开发策略有怎样的影响。
    2002年9月3日  
 
确保无线 J2ME 的安全--移动商业应用程序的安全性挑战和解决方案
请关注本文,它讨论了基于 J2ME 的移动商业应用程序的一些安全性挑战和解决方案的当前成果。特别地,J2ME 开发人员 Michael Yuan 和 Ju Long 集中讨论了最常用但也最缺乏安全性的 J2ME 概要文件 ― MIDP 的应用程序开发的挑战。
    2002年9月6日  
 
您的 Java 代码安全吗 , 还是暴露在外?
本文概括并解释了 13 种类型的静态暴露 , 它们是系统中的缺陷,它使系统暴露在想要篡夺该系统的特权的攻击者面前。您将学会如何处理这些暴露,以及如何发现(如果不处理这些暴露)这些暴露可能造成的影响。
    2002年9月13日  
 
Java实时多任务调度过程中的安全监控设计
在一系列关联的多任务的实时环境中,如果有一个任务发生失败,可能导致所有任务产生连锁反应,从而造成调度失控的局面。特别是对于核心控制设备尤其重要,为了解决这个问题,必须对每个任务进行实时监控。
    2002年12月3日  
 
Java 理论与实践: 描绘线程安全性
7 月份我们的并发专家 Brian Goetz 将 Hashtable 和 Vector 类描述为“有条件线程安全的”。一个类难道不是线程安全就是线程不安全的吗?不幸的是,线程安全并不是一个非真即假的命题,它的定义出人意料的困难。但是,正如 Brian 在本月的 Java 理论与实践中解释的,尽量在 Javadoc 中对类的线程安全性进行归类是非常重要的。
    2003年11月3日  
 
J2EE 探索者: 用 JAAS 和 JSSE 实现Java 安全性
在 J2EE 探索者 的这期文章中,企业 Java 开发人员和教育家 Kyle Gabhart 介绍了 Java 认证和授权服务(Java Authentication and Authorization Service,JAAS)和 Java 安全套接字扩展(Java Secure Socket Extension,JSSE)。跟随作者去发现如何结合这两个 API 以提供 J2EE Web 应用程序安全框架的核心功能:认证、授权和传输层安全
    2003年12月31日  
 
安全抵达!
开发人员编写代码。不幸的是,开发人员也编写缺陷,其中大多数缺陷是在最初的编码阶段加入的。修复这些缺陷成本最低的地方同样也是在开发的初始阶段。如果等到功能测试或者系统测试来捕获并修复缺陷,那么您的软件开发成本就会高得多。在本文中,作者 Scott Will、Ted Rivera 和 Adam Tate 讨论了一些基本的“防御性”编码和单元测试实践,让开发人员更容易找到缺陷 ―― 更重要的是,从一开始预防缺陷产生。
    2004年1月19日  
 
用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信
如果您已经学习了本系列的前两部分,那么现在可以开始第三部分,也就是最后一部分,您将设置一个 KDC 服务器,向它发送 Kerberos 票据请求并取得其响应。然后,您将学习处理 KDC 服务器的响应所需的低层 ASN1 处理方法,以便取得票据和会话密钥。取得了服务票据后,将向电子银行的业务逻辑服务器发送一个建立安全上下文的请求。最后,您将学会与电子银行业务逻辑服务器进行实际的安全通信。
    2004年3月27日  
 
IBM 安全提供者:概述
迄今为止,IBM 的 Java 平台开发工具箱的 1.4.2 版,为 Java 2 平台提供了来自 IBM 的最全面的安全性。其中包括一些特定于 IBM 的安全提供者,这些安全提供者包含一些新特性和很多增强功能。IBM 安全专家 Yanni Zhang、Audrey Timkovich 和 John Peck 将介绍一些 IBM 安全提供者,评论它们的功能,阐明它们与 Sun 的提供者有何不同。
    2004年10月12日  
 
使用 portlet 服务安全的访问远程 Web 应用
本文演示了 portlet 服务在封装 portlet 与远程 Web 应用程序之间的交互上起到的作用。描述了连接到一个为了确保安全而使用轻量级目录访问协议 (Lightweight Directory Access Protocol,LDAP) 目录以及轻量级第三方认证 (Lightweight Third Party Authentication,LTPA) 的 WebSphere Application Server 应用程序。样本代码以及配置实例都包括在示范连接会话 EJB 或 servlet 之中。
    2005年2月21日  
 
e-Commerce 的安全性:攻击及预防策略
本文根据作者作为 WebSphere Commerce 开发人员的经验,提出了关于安全性的概述。它研究了 e-Commerce 应用的当前状况,并且描述了能够让您的在线站点或者在线购物经历更加的安全的技术。
    2005年6月29日  
 
构建更加安全的 Web 应用程序
开发人员总是在与 Web 应用程序中的操作和数据篡改作斗争。本文提供了一个保护这些漏洞的框架。可以嵌入这个框架,它为像 Struts 这样常用的表示框架提供了逻辑安全设计。
    2005年12月29日  
 
构建更加安全的 Web 应用程序
开发人员总是在与 Web 应用程序中的操作和数据篡改作斗争。本文提供了一个保护这些漏洞的框架。可以嵌入这个框架,它为像 Struts 这样常用的表示框架提供了逻辑安全设计。
    2006年1月4日  
 
使用 Object Authority Manager 来增强 WebSphere MQ JMS 安全性
本文向您介绍如何使用 WebSphere MQ Object Authority Manager 来实现自定义的授权服务,以便对来自 WebSphere MQ JMS 客户端的连接请求进行身份验证。
    2006年3月27日  
 
用 Apache 和 Subversion 搭建安全的版本控制环境
本文将在服务器端配置工作的角度,结合作者在实际开发工作当中的配置实例,介绍 Subversion 服务器端的基本配置和管理,以及如何将 Subversion 与 Apache 结合,实现一些高级管理功能。
    2006年9月11日  
 
Geronimo 叛逆者: 安全和 Apache Geronimo 的未来
对于 Apache Geronimo 这样提供全面服务的应用服务器来说,需要具有全面服务的安全实现,就是说仅仅支持 SSL 连接还不够。安全实现是指保证应用程序中发出的内部请求的安全。在本部分,David Jencks 将与 Geronimo 叛逆者专栏的主笔讨论关于 Geronimo 的安全实现的当前和未来的看法。
    2007年3月30日  
 
使用 Acegi 保护 Java 应用程序,第 1 部分: 架构概览和安全过滤器
这份共分三部分的系列文章介绍了 Acegi 安全系统(Acegi Security System),它是用于 Java 企业应用程序的强大的开源安全框架。在第一篇文章中,Bilal Siddiqui 顾问将向您介绍 Acegi 的架构和组件,并展示如何使用它来保护一个简单的 Java 企业应用程序。
    2007年5月8日  
 
结合安全发布与有效的不可变性来提升性能
使多个线程能够共享对可变集合的访问 —— 一种典型方法就是同步对集合的访问 —— 这样做可能会成为性能瓶颈。通过本文学习一种可用于 Java 5.0 的技术,然后使用该技术最大限度地减少数据结构(频繁读取,但较少更新)中的性能瓶颈。
    2007年10月29日  
 
面向 Java 开发人员的 db4o 指南: 事务、分布和安全性
通过直接在面向对象的数据库(如 db4o)中存储对象,Java 开发人员可以获得很多好处。如果 OODBMS 缺乏对事务的支持或不能在分布式环境中使用数据(并保证其安全性),您可能不会过多地使用它。在面向 Java 开发人员的 db4o 指南的最后一期中,Ted Neward 展示了如何使用 db4o 处理 3 个与 Java 企业开发密切相关的问题:事务、分布式数据管理和 Web 应用程序安全性。
    2008年1月15日  
 
基于 Java 2 运行时安全模型的线程协作
Java 2 的运行时安全模型是基于策略和堆栈授权的安全模型。Java 使用存取控制器(AccessController)为用户主机上的大部分关键资源(如文件,套接字等)提供运行时保护,并且允许管理员为具体的应用定制安全策略文件。本文将讨论在多线程的环境下,如何使用 Java 提供的安全特性构建线程间安全协作的 Java 应用。
    2009年9月18日  
 
如何通过 JAVA Security API 来定性 IBM FileNet P8 内容查询和存储的安全
本文简单介绍了 FileNet P8 Content Engine 中的安全管理机制和相关的 API。首先介绍了 FileNet Content Engine 安全机制,主要包括认证和授权。然后介绍了安全相关的 Java API,并且举例说明如何使用 Java API 来进行相关的安全设置。通过本文,读者可以建立起简单的 FileNet P8 中的安全管理概念,可以尝试使用相关 API 来定性内容查询和存储的安全
    2009年10月22日  
 
JPA 2.0 中的动态类型安全查询
如果编译器能够对查询执行语法正确性检查,那么对于 Java 对象而言该查询就是类型安全的。Java Persistence API (JPA) 的 2.0 版本引入了 Criteria API,这个 API 首次将类型安全查询引入到 Java 应用程序中,并为在运行时动态地构造查询提供一种机制。本文介绍如何使用 Criteria API 和与之密切相关的 Metamodel API 编写动态的类型安全查询。
    2009年11月9日  
 
将jsse用于安全套接字通信
本教程说明了包括在 JDK 1.4 中的 Java 安全套接字扩展(Java Secure Socket Extension (JSSE))包的使用。使用 JSSE 的复杂程度不在于通信本身而在于配置。在能够运行客户机/服务器软件之前,您必须创建加密算法所需的密钥,并且在软件能创建安全套接字之前,必须由软件正确装入这些密钥。 本教程为在客户机/服务器应用程序环境下创建和安装 JSSE 加密密钥提供了详细说明的指示。当完成本教程后,您会知道如何简便地将现有的客户机/服务器应用程序转换成使用加密,以及如何从头创建安全应用程序。
    2002年7月26日  
 
Java 安全性,第一部分: 密码学基础
Java 平台的基本语言和库扩展都提供了用于编写安全应用程序的极佳基础。本教程讨论了密码术基础知识与如何用 Java 编程语言实现密码术,并提供了样本代码来说明这些概念。
    2002年9月27日  
 
Java 安全性, 第二部分: 认证与授权
在这个两部分的教程中,我们学习了 Java 平台的安全性特性。第 1 部分为初学者介绍了 Java 密码术。在这第 2 部分中,我们将详细讨论访问控制,在 Java 平台中由“Java 认证与授权服务(Java Authentication and Authorization Service (JAAS)”管理访问控制。
    2002年10月11日  
 
Geronimo J2EE Web 服务,第 2 部分: 消息处理程序、附件、安全和注册中心访问
了解如何向传统 J2EE 应用程序添加消息处理程序、附件支持、Web 服务安全、自定义异常和统一描述、发现与集成(UDDI)注册中心访问。本系列教程包括两部分,这是第 2 部分,通过扩展部署在 Apache Geronimo 上的 BookShop 应用程序介绍了这些新的内容。
    2005年11月28日  
 
Apache Geronimo 机器修理店应用示例,第 1 部分:Servlet、JSP、安全性和 JCA
在连续几个发行版之后,Apache Geronimo 项目迎来了非常好的势头,开发人员开始注意并且好奇他们可以怎样使用 Java 2 Platform Enterprise Edition (J2EE) 认证的平台来开发应用程序。尽管使用标准技术开发应用程序对于 J2EE 专家来说可能只是微不足道的事情,但是要将这些组件放在一起正常工作则需要一些特定于 Geronimo 的知识。因此,J2EE 新手和那些在 Geronimo 中集成应用程序的开发人员可能会发现本系列教程非常有用,而那些熟练的 J2EE 程序员也可以从本系列中找到一些在 Geronimo 上构建应用程序的方法。本系列教程将向您展示如何创建一个示例应用程序,并给出对其进行配置和将其部署到 Geronimo 中所需要的步骤。在本系列的第 1 部分中,我们将使用 servlet、JavaServer Page (JSP)、J2EE 声明性安全 (declarative security) 和 J2EE Connector Architecture (JCA) 来创建并部署应用程序。
    2006年6月15日  
 
构建基于 J2ME 的安全 SOAP 客户机,第 1 部分:探索 J2ME 的 Web 服务 API (WSA)
本系列教程共三部分,将介绍如何构建基于 Java 2 Micro Edition (J2ME) 的安全 Web 服务客户机。第 1 部分将介绍允许无线访问 Web 服务的应用程序场景。还将讨论安全 Web 服务应用程序的体系结构,并说明不同技术组件如何在 J2ME 应用程序中彼此协作来提供安全功能。我们将深入研究数个 WSA 应用程序的内部情况,从而对 J2ME 的 Web 服务 API (WSA) 进行详细讨论。本教程的后续部分将详细阐述这些概念,从而将安全机制加入到 WSA 应用程序中。
    2006年9月30日  
 
构建基于 J2ME 的安全 SOAP 客户机, 第 2 部分:增强 J2ME 的 Web 服务 API (WSA) 中的存根类
本系列教程共三部分,介绍如何构建基于 Java 2 Micro Edition (J2ME) 的安全 Web 服务客户机。本教程是其中的第二部分,将讨论安全电子邮件服务的存根类,并说明如何对其进行增强,以提供安全功能。我们还将详细讨论一些重要的安全算法, 并演示如何在 J2ME 设备中实现它们。
    2007年1月8日  
 
用 JMS 保护 XML 消息,第 2 部分: 使用 XSS4J 实现 XML 安全性
Java 消息服务(Java Message Service,JMS)是一种基于 Java 语言的消息传递 API。XML 提供了一种简单、人类可读的信息交换数据格式,在企业数据格式化中是一种很受欢迎的语法。因此,在 JMS 应用程序中集成 XML 可以为企业应用程序带来很大的优势。本教程演示了使用 XML Security Suite for Java (XSS4J) 在现有 JMS 网络上实现安全的 XML 消息传递。
    2008年6月5日  
 
高效率创建安全的 Java 应用, 第 2 部分: 使用 Rational AppScan 最大化 Java Web 应用程序的安全性
本文是系列教程的第 2 部分,主要内容是使用 Rational Application Developer、Data Studio 和 Rational AppScan 创建安全的基于 Java 的 Web 应用程序。在第 1 部分中,您已经使用 Rational Application Developer 开发了一个 Java Web 应用程序,然后在 WebSphere Application Server 上部署了这个用 Java Server Pages (JSP)技术开发的应用程序。本文将向您介绍如何使用 Rational AppScan 扫描第 1 部分中所创建的 Wealth 应用程序,以发现和修补所有已知的网络安全漏洞。本文还将展示如何重新扫描您的应用程序,并生成报告。
    2008年6月12日  
 
EJB 入门-前言
本课程是作为 Enterprise JavaBeans 开发的入门课程。主要目的是让您掌握开始编写 EJB 所需的知识。本教程涵盖了 EJB 的基本知识,如何编写无状态 (stateless) 和有状态(stateful)会话 bean,以及 CMP 和 BMP 类型的实体 bean。我们将采用 EJB 开发的最佳工具 VisualAge for Java 企业版来完成开发和布署 EJB 到 WebSphere 应用服务器高级版中。本教程不是要详细地讲解服务器端 EJB 运行的内部细节。本教程的关注是在于给学生提供必要的信息来进行开发。至于 EJB 容器和服务器是如何实现的则与本教程无关。在完成本教程后,您应该具有足够的知识来进行 EJB 开发了。本教程没有讨论 EJB 的安全(与其容器的实现相关),简单地介绍了事务处理概念(我们将有专门的文章来解释 EJB 的事务处理概念)。我们也介绍 EJB 开发常用的一些设计思想
    2001年3月27日  
 
JAVA卡与APPLET系列之:JAVA卡概述
本系列的前一篇文章讨论了智能卡的相关知识,此篇文章则将着重介绍 JAVA 卡的一些基础知识,如 JAVA 卡的概念、结构和生命期,JAVA 卡的 JAVA 语言和编程接口(API),并通过一个简单的Applet示例引入对 JAVA卡的Applet 的介绍。 希望你在阅读这篇文章时,已经有了初步的 JAVA 语言的概念,并且已经阅读了本系列的第一篇文章:《智能卡与安全》。
    2001年4月19日  
 
诊断 Java 代码: 臆想实现错误模式,第 2 部分
在诊断 Java 代码的最后一部分,我们看到实现一个 Java 接口, 而实际上未满足其预期语义是有可能的。这个分两部分的序列的第二篇文章演示了两个解决这种虚假的实现错误的方便的工具。Eric Allen 向您显示了如何使用断言和单元测试作为可执行文档,使您的代码更安全,可移植性更强。
    2001年8月9日  
 
轻松使用线程: 同步不是敌人
与许多其它的编程语言不同,Java 语言规范包括对线程和并发的明确支持。语言本身支持并发,这使得指定和管理共享数据的约束以及跨线程操作的计时变得更简单,但是这没有使得并发编程的复杂性更易于理解。这个三部分的系列文章的目的在于帮助程序员理解用 Java 语言进行多线程编程的一些主要问题,特别是线程安全对 Java 程序性能的影响。
    2001年8月24日  
 
穿透企业网络 使用 servlet 的 HTTP 穿透法
企业防火墙是一把双刃剑。它有助于防止对企业 Web 服务进行未经授权的访问,但也可能拒绝合法用户的访问。由于系统管理员们所采取的安全措施的数量的缘故,HTTP 已经成为了企业网络的通用进入机制。在诸如 CORBA 和 DCOM 的技术因防火墙而失去作用的地方,人们开发了如 SOAP 等的技术,提供了穿过防火墙保护的安全可靠的访问。在本文中,我们将研究一种 SOAP 的替代品,在 HTTP 基础上对 Java 对象的使用。另外,我们将使用 J2EE servlet 技术作为业务数据的服务器端中间件。
    2001年9月14日  
 
轻松使用线程: 不共享有时是最好的
ThreadLocal 类是悄悄地出现在 Java 平台版本 1.2 中的。虽然 ThreadLocal 极少受到关注,但对简化线程安全并发程序的开发来说,它却是很方便的。在轻松使用线程的第 3 部分中,Java 软件顾问 Brian Goetz 研究了 ThreadLocal 并提供了一些使用技巧。
    2001年10月1日  
 
诊断 Java 代码: 设计可扩展的应用程序,第 2 部分
玻璃箱可扩展性是指这样一种方式:软件系统可在源代码可以查看而不可以修改时被扩展 ― 它是黑箱设计(在这里构建扩展时,不查看原始代码)和开放箱设计(扩展代码直接写入到基础代码)的折衷。因为新的扩展直接建立在原始代码基础上,但不改动原始代码,所以,玻璃箱设计或许是扩展一个软件系统最有效、最安全的方法。在诊断 Java 代码的这一部分中,Eric Allen 详述了上个月谈及的玻璃箱可扩展性主题。读完本文后,您将知道什么时候使用玻璃箱,并将获得一些如何实现它的提示。请在讨论论坛与作者和其他读者交流本文的心得。
    2001年10月13日  
 
通过自建代理服务器增强 Applet 的功能
众所周知,JAVA小应用程序(Applet)在网络应用方面有着十分强大的功能,但是由于其存在着安全隐患,所以对于"她"的使用,JAVA语言做了很多的限制,想必大家都已经很清楚了,其中最让人不开心的就是,小应用程序只能够连接提供网页的计算机(Applet必需嵌入到一个HTML页面中才能得以发布),但如何将您的小应用程序分发出去呢,这就是我们要讨论的。
    2001年11月14日  
 
Sealing Violation错误模式
从JAVA 2开始,Java引入了Seal(加封)安全机制。所有的JAR文件和包都可以选择是否需要加封,如果JAR文件被加封,则等价于JAR文件中的所有包被加封。一旦被加封的包中的某个类被引用,则规定任何以后对这个包中的成员的引用都必须在同一个JAR文件中。从而保证了版本的一致性。如果违反了上述Seal机制,则我们就将遇到Sealing Violation错误。
    2001年12月4日  
 
JDBC,详解
当今开发人员寻找可伸缩、安全和灵活的解决方案以紧跟日新月异的因特网。这就是有那么多开发人员使用 Java 的原因。Java 的灵活性为您提供了几种与数据库连接和交互的方法。在本文中,我将概述其中一种方法:开发针对 DB 2 使用 Java 数据库连接(JDBC)API 的 Java 应用程序和 applet
    2002年6月13日  
 
如何有效的保护JAVA程序
目前关于JAVA程序的加密方式不外乎JAVA模糊处理(Obfuscator)和运用ClassLoader方法进行加密处理这两种方式(其他的方式亦有,但大多是这两种的延伸和变异)。这两种方式不管给JAVA反编译器造成多少困难, 毕竟还是有迹可寻,有机可乘的。本文介绍的方法是对ClassLoader方式加密处理的一种改进,使之达到传统二进制程序代码安全
    2002年7月2日  
 
保护您的 J2ME/MIDP 应用程序
XML 数字签名技术可以帮助您为无线 Web 服务应用程序实现轻量级且灵活的安全性解决方案。在本文中,Michael Yuan 讨论了 XML 数字签名及其应用程序的重要性。他还讨论了 Bouncy Castle 密码术包的数字签名 API,并提供了在 J2ME/MIDP 无线前端和 JSP 页后端之间的安全 XML 消息传递环境中的示例。
    2002年9月27日  
 
防止到 String 类的不恰当的类型转换
在 Java 编程中,将对象转换为字符串(或字符串化)可能引起问题,除非您记住在纯粹的面向对象应用程序中很少使用字符串表示法。在本文中,系统分析员兼程序员 Fernando Ribeiro 以 Eric Allen 的错误模式概念为基础建立了其观点,并说明了错误的字符串化是如何成为错误模式的;他讨论了对这种难以捉摸的缺陷的诊断并解释了类型安全的好处
    2002年10月11日  
 
为高级 JSSE 开发人员定制 SSL
当数据在网络上传播的时候,通过使用 SSL 对其进行加密和保护,JSSE 为 Java 应用程序提供了安全的通信。在本篇有关该技术的高级研究中,Java 中间件开发人员 Ian Parkinson 深入研究了 JSSE API 较不为人知的方面,为您演示了如何围绕 SSL 的一些限制进行编程。您将学习如何动态地选择 KeyStore 和 TrustStore、放宽 JSSE 的密码匹配要求,以及构建您自己定制的 KeyManager 实现。
    2002年11月20日  
 
跨站点脚本编制 - 使用定制标记库编码动态内容
跨站点脚本编制可能是一个危险的安全性问题,在设计安全的基于 Web 的应用程序时应该考虑这一点。本文中,Paul 描述了这种问题的本质、它是如何起作用的,并概述了一些推荐的修正策略。
    2002年12月31日  
 
EJB 最佳实践: 实体 bean 保护
如何才能使用户可以访问您的应用程序数据,又不会将您的实体 bean 直接暴露给 Web 层,从而不会使您的应用程序面临安全性威胁?Brett McLaughlin 提供了一个解决方案,它可使您的实体 bean 很安全,并且使您的整个应用程序有效率地运行。
    2003年1月16日  
 
诊断 Java 代码: “杀手组合”― mixin、Jam 和单元测试
在 Java 语言中获得单继承编程的安全性需要付出极大的代价:有时必须沿着继承层次结构中的多条路径复制代码。要重新获得单继承 Java 代码中所失去的大多数表示,我们可以将 mixin集成为一个扩展。本月,Eric Allen 解释了 mixin(那些由它们的父类参数化的类)的概念,以及它们如何能协助单元测试。他还描述了基于 mixin 编程的工具,并讨论了将 mixin 添加到您的 Java 代码中的可能方法。在本文的论坛中与作者及其他读者分享您对本文的看法。(也可以单击本文顶部或底部的讨论访问该论坛。)
    2003年3月12日  
 
Merlin 的魔力:Java 联网增强技术
在本文中,John Zukowski 向您说明了用 Java 技术进行联网有什么新鲜和不同之处,其中包括 J2SE 1.4 中最新的联网功能:IPv6 支持、URI、网络接口、安全套接字和非绑定套接字。
    2003年5月15日  
 
考虑将 SQLJ 用于 DB2 V8 Java 应用程序
本文介绍了用 SQLJ 开发 DB2 应用程序的概念和步骤,并通过样例代码说明了为什么 SQLJ 是注重安全性、性能和简单性的开发人员所选择的语言。
    2003年6月16日  
 
揭开极端编程的面纱:即时设计
不熟悉 XP 的人会被即时设计(JIT)的概念所困扰――设计和实现您知道您现在需要的东西,而不担心将来的设计问题,直到决定需要时才去操心。尽管这种方法看起来是不明智的甚至是草率的,XP 的倡导者 Roy Miller 通过向您展示 JIT 设计是多么的安全和容易――以及 JIT 是如何为您的编写代码的方式带来革命性变化的,来包装他的系列文章。
    2003年9月1日  
 
Java 理论与实践:并发集合类
Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。在本月的Java理论与实践中,Brian Goetz向您展示了用ConcurrentHashMap替换Hashtable或synchronizedMap,将有多少并发程序获益。
    2003年9月15日  
 
从开发Portal转到测试Portal
您刚刚使用IBM®>||CHR(59)||< WebSphere®>||CHR(59)||< Portal Version 4完成了开发portal的工作。您的portal包括个性化资源、凭证vault安全性和 客户主题。现在,您准备进入项目的测试阶段,并且需要将portal从开发环境移植到测试环境中。
    2003年9月15日  
 
Java 理论与实践:构建一个更好的 HashMap
ConcurrentHashMap 是 Doug Lea 的 util.concurrent 包的一部分,它提供比 Hashtable 或者 synchronizedMap 更高程度的并发性。而且,对于大多数成功的 get() 操作它会设法避免完全锁定,其结果就是使得并发应用程序有着非常好的吞吐量。这个月,Brian Goetz 仔细分析了 ConcurrentHashMap 的代码,并探讨 Doug Lea 是如何在不损失线程安全的情况下取得这么骄人成绩的。
    2003年9月29日  
 
JSP 最佳实践: 将自定义标记库打包
将标记库存放在本地文件系统中的确有利于内部(in-house)开发和测试,但是这并非永远都是好的解决方案。自定义标记库应该能够被广泛地访问,也就是说,必须以一种标准的和安全的方式来发布它们。Brett McLaughlin 解释了如何将您的自定义标记库打包到 JAR 文件,以便在任何 JSP 兼容的 Web 容器中更容易地维护、发布和安装它们。
    2003年10月13日  
 
实现非阻塞套接字的一种简单方法
尽管 SSL 阻塞操作――当读写数据的时候套接字的访问被阻塞――与对应的非阻塞方式相比提供了更好的 I/O 错误通知,但是非阻塞操作允许调用的线程继续运行。本文中,作者同时就客户端和服务器端描述了如何使用 Java Secure Socket Extensions (JSSE) 和 Java NIO (新 I/O)库创建非阻塞的安全连接,并且介绍了创建非阻塞套接字的传统方法,以及使用 JSSE 和 NIO 的一种可选的(必需的)方法。
    2003年11月13日  
 
JAR 文件揭密
大多数 Java 程序员都熟悉对 JAR 文件的基本操作。但是只有少数程序员了解 JAR 文件格式的强大功能。在本文中,作者探讨了JAR 格式的许多功能和优势,包括打包、可执行的 JAR 文件、安全性和索引。
    2003年11月15日  
 
用 Kerberos 为 J2ME 应用程序上锁,第 1 部分: Kerberos 数据格式介绍
用户需要确保所使用的无线应用程序不会损害他们的敏感信息。其中一种方法就是使用行业标准协议如 Kerberos 来提供安全性。在本系列中,Faheem Khan 将创建一个示例 J2ME MIDlet,它使用 Kerberos 来保护财务数据。本文是该系列的第一篇文章,他通过解释为他的应用程序的安全性提供骨架的 Kerberos 数据格式,介绍了一些基本知识。
    2003年12月18日  
 
用 Kerberos 为 J2ME 应用程序上锁,第 2 部分:生成一个 Kerberos 票据请求
在本系列的上一篇文章中,您看到了对可以安全地连接到支持 Kerveros 的服务器的 J2ME 应用程序的描述,还可了解在字节水平上 Kerberos 加密的细节问题。本文则深入到应用程序自身内部。您将看到如何使用 J2ME 的工具程序以及一些开放源代码库完成异常强大的加密任务。
    2004年1月19日  
 
Java 授权内幕
如果您是那种需要从里到外透彻了解一种技术的工作方式以有效地使用它的人,那么您一定会喜欢这篇对 Java 平台的授权体系结构的导游。听 Java 架构师 Abhijit Belapurkar 讲解两种不同(但相关)的授权模型的详细的、幕后的介绍:以代码为中心的 Java 2 平台安全体系结构和以用户为中心的 Java 认证和授权服务。
    2004年6月3日  
 
枚举类型入门
Tiger 中的一个重要新特性是枚举构造,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。Tiger 专家、developerWorks 的多产作者 Brett McLaughlin 将解释枚举的定义,介绍如何在应用程序中运用枚举,以及它为什么能够让您抛弃所有旧的 public static final 代码。
    2004年11月22日  
 
Java 理论和实践: 了解泛型
JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进。但是,对于初次使用泛型类型的用户来说,泛型的某些方面看起来可能不容易明白,甚至非常奇怪。在本月的“Java 理论和实践”中,Brian Goetz 分析了束缚第一次使用泛型的用户的常见陷阱。
    2005年2月3日  
 
Java 理论与实践: 非阻塞算法简介
Java 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent 包充分地利用了这个功能。非阻塞算法属于并发算法,它们可以安全地派生它们的线程,不通过锁定派生,而是通过低级的原子性的硬件原生形式 ―― 例如比较和交换。非阻塞算法的设计与实现极为困难,但是它们能够提供更好的吞吐率,对生存问题(例如死锁和优先级反转)也能提供更好的防御。在这期的 Java 理论与实践 中,并发性大师 Brian Goetz 演示了几种比较简单的非阻塞算法的工作方式。
    2006年5月18日  
 
不要重复 DAO!
由于 Java 5 泛型的采用,关于泛型类型安全 Data Access Object (DAO) 实现的想法变得切实可行。在本文中,系统架构师 Per Mellqvist 展示了基于 Hibernate 的泛型 DAO 实现类。然后展示如何使用 Spring AOP introductions 将类型安全接口添加到类中以便于查询执行。
    2006年6月5日  
 
跨越边界: Java 模型以外的类型策略
当谈到 Java 语言的类型方法时,Java 社区分为两大阵营。一些人喜欢编译时错误检查,更好的安全性,以及改进的工具 —— 这些都是静态类型所能提供的特性。而另一些人则偏爱更动态的类型体验。这一次在 “跨越边界” 中,您将看到两种高生产力的非 Java 语言所使用的一些截然不同的类型策略,并发现在 Java 编程中提高类型灵活性的一些方法。
    2006年6月12日  
 
IBM WebSphere 开发者技术期刊: 使用 WebSphere Application Server 开发高性能 J2EE 线程
异步 Bean 提供可以由多个应用程序使用的有效而又安全的全局线程池。您需要使用专门的线程池时,可以通过 IBM WebSphere Application Server V5.x 或 V6.x 使用 Asynchronous Beans EventSource 接口构造一个线程工厂,从而能够自由使用任何必需的高级线程用法模式,并且不降低性能。
    2006年9月17日  
 
用 Apache Geronimo 创建并部署 blog 和 wiki 模块
blog 和 wiki 正给互联网带来一场风暴。这些分享想法并和朋友们合作的新方式已经被各种各样的社会团体(从少数几个好朋友组成的小圈子到大公司)证明是值得密切关注的。这些技术兴起的一个原因是,不论对于终端用户还是管理员来说,它们都很简单。管理员们发现 Apache Geronimo 是创建新 blog 和 wiki 应用程序的一个健壮且安全的平台。您也会发现可以使用 Geronimo 和其他开放源码组件创建 blog 和 wiki 应用程序。
    2006年11月6日  
 
多角度看 Java 中的泛型
泛型是 Sun 公司发布的 JDK 5.0 中的一个重要特性,它的最大优点是提供了程序的类型安全同可以向后兼容。为了帮助读者更好地理解和使用泛型,本文通过一些示例从基本原理,重要概念,关键技术,以及相似技术比较等多个角度对 Java 语言中的泛型技术进行了介绍,重点强调了泛型中的一些基本但又不是很好理解的概念。为了避免和 C++ 中的模板混淆,本文简要介绍了 Java 中的泛型和 C++ 中的模板的主要区别,希望这种比较能够帮助读者加深对泛型的理解。
    2006年12月28日  
 
实现一个不受约束的不变性模型
不变对象对于编写线程安全的软件来说非常有帮助。在 Java 语言中,保证不变性的主要机制是使用 final 字段。但 final 字段必须在构造函数中设置,而在一些情况中,这一要求未免太过局限。本文将介绍一种有效的实现方式,使用标准缓存字段来实现一个略微随意的不变性模型,该字段的值无需同步也能安全访问。
    2007年3月14日  
 
使用 Acegi 保护 Java 应用程序,第 2 部分: 使用 LDAP 目录服务器
了解了 Acegi 安全系统(Acegi Security System)的基础知识后,我们将介绍该系统的更加高级的应用。在本文中,Bilal Siddiqui 向您展示了如何结合使用 Acegi 和一个 LDAP 目录服务器,实现灵活的具有高性能的 Java 应用程序的安全性。还将了解如何编写访问控制策略并将其存储在 ApacheDS 中,然后配置 Acegi 使其与目录服务器交互,从而实现身份验证和授权的目的。
    2007年6月21日  
 
对 Atom 进行签名,加密和解密
Atom 是一种用于传递信息的极好的格式,但是其安全性如何呢?XML 数字签名(XML Digital Signature)能确保数据来自于受信任方且未被修改,同时 XML 加密(XML Encryption)能保护敏感信息不被窥窃。但是如何才能在不破坏 Atom 结构的情况下使用这些技术呢?这篇文章介绍了如何使用 Apache Abdera API 轻易地实现数字签名和加密与 Atom 的紧密结合。
    2007年6月25日  
 
Java 理论与实践: 正确使用 Volatile 变量
Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。
    2007年7月5日  
 
让配置更轻松
配置是维护过程中的重要部分,加重了开发人员的负担。本文介绍一种框架,有了这个框架,开发人员可以根据高级接口定义应用程序的配置;然后,该框架生成受物理配置源(例如属性文件或者数据库)支持的这些接口的自动实现。由于这些接口中定义了配置字段,因此这些配置字段访问起来便容易得多;该技术还提供了类型安全,并支持利用 Javadoc 自动编制文档。这种方法是由 Merlin Hughes 设计和细化的,旨在改进当处理配置数据时使用字符串常量和手动类型转换的做法,同时又维持与已有配置工具和文件的兼容性。
    2007年8月6日  
 
轻松应对 WS-Security 规范互操作性挑战,第 4 部分: 向 J2EE 1.4 Web service 服务添加 J2EE 1.3 提供者端点
本系列的前面几个部分提供了 Web 服务安全性(Web Services Security,WS-Security)规范级别的互操作性问题的解决方法,具体来说,问题就是 WS-Security 的不同版本之间的不兼容性使得在需要使用 WS-Security 的情况下 Java 2 Platform Enterprise Edition (J2EE) 1.3 客户机无法与 J2EE 1.4 Web 服务提供者通信。接下来让我们了解一下如何通过添加新 Web 服务提供者端点来克服这一互操作性问题。
    2007年9月13日  
 
借助 Ajax 自动保存 JSF 表单: 第 2 部分
在 “借助 Ajax 自动保存 JSF 表单” 系列的第 1 部分中,作者兼 Java 开发人员 Andrei Cioroianu 为您展示了如何借助 Asynchronous JavaScript + XML(Ajax)和 JavaServer Faces(JSF)技术构建能自动保存 Web 表单的 Java 应用程序,介绍了如何用 JavaScript 和 XMLHttpRequest 获得、编码和提交表单数据,如何调整 JSF 请求生命周期来处理 Ajax 请求以及如何在服务器端从 JSF 组件树获取所提交的数据 。在这个包含三部分的系列文章的第 2 部分中,您将了解如何识别跨浏览器会话的匿名用户、如何为多个用户和页面管理自动保存的表单数据、如何选择数据存储库以及如何处理线程安全性问题。
    2007年10月8日  
 
使用 Acegi 保护 Java 应用程序,第 3 部分: 实现对 Java 对象的访问控制
本文是 Acegi Security Systerm 介绍的最后一部分(共三部分),Bilal Siddiqui 将向您介绍如何保护对 Java 类实例的访问,从而结束本系列文章。通过本文了解为何需要对 Java 类的访问进行保护,Spring 如何创建和保护对 Java 类实例的访问以及如何对 Acegi 进行配置以实现 Java 应用程序的类安全性。
    2007年10月18日  
 
使用 Acegi 保护 Java 应用程序,第 5 部分: 保护 JSF 应用程序中的 JavaBean
Bilal Siddiqui 在这篇文章中总结了本系列,演示了如何用 Acegi 在 JSF 应用程序中保护对 JavaBean 的访问。可以使用多种方式配置安全 bean,包括直接在 JSF 标签中使用受 Acegi 保护的反转控制(IOC)bean。
    2008年5月8日  
 
使用 IBM 静态工具优化 Java 代码,第 1 部分: 工具入门
IBM Checking Tool for Bugs Errors and Mistakes 是由 IBM 开发的静态代码分析工具,它可用于分析并查找 C、C++ 和 Java 代码中的一些不容易发现的潜在错误,从而提高代码质量。由于这个工具目前多用于 Linux/AIX 平台上对 C 和 C++ 语言的检查分析,而使用其在最常用的 Windows 平台上对 Java 进行静态分析的人不多,因此经验不足,文档匮乏。本文的主要目的是介绍如何在 Windows 上成功运行 BEAM,检查 Java 代码中的潜在错误,从而提高代码的安全性和稳定性。
    2008年7月3日  
 
存储过程五种使用场景对比
存储过程(stored procedure)由于其高效、安全、可重用等特点,被频繁用于各种应用中。在不同的场景下,存储过程的使用方式和技术往往不同,达到的效果也差别很大。本文将与存储过程有关的技术串联起来进行比较介绍,以供大家在设计和开发数据库应用时选择相应的技术和工具,从而加速开发过程。
    2008年9月18日  
 
保护多承租 SaaS 应用程序
软件即服务(Software as a Service,SaaS)应用程序多承租的性质决定了安全性是一个关键的问题。本文介绍了一个保护多承租 Java 应用程序的可行的、实用的方法,即结合使用开源 Spring Security 框架和 Apache Directory Server。作者通过一个多承租示例 Web 应用程序来展示这个方法。
    2008年10月24日  
 
如何利用 Rational Application Developer 将现有的静态 Web 站点转变为动态 Web 站点
本文将帮助技术背景的读者了解如何利用 IBM® Rational® Application Developer 将现有的静态 Web 站点转变为动态 Web 站点。用户将添加一个邮件 servlet、Java™2 Platform,Enterprise Edition (J2EE™) 安全性,并利用 Web 站点设计工具的页面模板来为整个 Web 站点创建一致的外观。
    2008年11月13日  
 
精通 Grails: 身份验证和授权
Grails 提供了组成安全 Web 应用程序所需的所有基本构建模块,包括从简单的登录基础设施到基于角色的授权等各种组件,在本期的精通 Grails 中,Scott Davis 帮助您通过动手操作保护 Grails 应用程序。您还将了解一些插件,可以帮助您以不同的方式扩展应用程序的安全功能。
    2009年6月18日  
 
Java Web 服务: Axis2 WS-Security 基础
了解如何将 Rampart 安全模块添加到 Apache Axis2 并开始在 Web 服务中使用 WS-Security 特性。Dennis Sosnoski 重新开始撰写 Java Web 服务系列文章并关注 Axis2 中的 WS-Security 和 WS-SecurityPolicy 的使用。第一篇文章关注 UsernameToken。本系列后续文章将深入研究使用 Axis2 和 Rampart 实现的 WS-Security 和 WS-SecurityPolicy。
    2009年6月30日  
 
面向 Java 开发人员的 Scala 指南: 深入了解 Scala 并发性
对于许多(如果不是大多数)Java 程序员来说,Scala 的吸引力在于处理并发性以及编写线程安全的代码时非常轻松。在本期文章中,Ted Neward 将开始深入研究 Scala 语言及环境所提供的各种并发特性和库。
    2009年7月10日  
 
Java Web 服务: WS-Security 的大开销
WS-Security 提供了一些强大的特性来保障 Web 服务应用程序的安全,并且它们是许多应用程序的基本特性。但是,这些特性是以高昂的性能和消息开销为代价的。Dennis Sosnoski 将继续在他的 Java Web 服务专栏系列中讨论 WS-Security 或 WS-SecureConversation 的使用对 Axis2 性能造成的影响,并且他将论述何时更合适使用较为简单的(以及性能较好的)HTTPS-secured 连接。
    2009年9月15日  
 
Eclipse 并发编程
Jobs API 被广泛的应用到 Eclipse 平台中,Job 是 Eclipse 运行时重要的组成部分,它可以理解成被平台调用异步运行的代码块,多个 Jobs 可以并发执行。对于基于 Eclipse 平台开发并发应用的开发者来说,Eclipse 提供的 Job 框架很好地替代了 Java 原生的 Thread, 其内在使用了线程池实现,具有更好的伸缩性,更好的性能等。不过问题是,在运行时安全方面,现有的 Eclipse Job 框架并不能保证线程间的安全协作,不能在 Job 运行时检查 Job 创建者的权限。本文所要讨论的就是 Eclipse Job 的运行时安全问题,并提供相应的解决方案。
    2009年10月30日  
 
Java 集合框架
本教程将带您漫游 “Java 集合框架”(Java Collection Framework)。为了尽快开始学习“集合框架”,教程从一些面向初学者和专家等读者的简单编程示例入手。接着,教程继续讨论集(set)和映射(map),它们的属性以及它们数学上的定义与“集合框架”中的 Set、 Map 和 Collection 定义有何不同。“Java 集合框架”的历史那一节澄清了集和映射相关类的一些混淆。本教程彻底介绍了“集合框架”中所有的接口和实现这些接口的类。本教程不仅谈到了用线程安全和只读方式处理集合,还探讨了集合的算法支持。此外,教程还讨论了在 JDK 1.1 中使用“集合框架”的一个子集。最后,教程以先于“Java 集合框架”的 ObjectSpace 中一种广泛使用的算法和数据结构库 JGL 的介绍作为结束。
    2002年1月8日  
 
介绍 JDK 5.0 中的泛型
JDK 5.0(也叫做 Java 5.0 或者 Tiger)给 Java 语言带来了一些较大的变化。其中最重要的变化就是引入了泛型 ―― 支持定义带有抽象类型参数的类,这些参数由您在实例化时指定。泛型为提高大型程序的类型安全和可维护性带来了很大的潜力。 本教程解释了在 Java 语言中引入泛型的动机,详细介绍了泛型的语法和语义,并讲述了如何在自己的类中使用泛型。
    2004年12月20日  
 
  第 1 - 100 条,共 137 条      下一页  显示所有    隐藏内容简介    
 
没有找到您想要的结果吗? 提交反馈