摘要: 以下代码显示了如何获取线程的堆栈帧。Throwable对象在创建线程的点处捕获线程的堆栈。参考以下代码 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 public class Main  阅读全文
posted @ 2017-08-10 14:32 SXT 阅读(168) 评论(0) 推荐(0)
摘要: try块也可以有零个或一个finally块。 finally块总是与try块一起使用。 语法 finally块的语法是: 1 2 3 finally { // Code for finally block } finally { // Code for finally block } finally 阅读全文
posted @ 2017-08-10 14:18 SXT 阅读(111) 评论(0) 推荐(0)
摘要: 我们可以创建自己(自定义)的异常类。它们必须扩展现有的异常类。 1 2 3 <Class Modifiers> class <Class Name> extends <Exception Class Name> { } <Class Modifiers> class <Class Name> ext 阅读全文
posted @ 2017-08-10 14:13 SXT 阅读(211) 评论(0) 推荐(0)
摘要: 异常是在没有定义正常执行路径时在Java程序的执行期间可能出现的条件。Java通过将执行操作的代码与处理错误的代码分离来处理错误。 当发生异常时,Java会创建一个包含有关异常的所有信息的对象,并将其传递给相应的异常处理代码。有关异常的信息包括异常的类型,发生异常的代码中的行号等。 try-catc 阅读全文
posted @ 2017-08-10 14:04 SXT 阅读(107) 评论(0) 推荐(0)
摘要: 如果要在一段代码中抛出一个已检查的异常,有两个选择: 使用try-catch块处理已检查的异常。 在方法/构造函数声明中用throws子句指定。 使用try-catch块处理已检查的异常。 在方法/构造函数声明中用throws子句指定。 语法 throws子句的一般语法是: 1 2 3 <modif 阅读全文
posted @ 2017-08-10 12:02 SXT 阅读(113) 评论(0) 推荐(0)
摘要: 可以在方法声明中定义类型参数,它们在方法的返回类型之前的尖括号中指定。包含泛型方法声明的类型不必是通用类型。可以在非静态方法声明中使用为泛型类型指定的类型参数。 示例 以下代码显示如何为方法m1()定义新的类型参数V。新类型参数V强制将方法m1()的第一个和第二个参数必须为相同类型。 第三个参数必须 阅读全文
posted @ 2017-08-10 11:53 SXT 阅读(308) 评论(0) 推荐(0)
摘要: 使用泛型(也叫通用),可以在不知道代码操作的对象的类型的情况下编写代码。 它允许创建通用类,构造函数和方法。泛型类是使用形式类型参数定义的。形式类型参数是一个逗号分隔的变量名列表,放在类声明中类名后的尖括号<>中。 语法 下面的代码声明一个类Wrapper,它接受一个形式类型参数: 上代码中,参数已 阅读全文
posted @ 2017-08-10 11:50 SXT 阅读(103) 评论(0) 推荐(0)
摘要: 方法隐藏 一个类从其超类继承所有非私有静态方法。在子类中重新定义继承的静态方法称为方法隐藏。子类中的重定义静态方法隐藏其超类的静态方法。在类中重定义非静态方法称为方法覆盖。关于方法隐藏的重定义方法(名称,访问级别,返回类型和异常)的所有规则与方法覆盖相同。 1 2 3 4 5 6 7 8 9 10 阅读全文
posted @ 2017-08-10 11:46 SXT 阅读(393) 评论(0) 推荐(0)
摘要: 构造函数不是类的成员,它们不是由子类继承的。它们用于初始化实例变量。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class CSuper { public CSuper() { System.out.println("Inside CSuper() cons 阅读全文
posted @ 2017-08-10 11:43 SXT 阅读(209) 评论(0) 推荐(0)
摘要: 重新定义来自超类(父类)继承的类中的实例方法称为方法覆盖。 示例 现在来看看,类A和类B的以下声明,覆盖了 print() 方法 : 1 2 3 4 5 6 7 8 9 10 11 public class A { public void print() { System.out.println(" 阅读全文
posted @ 2017-08-10 11:36 SXT 阅读(223) 评论(0) 推荐(0)
摘要: 异常类层次结构 异常类层次结构从java.lang.Throwable类开始。当抛出异常时,它必须是Throwable类的对象或其任何子类。 catch块的参数必须是Throwable类型或其子类,例如:Exception,ArithmeticException,IOException等。 可以通过 阅读全文
posted @ 2017-08-10 11:26 SXT 阅读(96) 评论(0) 推荐(0)
摘要: 内部类可以访问其所有实例成员,实例字段和其封闭类的实例方法。参考如下实例 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 class Outer { private int valu 阅读全文
posted @ 2017-08-10 11:23 SXT 阅读(84) 评论(0) 推荐(0)
摘要: 静态成员类不是内部类在另一个类的主体中定义的成员类可以声明为静态。 示例 以下代码声明了顶级类A和静态成员类B: 1 2 3 4 5 6 class A { // Static member class public static class B { // Body for class B goes 阅读全文
posted @ 2017-08-10 11:21 SXT 阅读(104) 评论(0) 推荐(0)
摘要: 可以在类中的任何位置定义内部类,并在其中编写Java语句。有三种类型的内部类。 内部类的类型取决于位置和声明的方式。 成员内部类 局部内部类 匿名内部类 成员内部类 局部内部类 匿名内部类 成员内部类 成员内部类在类中声明的方式与声明成员字段或成员方法相同。它可以声明为public,private, 阅读全文
posted @ 2017-08-10 11:16 SXT 阅读(120) 评论(0) 推荐(0)
摘要: 作为包的成员的类被称为顶级类。一个类可以在另一个类中声明。 这种类型的类称为内部类。如果在另一个类中声明的类被显式或隐式声明为static,它被称为嵌套类,而不是内部类。包含内部类的类称为封闭类或外部类。 示例 下面的代码声明一个内部类。 1 2 3 4 5 6 class Outer { publ 阅读全文
posted @ 2017-08-10 11:13 SXT 阅读(131) 评论(0) 推荐(0)
摘要: 在创建状态后无法更改其状态的对象称为不可变对象。一个对象不可变的类称为不可变类。不变的对象可以由程序的不同区域共享而不用担心其状态改变。 不可变对象本质上是线程安全的。 示例 以下代码创建了不可变类的示例。 1 2 3 4 5 6 7 8 9 public class IntWrapper { pr 阅读全文
posted @ 2017-08-10 11:09 SXT 阅读(127) 评论(0) 推荐(0)
摘要: Java提供了一种在对象即将被销毁时执行资源释放的方法。在Java中创建对象,但是不能销毁对象。JVM运行一个称为垃圾收集器的低优先级特殊任务来销毁不再引用的所有对象。 垃圾回收器给我们一个机会,在对象被销毁之前执行清理代码。Object类有一个finalize()方法就是用于在对象被销毁之前执行清 阅读全文
posted @ 2017-08-10 11:06 SXT 阅读(400) 评论(0) 推荐(0)
摘要: Java不提供克隆(复制)对象的自动机制。克隆对象意味着逐位复制对象的内容。要支持克隆操作,请在类中实现clone()方法。Object类中的clone()方法的声明如下: 1 protected Object clone() throws CloneNotSupportedException pr 阅读全文
posted @ 2017-08-10 11:00 SXT 阅读(104) 评论(0) 推荐(0)
摘要: 对象的字符串表示以可读格式包含有关对象状态的信息。Object类的toString()方法表示字符串中类的对象。Object类提供了toString()方法的默认实现。 它返回一个以下格式的字符串: 1 <fully qualified class name>@<hash code of objec 阅读全文
posted @ 2017-08-10 10:56 SXT 阅读(1745) 评论(0) 推荐(0)
摘要: 以下代码显示如何实现equals()和hashCode()方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 4 阅读全文
posted @ 2017-08-10 10:53 SXT 阅读(225) 评论(0) 推荐(0)
摘要: 哈希码(也叫散列码)是一个整数值。计算整数的算法称为散列函数。Java使用散列码从基于散列的集合中有效地检索数据。Object类有一个返回int的hashCode()方法,它是对象的哈希码。该方法的默认实现通过将对象的内存地址转换为整数来计算对象的哈希码。下面是我们在类中重写hashCode()方法 阅读全文
posted @ 2017-08-10 10:52 SXT 阅读(269) 评论(0) 推荐(0)
摘要: 实例初始化块 实例初始化块用于初始化类的对象。一个实例初始化程序只是一个类的代码块,但在任何方法或构造函数之外。实例初始值设定程序没有名称。它的代码只是放置在一个开放的大括号和闭包中。 示例 下面的代码展示了如何为Test类声明一个实例初始化器。注意,实例初始化程序在实例上下文中执行,并且关键字th 阅读全文
posted @ 2017-08-10 10:48 SXT 阅读(130) 评论(0) 推荐(0)
摘要: 构造函数是用于在对象创建后立即初始化对象的代码块。构造函数的结构看起来类似于一个方法。 声明构造函数 构造函数声明的一般语法是: 1 2 3 <Modifiers> <Constructor Name>(<parameters list>) throws <Exceptions list> { } 阅读全文
posted @ 2017-08-10 10:41 SXT 阅读(162) 评论(0) 推荐(0)
摘要: final关键字不允许修改或替换其原始值或定义。final关键字可以在以下三个上下文中使用: 变量声明 类声明 方法声明 变量声明 类声明 方法声明 final变量 如果一个变量被声明为final,它只能被赋值一次。final变量的值在设置后不能修改。变量声明包括局部变量的声明,方法/构造函数的形式 阅读全文
posted @ 2017-08-10 10:38 SXT 阅读(73) 评论(0) 推荐(0)
摘要: Java有一个关键字叫this。 它是对类的当前实例的引用。它只能在实例的上下文中使用。以下代码显示如何使用this关键字。 1 2 3 4 5 public class Main { int varA = 1; int varB = varA; // Assign value of varA to 阅读全文
posted @ 2017-08-10 10:33 SXT 阅读(100) 评论(0) 推荐(0)
摘要: 类可以是public或default(或包级别)。在本教程中主要介绍 public,private,protected 这几个访问级别修辞符的使用。类成员的访问级别确定程序的哪个区域可以访问它。 以下四个访问级别修饰符之一可以用于类成员: 公开(public) 私有(private) 保护(prot 阅读全文
posted @ 2017-08-10 10:30 SXT 阅读(463) 评论(0) 推荐(0)
摘要: SAX(针对XML的简单API)是基于事件为XML文档的解析器。不像DOM解析器,SAX解析器创建没有解析树。 SAX是一个流接口用于XML的,这意味着使用SAX应用接收事件通知有关XML文档被处理的元素,属性,在按顺序每次开始在文档的顶部,并与所述闭合结束根元素。 读取XML文件从上到下,构成一个 阅读全文
posted @ 2017-08-10 10:27 SXT 阅读(156) 评论(0) 推荐(0)
摘要: 这是我们需要修改的输入XML文件: 1 2 3 4 5 6 7 8 9 10 11 12 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <cars> <supercars company="Ferrari"> <carname type 阅读全文
posted @ 2017-08-10 10:18 SXT 阅读(166) 评论(0) 推荐(0)
摘要: 这是需要我们查询的输入XML文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0"?> <cars> <supercars company="Ferrari"> <carname type="formula one"> 阅读全文
posted @ 2017-08-10 10:14 SXT 阅读(176) 评论(0) 推荐(0)
摘要: 使用DOM的步骤 以下是在使用DOM解析器解析文档使用的步骤。 导入XML相关的软件包。 创建DocumentBuilder 从文件或流创建一个文档 提取根元素 检查属性 检查子元素 导入XML相关的软件包。 创建DocumentBuilder 从文件或流创建一个文档 提取根元素 检查属性 检查子元 阅读全文
posted @ 2017-08-10 10:09 SXT 阅读(223) 评论(0) 推荐(0)