自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (3)
  • 收藏
  • 关注

原创 继承的设计技巧(学习 Java 编程语言 055)

将公共操作和字段放在超类这就是为什么将姓名字段放在 Person 类中,而没有将它放在 Employee 和 Student类中的原因。不要使用受保护的字段有些程序员认为,将大多数的实例字段定义为 protected 是一个不错的主意,“以防万一”,这样子类能够在需要的时候直接访问这些字段。然而,protected 机制并不能够带来更多的保护,这有两方面的原因:子类集合是无限制的,任何一个人都能够由你的类派生一个子类,然后编写代码以直接访问 protected 实例字段,从而破坏了..

2021-02-08 17:49:48 148

原创 Java 枚举类(学习 Java 编程语言 054)

一个枚举类型的典型例子: public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE};实际上,这个声明定义的类型是一个类,它刚好有 4 个实例,不可能构造新的对象。因此,在比较两个枚举类型的值时,并不需要调用 equals,直接使用 “==” 就可以了。如果需要的话,可以为枚举类型增加构造器、方法和字段。当然,构造器只是在构造枚举常量的时候调用。下面是一个示例:enum Size{ SMALL("S", 0), MEDIUM("M", 1),

2021-02-08 17:49:04 117

原创 参数数量可变的方法(学习 Java 编程语言 053)

可以提供参数数量可变的方法(有时这些方法被称为“变参”(varags)方法)。前面已经看到过这样的一个方法:printf。例如,下面的方法调用: System.out.printf("%d", 1); System.out.printf("%d %s", 1, "widgets");这两条语句都调用了同一个方法,不过一个调用有两个参数,另一个调用有三个参数。printf 方法是这样定义的:public class PrintStream{ public PrintStream prin

2021-02-08 17:48:23 335

原创 Java 对象包装器(学习 Java 编程语言 052)

有时需要将 int 这样的类型转换为对象。所有的基本类型都有一个与之对应的类。通常,这些类称为***包装器(wrapper)***。这些对象包装器类拥有显而易见的名字:Integer、Long、Float、Double、Short、Byte、Character 和 Boolean (前 6 个类派生于公共的超类 Number)。包装器类是不可变的,即一旦构造了包装器,就不允许更改包装在其中的值。同时,包装器类还是 final,因此不能派生它们的子类。假设想要定义一个整型数组列表。遗憾的是,尖括号中的类

2021-02-07 22:53:52 136

原创 Java 泛型数组列表 ArrayList(学习 Java 编程语言 051)

虽然 Java 中允许在运行时确定数组的大小。 int size = ...; String[] staff = new String[size];但是并没有完全解决运行时动态更改数组的问题。一旦确定了数组的大小,就不能很容易地改变它。在 Java 中,解决这个问题最简单的方法是使用 Java 中另外一个类,名为 ArrayList。ArrayList 类类似于数组,但在添加或删除元素时,它能够自动地调整数组容量,而不要为此编写任何代码。ArrayList 是一个有类型参数(type parame

2021-02-07 22:53:02 896

原创 在 Java 类中定义 toString 方法(学习 Java 编程语言 050)

在 Object 中还有一个重要的 toString 方法,它会返回表示对象值的一个字符串。下面是一个典型的例子。Point 类的 toString方法将返回下面这样的字符串: java.awt.Point[x=10,y=20]绝大多数(但不是全部)的 toString 方法都遵循这样的格式:类的名字,随后是一对方括号括起来的字段值。下面是 Employee 类中的 toString 方法的实现:public class Employee { private String name;

2021-02-05 17:52:53 2212

原创 在 Java 类中实现 hashCode 方法(学习 Java 编程语言 049)

散列码(hash code) 是由对象导出的一个整型值。散列码是没有规律的。如果 x 和 y 是两个不同的对象,x.hashCode() 与 y.hashCode() 基本上不会相同。hashCode 方法应该返回一个整数(也可以是负数),要合理组合实例字段的散列码,以便能够让不同对象产生的散列码分布更加均匀。Object 类中定义的 hashCode 方法的值由对象的存储地址得出。所以每个对象都有一个默认的散列码,其值由对象的存储地址得出。几个字符串的散列码:字符串散列码Hel

2021-02-04 17:12:19 291 1

原创 Java 类的 equals 方法(学习 Java 编程语言 048)

Object 类中的 equals 方法用于检测一个对象是否等于另外一个对象。Object 类中实现的 equals 方法将确定两个对象引用是否相等。这是一个合理的默认行为:如果两个对象引用相等,这两个对象肯定就相等。 对于很多类来说,这就足够了。例如,比较两个 PrintStream 对象是否相等并没有多大的意义。不过,经常需要基于状态监测对象的相等性,如果两个对象有相同的状态,才认为这两个对象是相等的。例如,如果两个员工对象的姓名、薪水和雇用日期都一样,就认为它们是相等的。class Employe

2021-02-03 20:03:11 296

原创 Java Object 类(学习 Java 编程语言 047)

Object 类是 Java 中所有类的始祖, 在 Java 中每个类都扩展了 Object。但是并不需要这样写: public class Employee extends Object如果没有明确地指出超类,Object 就被认为是这个类的超类。由于在 Java中每个类都是由 Object 类扩展而来的,所以,熟悉这个类提供的所有服务十分重要。1. Object 类型变量可以使用 Object 类型的变量引用任何类型的对象: Object obj = new Employee("Harry H

2021-02-01 17:20:44 56

原创 Java 类的受保护访问(学习 Java 编程语言 046)

最好将类中的字段标记为 private,而方法标记为 public。任何声明为 private 的内容对其他类都是不可见的。这对子类来说也完全适用,即子类也不能访问超类的私有字段。Java 中的受保护部分对所有子类及同一个包中的所有其他类都可见。有时候可能希望限制超类中的某个方法只允许子类访问,或者允许子类的方法访问超类的某个字段。需要将这些类方法或字段声明为受保护(protected)。例如,如果将超类 Employee 中的 hireDay 字段声明为 protected,而不是 private,M

2021-02-01 17:20:01 299

原创 Java break 和 continue 中断控制流程的语句(学习 Java 编程语言 021)

1. break 语句break 语句的用途:退出循环语句。退出 switch 语句。使用带标签的 break 语句跳出多重嵌套的循环语句。1.1 退出循环结构while(years <= 100) { double interest = balance * interestRate / 100; balance += interest; if(balance >= goal) { break; } years++;}

2021-01-29 22:24:11 91

原创 Java for each 循环语句(学习 Java 编程语言 019)

Java 有一种功能很强的循环结构,可以用来依次处理数组(或者其他元素集合)中的每个元素,而不必考虑指定下标值。这种增强的 for 循环的语句格式为: for (variable : collection) statement它定义一个变量用于暂存集合中的每一个元素,并执行相应的语句(当然,也可以是语句块)。collection 这一集合表达式必须是一个数组或者是一个实现了 Iterable 接口的类对象(例如 ArrayList)。例如:int [] a = {1, 2, 3};for (int

2021-01-29 22:21:18 103

原创 Java 大数 BigInterger 和 BigDecimal(学习 Java 编程语言 012)

大数就是没有精度要求和没有舍入误差的数值类型。java.math 包中的 BigInteger 和 BigDecimal 两个类可以处理包含任意长度数字序列的数值。BigInteger 类实现了任意精度的整数运算。BigDecimal 实现了任意精度的浮点数运算。使用大数的情形:无法接受舍入误差计算中。例如金融计算,命令 System.out.pritnln(2.0 - 1.1) 将打印出 0.8999999999999999,而不是人们期望的 0.9。基本的整数和浮点数精度不能够

2021-01-29 22:12:31 241

原创 Java 字符串简介(学习 Java 编程语言 011)

从概念上讲,Java 字符串就是 Unicode 字符序列。Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个预定义类,很自然地叫做 String。每个用双引号括起来的字符串都是 String 类的一个实例:String e = ""; // 空字符串String greeting = "Hello";1. 子串String 类的 substring 方法可以从一个较大的字符串提取出一个子串。String greeting = "Hello";String s = gr.

2021-01-29 22:11:16 128

原创 Java 数值类型转换(学习 Java 编程语言 010)

1. 数值类型之间的转换图中的 6 个实线箭头,表示无信息丢失的转换。3 个虚线箭头表示可能有精度损失的转换。byte --> short, 无信息丢失的转换short --> int, 无信息丢失的转换char --> int, 无信息丢失的转换int --> long, 无信息丢失的转换int --> double, 无信息丢失的转换float --> double, 无信息丢失的转换int --> float, 可能有精度丢失long -

2021-01-29 22:09:59 160

原创 Java 的数据类型(学习 Java 编程语言 009)

Java 中共有 8 中基本类型(Primitive type),其中有 4 种整型、2 种浮点型、1 种字符类型 char 和 1 种 boolean 类型。在 Java 中,所有的数值类型所占据的字节数量与平台无关。1. 整型整型用于表示没有小数部分的数值,它允许是负数。Java 提供了 4 种整型:byte、short、int 和 long。类型存储需求取值范围byte1 字节-128 ~ 127short2 字节-32 768 ~ 32 767in

2021-01-29 22:08:53 181

原创 Java 抽象类(学习 Java 编程语言 045)

如果将一个类声明为 abstract,那么这个类就是抽象类。抽象类可以包含抽象方法、字段和具体方法。抽象类不能被实例化,但抽象类的对象变量可以引用了一个非抽象子类的实例。如果自下而上在类的继承层次结构中上移,位于上层的类更具有通用性,可能更加抽象。从某种角度看,祖先类更有一般性,人们只将它作为派生其他类的基类,而不是用来构造你想使用的特定的实例。例如,考虑扩展 Employee 类层次结构。员工是一个人,学生也是一个人。下面扩展我们的类层次结构来加入类 Person 和类 Student。下图显示了这三个

2021-01-29 21:28:59 152

原创 Java 强制类型转换(学习 Java 编程语言 044)

将一个类型强制转换成另外一个类型的过程被称为强制类型转换。Java 程序设计语言提供了一种专门用于进行强制类型转换的表示法。 double x = 3.405; int nx = (int) x;将表达式 x 的值转换成整数类型,舍弃了小数部分。正像有时候需要将浮点数转换成整数一样,有时候也可能需要将某个类的对象引用转换成另外一个类的对象引用。要完成对象引用的强制类型转换,转换语法与数值表达式的强制类型转换类似,仅需要用一对圆括号将目标类名括起来,并放置在需要转换的对象引用之前就可以了。publi

2021-01-29 21:27:43 117

原创 Java 多态(学习 Java 编程语言 043)

1. 多态一个对象变量可以指示多种实际类型的现象被称为多态(polymorphism)。多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。有一个简单规则可以用来判断是否应该将数据设计为继承关系,就是 “is-a” 规则,它指出子类的每个对象也是超类的对象。例如,每个经理都是员工,因此,将 Manager 类设计为 Employee 类的子类是有道理的;反之亦然,并不是每一名员工都是经理。“is-a” 规则的另一种表述是替换原则(substitution

2021-01-28 15:25:57 123

原创 Java 超类和子类(学习 Java 编程语言 042)

“is-a” 关系是继承的一个明显特征。注释: 我们使用员工和经理的例子,不过这个例子要有所保留。在真实的世界里,员工也可能会成为经理,所以你建模时可能希望经理也是员工,而不是员工的一个子类。不过,在例子中,假设公司只有两类人:一些人永远是员工,另一些人一直是经理。Employee 类:import java.time.LocalDate;import java.util.Objects;public class Employee { private String name; p

2021-01-27 14:23:11 725

原创 Java final 类和方法(学习 Java 编程语言 041)

不允许扩展的类被称为 final 类。如果在定义类的时候使用了 final 修饰符就表明这个类是 final 类。public final class String implements java.io.Serializable, Comparable<String>, CharSequence, Constable, ConstantDesc { ...}类中的某个特定方法也可以被声明为 final。如果这样做,子类就不能覆盖这个方法(fi

2021-01-25 17:05:03 81

原创 Java 修饰符(学习 Java 编程语言 040)

访问修饰符(access specifier)决定了紧随其后被定义的内容可以被谁使用。public声明为 public 的内容对其他类都是可见的。private声明为 private 的内容对其他类都是不可见的,只有本类可以访问。protected与 private 作用相当,差别仅在于继承的类可以访问 protected 内容,但是不能访问 private 内容。默认(没有指定访问修饰符)通常被称为包访问权限,因为在这种权限下,类可以访问在同一个包(库构件)中的其他类

2021-01-25 17:04:32 2992

原创 Java 类的设计技巧(学习 Java 编程语言 039)

更能得到 OOP 圈子认可的类的设计技巧:1. 一定要保证数据私有。这是最重要的;绝对不要破坏封装性。有时候,可能需要编写一个访问器方法或更改器方法,但是最好还是保持实例字段的私有性。很多惨痛的教训告诉我们,数据的表示形式很可能会改变,但它们的使用方式却不会经常变化。当数据保持私有时,表示形式的变化不会对类的使用者产生影响,而且也更容易检测 bug。2. 一定要对数据进行初始化。Java 不会为你初始化局部变量,但是会对对象的实例字段进行初始化。最好不要依赖于系统的默认值,而是应该显式地初始化所有的

2021-01-24 17:12:31 97

原创 Java 文档注释(学习 Java 编程语言 038)

JDK 包含一个很有用的工具,叫做 javadoc, 它可以由源文件生成一个 HTML 文档。Java 的 API 文档就是通过标准 Java 类库的源代码运行 javadoc 生成的。如果在源代码中添加以专用的定界符 /** 开始的注释,可以很容易地生成一个看上去具有专业水准的文档。这是一种很好的方式,因为这种方式可以将代码与文档注释放在一个地方。如果将文档注释放在一个独立的文件中,就有可能会随着时间的推移出现代码和文档注释不一致的问题。然而,由于文档注释与源代码在同一个文件中,在修改源代码的同时,重新

2021-01-23 17:35:06 148

原创 Jar 文件(学习 Java 编程语言 037)

Java 归档(JAR)文件设计的目的:在应用程序打包时,希望只向用户提供一个单独的文件,而不是一个包含大量类文件的目录结构。JAR 文件既可以包含类文件,也可以包含诸如图像和声音等其他类型的文件。JAR 文件是压缩的,JAR 文件使用了我们熟悉的 ZIP 压缩格式。可以使用任何 ZIP 工具查看 JAR 文件。提示: pack200 是一种较通常的 ZIP 压缩算法更加有效的压缩类文件的方式。Oracle 声称,对类文件的压缩率接近 90%。1. 创建 JAR 文件可以使用 jar 工具制作 J

2021-01-21 21:25:47 230

原创 Java 类路径(学习 Java 编程语言 036)

类存储在文件系统的子目录中。类的路径必须与包名匹配。类文件也可以存储在 JAR(Java 归档)文件中。在一个 JAR 文件中,可以包含多个压缩形式的类文件和子目录,这样既可以节省空间又可以改善性能。在程序中用到第三方的库文件时,你通常要得到一个或多个需要包含的 JRE 文件。为了使类能够被多个程序共享,需要做到下面几点:把类放在一个目录中,例如 /home/user/classdir。需要注意,这个目录是包树状结构的基目录。如果希望增加 com.xiang117.corejava.Employ

2021-01-20 19:34:11 541

原创 Java 包(学习 Java 编程语言 035)

Java 允许使用包(package)将类组织在一个集合中。借助包可以方便地组织自己的代码,并将自己的代码与别人提供的代码库分开管理。标准的 Java 类库分布在多个包中,包括 java.long、java.util 和 java.net 等。标准的 Java 包具有一个层次结构。所有标准的 Java 包都处于 java 和 javax 包层次中。1. 包名使用包的主要原因是确保类名的唯一性。事实上,为了确保包名的绝对唯一性,要用一个因特网域名(这显然是唯一的)以逆序的形式作为包名,然后对于不同的工程

2021-01-20 19:33:34 217

原创 如何在 Java 中构造对象(学习 Java 编程语言 034)

1. 构造器Java 对象都是在堆中构造的。先看看 Employee 类的构造器:public class Employee { private String name; private double salary; private LocalDate hireDay; public Employee(String name, double salary, int year, int month, int day) { this.name =

2021-01-15 23:51:18 173

原创 初始化 Java 数据字段(学习 Java 编程语言 033)

初始化数据字段的方法:在构造器中设置值。在声明中赋值。使用初始化块(initialization block)赋值。1. 默认字段初始化如果在构造器中没有显示地为字段设置初值,那么就会被自动地赋为默认值:数值为 0、布尔值为 false、对象引用为 null。有些人认为依赖默认值的做法是一种不好的编程实践。确实,如果不明确地对字段进行初始化,就会影响程序代码的可读性。注释: 这是字段与局部变量的一个重要区别。方法中的局部变量必须明确初始化。但是在类中,如果没有初始化类中的字段,将会自动初始化

2021-01-14 18:45:31 480 4

原创 Java 方法参数(学习 Java 编程语言 032)

1. 方法参数的传递方式“按…………调用”(call by)是一个标准的计算机科学术语,用来描述各种程序设计语言中方法参数的传递方式。方法参数的传递方式:按值调用(call by value)表示方法接收的是调用者提供的值。按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。方法可以修改按引用传递的变量的值,而不能修改按值传递的变量的值。Java 程序设计语言总是采用按值调用。也就是说,方法得到的是所有参数值的一个副本。具体讲,方法不能修改传递给它的任何参数

2021-01-13 11:53:25 145

原创 Java 静态字段与静态方法(学习 Java 编程语言 031)

1. 静态字段静态字段就是将字段定义为 static 的字段,类的所有实例共享一个静态字段。静态字段属于类,而不属于任何单个对象。而对于非静态的实例字段,每个对象都有自己的一个副本。class Employee{ private static int nextId = 1; private int id; ...}现在,每个 Employee 对象都一个自己的 id 字段,但 Employee 类的所有实例将共享一个 nextId 字段。即使没有 Employee 对象,

2021-01-13 11:52:56 209

原创 Java final 实例字段(学习 Java 编程语言 030)

final 实例字段:定义为 final 的实例字段。final 实例字段必须在构造对象时初始化。也就是说,必须确保在每一个构造器执行之后,这个字段的值已经设置,并且以后不能再修改这个字段。例如,将 Employee 类中的 name 字段声明为 final,因为在对象构造之后,这个值不会再改变,即没有 setName 方法。在构造方法中初始化 final 实例字段:public class Employee { private final String name; public

2021-01-09 21:00:51 373 5

原创 私有方法_20201209201436(学习 Java 编程语言 029)

在实现一个类时,由于公共数据非常危险,所以应该将所有的数据字段都设置为私有的。方法为什么设计为私有呢?尽管绝大多数方法都被设计为共有的,但在某些特殊情况下,将方法设计为私有的可能很有用。有时,可能希望将一个计算代码分解成若干个独立的辅助方法。通常,这些辅助方法不应该成为公共接口的一部分,这是由于它们往往与当前实现关系非常紧密,或者需要一个特殊协议或者调用次序。最好将这样的方法设计为私有方法。在 Java 中,为了实现一个私有的方法,只需将关键字 public 改为 private 即可。私有方法的好

2021-01-08 19:29:18 86

原创 基于类的私有访问权限(学习 Java 编程语言 028)

方法可以访问调用这个方法的对象的私有数据。一个方法可以访问所属类的所有对象的私有数据。class Employee{ ... @Override public boolean equals(Object otherObject) { // a quick test to see if the objects are identical if (this == otherObject) return true; // must

2021-01-07 13:42:41 134

原创 封装的优点(学习 Java 编程语言 027)

class Employee { private String name; private double salary; private LocalDate hireDay; public Employee(String name, double salary, int year, int month, int day) { this.name = name; this.salary = salary; hireDay = L

2021-01-07 13:42:07 118

原创 Java 运算符(学习 Java 编程语言 008)

运算符用于连接值。Java 提供了一组丰富的算术和逻辑运算符以及数学函数。1. 算术运算符Java 中使用算术运算符 +、-、*、/ 表示加、减、乘、除 运算。当参与 / 运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。整数的求余操作(有时称为取模)用 % 表示。如果参与运算的两个操作数都是整数时,表示整数运算,否则表示浮点运算。整数被 0 除将会产生一个异常,而浮点型被 0 除将会得到无穷大或 NaN 结果。int resultInt;double resultDouble;.

2021-01-06 19:13:55 164

原创 Java 关键字(学习 Java 编程语言 007)

关键字含义abstract抽象类或方法assert用来查找内部程序错误boolean布尔类型break跳出一个选择语句或循环byte8 位整数类型caseswitch 的一个分支catch捕获异常的 try 块子句charUnicode 字符类型class定义一个类类型const未使用continue在循环末尾继续defaultswitch 的默认子句,或者接口的默认方法dodo/while...

2021-01-06 19:13:17 80

原创 Java 常量与变量(学习 Java 编程语言 006)

1. 声明变量在 Java 中,使用变量来存储值,每个变量都有一个类型(type)。在声明变量时,先指定变量的类型,然后是变量名,变量的声明以分号结束。这里有一些声明变量的示例:double salary;int vacationDays;long earthPopulation;boolean done;2. 变量的命名变量名必须是一个以字母开头并由字母或数字构成的序列。变量名中所有的字符都是有意义的,并且大小写敏感。变量名的长度基本上没有限制。不能使用 Java 保留字作为变量名

2021-01-06 19:12:42 82

原创 Java 注释(学习 Java 编程语言 005)

Java 中的注释不会出现在可执行程序中。因此,可以在源程序中根据需要添加任意多的注释,而不必担心可执行代码会膨胀。在 Java 中有 3 种标记注释的方式:使用 //,注释内容从 // 开始到本行结束。System.out.println("Welcome to Java"); // 这就是注释一定要当心注释中的 \u。注释// \u00A0 is a newline会产生一个语法错误,因为读程序时 \u00A0 会替换为一个换行符。类似地,下面这个注释:// Look inside c

2021-01-06 19:10:19 119

原创 Java 程序结构说明(学习 Java 编程语言 004)

1. 一个简单的类创建 FirstSample.java 文件,来编写最简单的 Java 应用程序。下面是示例代码:public class FirstSample{ public static void main(String[] args) { System.out.println("Welcome to JAVA"); }}类源码说明:Java 区分大小写。如果出现了拼写错误,程序将无法运行。关键字 public 称为访问修饰符 (access mod

2021-01-06 19:09:26 190

jdbc连接实例(sqlserver 2000/2005、 oracle 10g)

程序中有SQL SERVER 2000、SQL SERVER 2005、ORACLE 10g的jdbc连接数据库的例子,以及对应驱动包的的说明(在lib路径下)。

2011-08-10

EL表达式和jsp JSTL标签库的总结

EL表达式使用方法总结以及显示结果,jstl标签库使用方法总结以及显示结果。

2009-11-27

ajax 基础教程 doc文档

Ajax基础教程 Ajax是当下比较流行的语言之一,可以实现网页的局部刷新,使动态网页的更加灵活。此文档介绍了Ajax的基础。

2009-05-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除