编程:Java/JavaWeb
文章平均质量分 79
铁文
这个作者很懒,什么都没留下…
展开
-
Java核心技术卷I:基础知识(原书第8版):12.9 反射和泛型
铁文整理12.9 反射和泛型 现在,Class类是泛型的。例如,String.class实际上是一个Class类的对象(事实上是惟一的对象)。 类型参数十分有用,这是因为它允许Class方法的返回类型更加具有针对性。下面Class中的方法就使用了类型参数: T newInstance() T cast(Object obj) T[] g转载 2014-10-21 12:59:37 · 1326 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):11.4 断言
铁文整理11.4断言 在一个具有自我保护能力的程序中,断言是一个常用的习语。假设确信某个属性符合要求,并且代码的执行依赖于这个属性。例如,需要计算 double y = Math.sqrt(x); 我们确信,这里的x是一个非负数值。原因是:x是另外一个计算的结果,而这个结果不可能是负值;或者x是一个方法的参数,而这个方法要求它的调用者只能提供一个转载 2014-10-17 14:17:29 · 780 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):10.1 JAR文件
铁文整理转载 2014-10-16 15:09:35 · 1037 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):6.2 对象克隆
铁文整理6.2对象克隆 当拷贝一个变量时,原始变量与拷贝变量引用同一个对象,如图61所示。这就是说,改变一个变量所引用的对象将会对另一个变量产生影响。 Employeeorigina1 = newEmployee("John Public", 50000); Employeecopy = origira转载 2014-10-15 14:53:33 · 982 阅读 · 1 评论 -
Java核心技术卷I:基础知识(原书第8版):14.7 线程安全的集合
铁文整理14.7 线程安全的集合 如果多线程要并发地修改一个数据结构,例如散列表,那么很容易会破坏这个数据结构(有关散列表的详细信息见第13章)。例如,一个线程可能要开始向表中插入一个新元素。假定在调整散列表各个桶之间的链接关系的过程中,被剥夺了控制权。如果另一个线程也开始遍历同一个链表,可能使用无效的链接并造成混乱,会抛出异常或者陷入死循环。 可以通过提供锁来保护转载 2014-10-31 14:18:20 · 1038 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):14.6 阻塞队列
铁文整理14.6 阻塞队列 现在,读者已经看到了形成Java并发程序设计基础的底层构建块。然而,对于实际编程来说,应该尽可能远离底层结构。使用由并发处理的专业人士实现的较高层次的结构要方便得多、要安全得多。 对于许多线程问题,可以通过使用一个或多个队列以优雅且安全的方式将其形式化。生产者线程向队列插入元素,消费者线程则取出它们。使用队列,可以安全地从一个线程向另一个转载 2014-10-31 14:17:06 · 705 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):6.1 接口
铁文整理6.1接口 在Java程序设计语言中,接口不是类,而是对类的一组需术描述,这些类要遵从接口描述的统一格式进行定义。 我们经常听到服务提供商这样说:“如果类遵从某个特定接口,那么就履行这项服务”。下面给出一个具体的示例,Arrays类中的sort方法承诺可以对对象数组进行排序,但要求满足下列前提:对象所属的类必须实现了Comparabl转载 2014-10-15 14:12:22 · 871 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):14.10 同步器
铁文整理14.10 同步器 java.util.concurrent包包含了几个能帮助人们管理相互合作的线程集的类,见表14-3。这些机制具有为线程之间的共用集节点模式(common rendezvous patterns)提供的“预置功能”(canned functionality)。如果有一个相互合作的线程集满足这些行为模式之一,那么应该直接重用合适的库类而不要试图提转载 2014-10-31 14:22:07 · 943 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):14.5 同步
铁文整理14.5 同步 在大多数实际的多线程应用中,两个或两个以上的线程需要共享对同一数据的存取。如果两个线程存取相同的对象,并且每一个线程都调用了一个修改该对象状态的方法,将会发生什么呢?可以想像,线程彼此踩了对方的脚。根据各线程访问数据的次序,可能会产生讹误的对象。这样一个情况通常称为竞争条件(race condition)。14.5.1 竞争条件的一个例子转载 2014-10-31 14:16:52 · 1227 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):14.4 线程属性
铁文整理14.4 线程属性 下面将讨论线程的各种属性,其中包括:线程优先级、守护线程、线程组以及处理未捕获异常的处理器。14.4.1 线程优先级 在Java程序设计语言中,每一个线程有一个优先级。默认情况下,一个线程继承它的父线程的优先级。可以用setPriority方法提高或降低任何一个线程的优先级。可以将优先级设置为在MIN_PRIORITY(在Thre转载 2014-10-31 14:11:51 · 783 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):10.4 应用程序存储的配置
铁文整理10.4应用程序存储的配置 应用程序的用户通常期待能够自行对应用程序进行配置,并能够将其保存起来。日后再次运行这个应用程序时将能够读取这些配置。下面首先介绍一种直接将配置信息存储在属性文件中的传统方式。然后,再介绍Java SE 1.4中的一种功能更加强大的机制。10.4.1属性映射 属性映射(property map)是一种存储键/值对的数据结构。转载 2014-10-16 16:34:42 · 843 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):11.1-11.3 异常
<>11.1.1异常分类 在Java程序设计语言中,异常对象都是派生于ThrowabIe类的一个实例。稍后还可以看到,如果Java中内置的异常类不能够满足需求,用户可以创建自己的异常类。 图11-1是Java异常层次结构的一个简化示意图。 需要注意的是,所有的异常都是由ThrowabIe继承而来,但在下一层立即分解为两个分支: Error转载 2014-10-17 13:31:45 · 773 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):14.8 Callable与Future
铁文整理14.8 Callable与Future Runnable封装一个异步运行的任务,可以把它想像成为一个没有参数和返回值的异步方法。Callable与Runnable类似,但是有返回值。Callable接口是一个参数化的类型,只有一个方法call。public interface Callable { V call() throws Exception转载 2014-10-31 14:20:17 · 711 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):12.8 通配符类型
铁文整理12.8 通配符类型 固定的泛型类型系统使用起来并没有那么令人愉快,类型系统的研究人员知道这一点已经有一段时间了。Java的设计者发明了一种巧妙的(仍然是安全的)“解决方案”:通配符类型。例如,通配符类型 Pairextends Employee> 表示任何泛型Pair类型,它的类型参数是EmPloyee的子类,如Pair,但不是Pair。转载 2014-10-21 11:01:27 · 836 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):12.4 类型变量的限定
铁文整理12.4 类型变量的限定 有时,类或方法需要对类型变量加以约束。下面是一个典型的例子。我们要计算数组中的最小元素: class ArrayAlg { public static T min(T[] a) // almost correct { if (a ==null || a.length == 0)转载 2014-10-21 09:41:22 · 758 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):12.2 简单泛型类的定义
铁文整理12.2 简单泛型类的定义 一个泛型类就是具有一个或多个类型变量的类。本章使用一个简单的Pair类作为例子。对于这个类来说,我们只关注泛型,而不会为数据存储的细节烦恼。下面是Pair类的代码:public class Pair { public Pair() { first = null; second = n转载 2014-10-21 09:34:49 · 708 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):12.6 约束与局限性
铁文整理12.6 约束与局限性 在下面几节中,将阐述使用Java泛型时需要考虑的一些限制。大多数限制都是由类型擦除引起的。12.6.1 不能用基本类型实例化类型参数 不能用类型参数代替基本类型。因此,没有Pair,只有Pair。当然,其原因是类型擦除。擦除之后,Pair类含有Object类型的域,而Object不能存储doubIe值。 这的确令人烦转载 2014-10-21 09:40:33 · 893 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):12.5 泛型代码和虚拟机
铁文整理12.5 泛型代码和虚拟机 虚拟机没有泛型类型对象——所有对象都属于普通类。在泛型实现的早期版本中,甚至能够将使用泛型的程序编译为在1.0虚拟机上运行的类文件!这个向后兼容性在Java泛型开发的后期被放弃了。如果使用Sub的编译器来编译使用_Java泛型的代码,结果类文件将不能在5.0之前的虚拟机上运行。 注释:如果想拥有泛型的优势,同时又保留旧的虚拟机字节转载 2014-10-21 09:39:04 · 1034 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):13.1 集合接口
铁文整理13.1 集合接口 Java最初版本只为最常用的数据结构提供了很少的一组类:Vector、Stack、Hashtable、BitSet与Enumeration接口,其中的Enumeration接口提供了一种用于访问任意容器中各个元素的抽象机制。这是一种很明智的选择,但要想建立一个全面的集合类库还需要大量的时间和高超的技能。 随着Java SE 1.2的问世,转载 2014-10-21 14:41:22 · 714 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):12.3 泛型方法
铁文整理12.3 泛型方法 前面已经介绍了如何定义一个泛型类,实际上,还可以定义一个带有类型参数的简单方法。 public static T getMiddle(T[] a) { return a[a.length / 2]; } 这个方法是在普通类中定义的,而不是在泛型类中定义的。然而,这是一个泛型方法,可以从尖括号和类转载 2014-10-21 09:40:00 · 921 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):14.11 线程与Swing
铁文整理14.11 线程与Swing 在有关本章的介绍里已经提到,在程序中使用线程的理由之一是提高程序的响应性能。当程序需要做某些耗时的工作时,应该启动另一个工作器线程而不是阻塞用户接口。 但是,必须认真考虑工作器线程在做什么,因为这或许令人惊讶,Swing不是线程安全的。如果你试图在多个线程中操纵用户界面的元素。那么用户界面可能崩溃。 要了解这一问题转载 2014-10-31 14:23:19 · 991 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):14.9 执行器
铁文整理14.9 执行器 构建一个新的线程是有一定代价的,因为涉及与操作系统的交互。如果程序中创建了大量的生命期很短的线程,应该使用线程池。一个线程池中包含许多准备运行的空闲线程。将Runnable对象交给线程池,就会有一个线程调用run方法。当run方法退出时,线程不会死亡,而是在池中准备为下一个请求提供服务。 另一个使用线程池的理由是减少并发线程的数目。创建转载 2014-10-31 14:20:58 · 914 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):14.3 线程状态
铁文整理14.3 线程状态 线程可以有如下6种状态:newrunnableblockedwaitingtimed waitingterminated 下一节对每一种状态进行解释。 要确定一个线程的当前状态,可调用getState方法。14.3.1 新生线程 当用new操作符创建一个新转载 2014-10-31 14:11:26 · 824 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):5.2.2 相等测试与继承
铁文整理5.2.2相等测试与继承 如果隐式和显式的参数不属于同一个类,equals方法将如何处理呢?这是一个很有争议的问题。在前面的例子中,如果发现类不匹配,equals方法就返回false。但是,许多程序员却喜欢使用instanceof进行检测: if (!(otherObjectinstanceof Employee))r转载 2014-10-14 09:56:44 · 998 阅读 · 0 评论 -
全面挖掘Java Excel API 使用方法
全面挖掘Java Excel API 使用方法 作者:songnf2000 来源:www.javajia.com使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet 中创建一个CSV (comm原创 2005-08-05 10:23:00 · 1458 阅读 · 1 评论 -
Java Socket编程中的一个秘密类
Java Socket编程中的一个秘密类 作者:不详 来源:cn-java介绍 Java平台在java.net包里来实现Socket。在这本文中,我们将使用Java.net包中的下面三个类来工作: ·URLConnection ·Socket ·ServerSocket 在java.net包里包含有更多的类,但是这些是你最经常遇见的,让我们从URLConnection开始,这个类提原创 2005-08-05 10:12:00 · 1003 阅读 · 0 评论 -
教您如何用Zeus实现XML-Java的数据绑定
教您如何用Zeus实现XML-Java的数据绑定 作者:钟家豪 来源:http://www.cjsdn.netZeus可以将JAVA对象与XML文件进行绑定,绑定使数据在J2EE中的应用更加方便。本文主要介绍Zeus的编译与使用。对绑定过程中使用的DTD和XML文件也有说明。1、ZEUS简介Enhydra是以生长于美国加利福尼亚海边的小水獭命名的非营利组织的名字。从但与著名的Apache不同原创 2005-08-05 09:54:00 · 1814 阅读 · 0 评论 -
JudoScript: 让java离你更近一些(转自http://www.sxsoft.com/)
JudoScript: 让java离你更近一些 作者:肖菁 来源:Sun技术社区作者简介肖菁,软件工程师,IBM developerWorks/Bea dev2dev/sun 技术开发者撰稿人,主要研究J2EE、web services以及他们在websphere、weblogic平台上的实现,拥有IBM的 Developing With Websphere Studio证书。您可以通过gu原创 2005-08-05 09:47:00 · 1519 阅读 · 0 评论 -
Java Reflection (JAVA反射)
Java Reflection (JAVA反射) 作者:nootfly 来源:http://blog.csdn.net/nootfly/Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。Java 的这一能力在实际应用中也许用得不是很多,原创 2005-08-05 10:33:00 · 1263 阅读 · 1 评论 -
Java对象转为String的几种常用方法剖析
Java对象转为String的几种常用方法剖析 作者:中国.Net俱乐部 来源:中国.Net俱乐部在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。方法1:采用 Objec原创 2005-08-05 09:59:00 · 1271 阅读 · 0 评论 -
深入abstract class和interface
深入abstract class和interface 作者:城市WebClub 来源:城市WebClubabstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在原创 2005-08-05 10:30:00 · 1384 阅读 · 2 评论 -
JAVA代码编写的30条建议
JAVA代码编写的30条建议 作者:http://blog.csdn.net/cswcafe/ 来源:http://blog.csdn.net/cswcafe/JAVA代码编写的30条建议 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName thisIsMe原创 2005-08-05 10:24:00 · 1667 阅读 · 4 评论 -
讲解关于编写跨平台Java程序时的注意事项
讲解关于编写跨平台Java程序时的注意事项 作者:Javaresearch 来源:Javaresearch使用Java语言编写应用程序最大的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相当一部分的Java程序是不能在别的操作系统上正确运行的,那么如何才能编写一个真正的跨平台的Java程序呢?下面是在编写跨平台的Java程序是需要注意的一些事情:原创 2005-08-05 10:14:00 · 1049 阅读 · 0 评论 -
怎样在J2EE组件中引用和查找Web服务
怎样在J2EE组件中引用和查找Web服务 作者:陈亚强 来源:http://www.java-cn.com本文将讨论怎么在J2EE组件中引用Web服务、并且通过JNDI来查找Web服务。在内容组织上,首先把一个EJB2.1无状态会话Bean发布成Web服务,然后开发基于JSP的Web服务客户端,最后着重介绍怎么在JSP的部署时引用Web服务,并且讨论怎么通过JNDI来查找和调用Web服务。阅原创 2005-08-05 10:09:00 · 1367 阅读 · 0 评论 -
Java中调用外部命令
Java中调用外部命令 作者:- 来源:java-cnJava中调用外部命令 public class ExecCommond{ public ExecCommond(){} /** * 执行一条命令 * @param execStr String 命令字符串 * @return String 执行命令错误时的信息。 */ public static String exec(String e原创 2005-08-05 10:24:00 · 1334 阅读 · 2 评论 -
Java内存泄露问题分析
Java内存泄露问题分析 作者:csdn 来源:csdn很多人在谈论内存泄露问题,当然对于c/c++来说,这个应该是老掉牙的问题,但是很多Java人员也越来越多得讨论这个问题,我这里写个小结,希望对大家有一定的参考价值。 内存泄漏的慨念 1.c/c++是程序员自己管理内存,Java内存是由GC自动回收的。 我虽然不是很熟悉C++,不过这个应该没有犯常识性错误吧。 2.什么是内存泄露?原创 2005-08-05 10:34:00 · 1702 阅读 · 6 评论 -
Java核心技术卷I:基础知识(原书第8版):6.4 内部类
铁文整理6.4内部类 内部类是定义在另一个类中的类。为什么需要使用内部类呢?其主要原因有以下三点:内部类方法可以访问该类定义所在作用域中的数据,包括私有的数据。内部类可以对同一个包中的其他类隐藏起来。当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。 我们将这个比较复杂的内转载 2014-10-16 08:46:39 · 1413 阅读 · 0 评论 -
Java核心技术卷I:基础知识(原书第8版):6.5 代理
铁文整理6.5代理 在本章的最后,讨论一下代理,这是Java SE 1.3新增加的特性。利用代理可以在运行时创建一个实现了一组给定接口的新类。这种功能只有在编译时无法确定需要实现哪个接口时才有必要使用。对于应用程序设计人员来说,遇到这种情况的机会很少。如果对这种高级技术不感兴趣,可以跳过本节内容。然而,对于系统程序设计人员来说,代理带来的灵活性却十分重要。 假设有一转载 2014-10-16 09:35:55 · 983 阅读 · 0 评论 -
关于Java中的字符串
在Java字符串处理中,不不少使用length和charAt方法原创 2014-10-08 15:29:03 · 3069 阅读 · 1 评论 -
Java核心技术卷I:基础知识(原书第8版):13.5 遗留的集合
铁文整理13.5 遗留的集合 本节将讨论Java程序设计语言自问世以来就存在的集合类;Hashtable类和非常有用的子类Properties、Vector的子类Stack以及BitSet类。13.5.1 Hashtable类 Hashtable类与HashMap类的作用一样,实际上,它们拥有相同的接口。与Vector类的方法一样。Hashtable的方法也是同转载 2014-10-24 09:24:29 · 888 阅读 · 0 评论