Java Precisely third edition Peter Sestoft download
Java Precisely third edition Peter Sestoft download
download
https://ebookname.com/product/java-precisely-third-edition-peter-
sestoft/
https://ebookname.com/product/metaphysics-third-edition-peter-
van-inwagen/
https://ebookname.com/product/real-time-java-platform-
programming-1st-edition-peter-c-dibble/
https://ebookname.com/product/bovine-medicine-third-edition-
edition-peter-d-cockcroft/
https://ebookname.com/product/social-media-for-scientific-
institutions-how-to-attract-young-academics-by-using-social-
media-as-a-marketing-tool-1st-edition-daniel-hurrle/
Religion and Psychology 1st Edition Michael T. Evans
https://ebookname.com/product/religion-and-psychology-1st-
edition-michael-t-evans/
https://ebookname.com/product/lean-development-and-innovation-
hitting-the-market-with-the-right-products-at-the-right-time-
luciano-attolico/
https://ebookname.com/product/the-platform-sutra-the-zen-
teaching-of-hui-neng-first-edition-red-pine/
https://ebookname.com/product/sport-and-exercise-psychology-the-
key-concepts-routledge-key-guides-2nd-edition-wray-vamplew/
https://ebookname.com/product/ecgs-by-example-3rd-edition-
richard-dean-jenkins/
The Western Literary Tradition An Introduction In Texts
1st Edition Edition Margaret L. King
https://ebookname.com/product/the-western-literary-tradition-an-
introduction-in-texts-1st-edition-edition-margaret-l-king/
Java Precisely
Third Edition
Peter Sestoft
Java Precisely
Third Edition
All rights reserved. No part of this book may be reproduced in any form by any electronic or mechanical
means (including photocopying, recording, or information storage and retrieval) without permission in
writing from the publisher.
MIT Press books may be purchased at special quantity discounts for business or sales promotional use.
This book was set in Times by the author using LATEX and was printed and bound in the United States of
America.
10 9 8 7 6 5 4 3 2 1
Contents
Preface xi
5 Types 4
5.1 Primitive Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5.2 Reference Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5.3 Array Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5.4 Boxing: Wrapping Primitive Types as Reference Types . . . . . . . . . . . . . . . . . . . . . 4
5.5 Subtypes and Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.6 Signatures and Subsumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.7 Type Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
7 Strings 10
7.1 String Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8 Arrays 16
8.1 Array Creation and Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.2 Array Initializers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.3 Multidimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
8.4 The Utility Class Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9 Classes 22
9.1 Class Declarations and Class Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.2 Top-Level Classes, Nested Classes, Member Classes, and Local Classes . . . . . . . . . . . . 22
9.3 Class Modifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.4 The Class Modifiers public, final, abstract . . . . . . . . . . . . . . . . . . . . . . . . . 24
9.5 Subclasses, Superclasses, Class Hierarchy, Inheritance, and Overriding . . . . . . . . . . . . 24
9.6 Field Declarations in Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
9.7 The Member Access Modifiers private, protected, public . . . . . . . . . . . . . . . . . 26
9.8 Method Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9.9 Parameter Arrays and Variable-Arity Methods . . . . . . . . . . . . . . . . . . . . . . . . . 30
vi Contents
11 Expressions 36
11.1 Table of Expression Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
11.2 Arithmetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
11.3 Logical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
11.4 Bitwise Operators and Shift Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
11.5 Assignment Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.6 Conditional Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.7 Object Creation Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.8 Instance Test Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.9 Field Access Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.10 The Current Object Reference this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.11 Type Cast Expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.12 Method Call Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
11.13 Lambda Expressions (Java 8.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
11.14 Method Reference Expressions (Java 8.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
12 Statements 52
12.1 Expression Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
12.2 Block Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
12.3 The Empty Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
12.4 Choice Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
12.5 Loop Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
12.6 Returns, Labeled Statements, Exits, and Exceptions . . . . . . . . . . . . . . . . . . . . . . 60
12.7 The Try-with-Resources Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
12.8 The assert Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
13 Interfaces 66
13.1 Interface Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
13.2 Classes Implementing Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
13.3 Default and Static Methods on Interfaces (Java 8.0) . . . . . . . . . . . . . . . . . . . . . . . 68
13.4 Annotation Type Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
14 Enum Types 70
18 Mathematical Functions 76
27 Reflection 172
27.1 Reflective Use of Types: The Class<T> Class . . . . . . . . . . . . . . . . . . . . . . . . . . 172
27.2 Reflection: The Field Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
27.3 Reflection: The Method Class and the Constructor<T> Class . . . . . . . . . . . . . . . . . . 174
27.4 Exceptions Thrown When Using Reflection . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
References 180
Contents ix
Index 181
Preface
This third edition of Java Precisely gives a concise description of the Java programming language, version 8.0.
It is a quick reference for the reader who has already learned (or is learning) Java from a standard textbook and
who wants to know the language in more detail. The book presents the entire Java programming language and
essential parts of the class libraries: the collection classes, the input-output classes, the stream library and its
facilities for parallel programming, and the functional interfaces used for that.
General rules are shown on left-hand pages mostly, and corresponding examples are shown on right-hand
pages only. All examples are fragments of legal Java programs. The complete ready-to-run example programs
are available from the book Web site: www.itu.dk/people/sestoft/javaprecisely.
This third edition adds material about new methods for functional parallel processing of arrays (sec-
tion 8.4); default and static methods on interfaces (section 13.3); the memory visibility effects of volatile
and final (section 20.5); new comparator methods (section 22.10); functional interfaces (chapter 23) and the
related lambda expressions (section 11.13) and method reference expressions (section 11.14); stream process-
ing, including parallel programming and collectors (chapter 24); and the Optional class (chapter 25). In general
the book has been updated for the changes from Java 5.0 to Java 8.0. The final chapter 29 summarizes and
illustrates the new features of Java 8.0 and compares them to the C# programming language.
The book does not cover garbage collection, non-blocking input-output, the executor framework, finaliza-
tion and weak references, details of IEEE 754 floating-point numbers, or Javadoc.
Acknowledgments Thanks to Rasmus Lund, Niels Hallenberg, Hans Henrik Løvengreen, Christian Gram,
Jan Clausen, Anders Peter Ravn, Bruce Conrad, Brendan Humphreys, Hans Rischel, Ken Friis Larsen, Dan
Becker, Mads Jeppe Tarp-Johansen, Kasper Østerbye, Kasper Bilsted Graversen, Søren Eduard Jacobsen, Paul
van Bemmelen, Axel Tobias Schreiner, David Hemmendinger, Baris Aktemur, Jakob Bendsen, Jan Schoubo,
and all the anonymous reviewers and copy editors for their useful comments, suggestions, and corrections.
Special thanks to Rasmus Lund for letting me adapt his collections diagram for this book, and to Kasper
Østerbye for campaigning for a reflection chapter and providing a first draft of it.
It was a pleasure to work with Robert Prior, Valerie Geary, Deborah Cantor-Adams, Krista Magnuson,
Marc Lowenthal, Marie Lufkin Lee, Virginia Crossman, and Kathleen Hensley at The MIT Press. Thanks also
to the IT University of Copenhagen, Denmark, for support.
Notational Conventions
Symbol Meaning
a Expression or value of array type
b Boolean or byte array
C Class
cmp Comparator or Comparer
cs Character array (type char[])
cseq Character sequence (type CharSequence)
E Exception type
e Expression
f Field or function
I Interface
i Expression or value of integer type
m Method
o Expression or value of object type
p Package or predicate
s Expression or value of type String
supp Expression or value of type Supplier
sig Signature of method or constructor
t Type (primitive type or reference type)
T, U, K, V Type parameter in generic type or method
u Expression or value of thread type
v Value of any type
x Variable or parameter or field or array element
xs Stream
Java Precisely
2 Comments and Program Layout
Example 1 Comments
class Comment {
// This is a one-line comment; it extends to the end of the line.
/* This is a delimited comment,
extending over several lines.
*/
int /* This delimited comment extends over part of a line */ x = 117;
}
Layout(int x) {
this.x = x; // One-line body
}
5 Types
A type is a set of values and operations on them. A type is either a primitive type or a reference type.
Primitive Types
Integer Literals Integer literals (of type byte, char, short, int, or long) may be written in four bases:
No primitive type is a subtype of a reference type and no reference type is a subtype of a primitive type.
But there are automatic boxing and unboxing conversions between a primitive type and its wrapper class; see
section 5.4.
the scope is the entire for statement, including the header and the body.
Within the scope of a variable or parameter x, one cannot redeclare x. However, one may declare a variable
x within the scope of a field x, thus shadowing the field. Hence the scope of a field x is the entire class, except
where shadowed by a variable or parameter of the same name, and except for initializers preceding the field’s
declaration (section 9.1).
Variables, Parameters, Fields, and Scope 9
class Scope {
... //
void m1(int x) { // Declaration of parameter x (#1)
... // x #1 in scope
} //
... //
void m2(int v2) { //
... // x #5 in scope
} //
... //
void m3(int v3) { //
... // x #5 in scope
int x; // Declaration of variable x (#2)
... // x #2 in scope
} //
... //
void m4(int v4) { //
... // x #5 in scope
{ //
int x; // Declaration of variable x (#3)
... // x #3 in scope
} //
... // x #5 in scope
{ //
int x; // Declaration of variable x (#4)
... // x #4 in scope
} //
... // x #5 in scope
} //
... //
int x; // Declaration of field x (#5)
... // x #5 in scope
}
10 Strings
7 Strings
A string is an object of the predefined class String. It is immutable: once created it cannot be changed. A
string literal is a sequence of characters within double quotes: "New York", "A38", "", and so on. Internally,
a character is stored as a number using the Unicode [1] character encoding, whose character codes 0–127
coincide with the old ASCII encoding. String literals and character literals may use character escape sequences:
Escape Code Meaning
\b backspace
\t horizontal tab
\n newline
\f form feed (page break)
\r carriage return
\" the double quote character
\’ the single quote character
\\ the backslash character
\ddd the character whose character code is the three-digit octal number ddd
\udddd the character whose character code is the four-digit hexadecimal number dddd
A character escape sequence represents a single character. Since the letter A has code 65 (decimal), which is
written 101 in octal and 0041 in hexadecimal, the string literal "A\101\u0041" is the same as "AAA". If s1
and s2 are expressions of type String and v is an expression of any type, then
• s1.length() of type int is the length of s1, that is, the number of characters in s1.
• s1.equals(s2) of type boolean is true if s1 and s2 contain the same sequence of characters, and
false otherwise; equalsIgnoreCase is similar but does not distinguish lowercase and uppercase.
• s1.charAt(i) of type char is the character at position i in s1, counting from 0. If the index i is less
than 0, or greater than or equal to s1.length(), then StringIndexOutOfBoundsException is thrown.
• s1.toString() of type String is the same object as s1.
• String.valueOf(v) returns the string representation of v, which can have any primitive type (sec-
tion 5.1) or reference type. When v has reference type and is not null, then it is converted using
v.toString(); if it is null, then it is converted to the string "null". Any class C inherits from Object
a default toString method that produces strings of the form C@2a5734, where 2a5734 is some memory
address, but toString may be overridden to produce more useful strings.
• s1 + s2 has the same meaning as s1.concat(s2): it constructs the concatenation of s1 and s2, a new
String consisting of the characters of s1 followed by the characters of s2. Both s1 + v and v + s1 are
evaluated by converting v to a string with String.valueOf(v), thus using v.toString() when v has
reference type, and then concatenating the resulting strings.
• s1.compareTo(s2) returns a negative integer, zero, or a positive integer, according as s1 precedes,
equals, or follows s2 in the usual lexicographical ordering based on the Unicode [1] character encoding.
If s1 or s2 is null, then the exception NullPointerException is thrown. Method compareToIgnoreCase
is similar but does not distinguish lowercase and uppercase.
• s1.substring(int i, int j) returns a new String of the characters from s1 with indexes i..(j-1).
Throws IndexOutOfBoundsException if i<0 or i>j or j>s1.length.
• s1.subSequence(int i, int j) is like substring but returns a CharSequence (section 26.7).
• More String methods are described in the Java class library documentation [2].
Strings 11
• String.format(fmt, v1, ..., vn) returns a String produced from fmt by replacing formatting
specifiers with the strings resulting from formatting the values v1, . . . , vn.
• strm.format(fmt, v1, ..., vn), where strm is a PrintWriter or PrintStream (section 26.6), con-
structs a string as above, outputs it to strm, and returns strm.
• strm.printf(fmt, v1, ..., vn) behaves exactly as strm.format(fmt, v1, ..., vn).
These methods exist also in a version that take a Locale object as first argument; see examples 16 and 17.
Formatting specifiers are described in sections 7.1.1 and 7.1.2 below. If a value vi is of the wrong type for
a given formatting specifier, or if the formatting specifier is ill-formed, then a call to the above methods will
throw an exception of class IllegalFormatException or one of its subclasses.
The index is an integer 1, 2, . . . indicating the value vindex to format; the conversion indicates what operation is
used to format the value; the width indicates the minimum number of characters used to format the value; the
flags indicate how that width should be used (where “-” means left-justification, or padding on the right, and
“0” means padding with zero); and precision limits the output, such as the number of fractional digits. Each of
the four parts in brackets [ ] is optional; the only mandatory parts are the percent sign (%) and the conversion.
The documentation for Java API class java.util.Formatter gives the full details of number formatting. The
table below shows the legal conversions on numbers (I = integers, F = floating-point numbers, IF = both),
characters (C), and general types (G). An uppercase conversion such as X produces uppercase output.
Many of these clergymen had one black toga with hood en suite—
not for constant use in divine service, for, as we have already seen,
they are generally represented in the illuminations with coloured
“togas” under their surplices,—but perhaps, for wear on mourning
occasions. Thus, in the presentations of York Cathedral, a.d. 1519,
“We thynke it were convenient that whene we fetche a corse to the
churche, that we shulde be in our blak abbettes [habits] mornyngly,
wt our hodes of the same of our hedes, as is used in many other
places.”[305]
At the time of the Reformation, when the English clergy abandoned
the mediæval official robes, they also desisted from wearing the
tonsure, which had for many centuries been the distinguishing mark
of a cleric, and they seem generally to have adopted the academical
dress, for the model both of their official and their ordinary dress.
The Puritan clergy adopted a costume which differed little, if at all,
from that of the laity of the same school. But it is curious that this
question of clerical dress continued to be one of complaint on one
side, and resistance on the other, down to the end of our
ecclesiastical legislation. The 74th canon of 1603 is as rhetorical in
form, and as querulous in tone, and as minute in its description of
the way in which ecclesiastical persons should, and the way in which
they should not, dress, as is the Injunction of 1342, which we have
already quoted. “The true, ancient, and flourishing churches of
Christ, being ever desirous that their prelacy and clergy might be
had as well in outward reverence, as otherwise regarded for the
worthiness of their ministry, did think it fit, by a prescript form of
decent and comely apparel, to have them known to the people, and
thereby to receive the honour and estimation due to the special
messengers and ministers of Almighty God: we, therefore, following
their grave judgment and the ancient custom of the Church of
England, and hoping that in time new fangleness of apparel in some
factious persons will die of itself, do constitute and appoint, that the
archbishops and bishops shall not intermit to use the accustomed
apparel of their degree. Likewise, all deans, masters of colleges,
archdeacons, and prebendaries, in cathedrals and collegiate
churches (being priests or deacons), doctors in divinity, law, and
physic, bachelors in divinity, masters of arts, and bachelors of law,
having any ecclesiastical living, shall wear gowns with standing
collars, and sleeves straight at the hands, or wide sleeves, as is used
in the universities, with hoods or tippets of silk or sarcenet, and
square caps; and that all other ministers admitted, or to be
admitted, into that function, shall also usually wear the like apparel
as is aforesaid, except tippets only. We do further in like manner
ordain, that all the said ecclesiastical persons above mentioned shall
usually wear on their journeys cloaks with sleeves, commonly called
Priests’ Cloaks, without guards, welts, long buttons, or cuts. And no
ecclesiastical person shall wear any coif, or wrought night-cap, but
only plain night caps of black silk, satin, or velvet. In all which
particulars concerning the apparel here prescribed, our meaning is
not to attribute any holiness or special worthiness to the said
garments, but for decency, gravity, and order, as is before specified.
In private houses and in their studies the said persons ecclesiastical
may use any comely and scholarlike apparel, provided that it be not
cut or pinkt; and that in public they go not in their doublet and hose
without coats or cassocks; and that they wear not any light-coloured
stockings. Likewise, poor beneficed men and curates (not being able
to provide themselves long gowns) may go in short gowns of the
fashion aforesaid.”
The portraits prefixed to the folio works of the great divines of the
sixteenth and seventeenth centuries have made us familiar with the
fact, that at the time of the Reformation the clergy wore the beard
and moustache. They continued to wear the cassock and gown as
their ordinary out-door costume until as late as the time of George
II.; but in the fashion of doublet and hose, hats, shoes, and hair,
they followed the custom of other gentlemen. Mr. Fairholt, in his
“Costume in England,” p. 327, gives us a woodcut from a print of
1680 a.d., which admirably illustrates the ordinary out-door dress of
a clergyman of the time of William and Mary.
CHAPTER V.
PARSONAGE HOUSES.
But we must turn to our researches into the humbler life of the
country rectors and vicars. And first, what sort of houses did they
live in? We have not been able to find one of the parsonage houses
of an earlier date than the Reformation still remaining in a condition
sufficiently unaltered to enable us to understand what they originally
were. There is an ancient rectory house of the fourteenth century at
West Deane, Sussex,[306] of which we give a ground-plan and north-
east view on the following page; but the rectory belonged to the
prior and convent of Benedictine Monks of Wilmington, and this
house was probably their grange, or cell, and may have been
inhabited by two of their monks, or by their tenant, and not by the
parish priest. Again, there is a very picturesque rectory house, of the
fifteenth century, at Little Chesterton, near Cambridge,[307] but this
again is believed to have been a grange, or cell, of a monastic
house.
In the absence of actual examples, we are driven to glean what
information we can from other sources. There remain to us a good
many of the deeds of the thirteenth and fourteenth centuries, by
which, on the impropriation of the benefices, provision was made for
the permanent endowment of vicarages in them. In the majority of
cases the old rectory house was assigned as the future vicarage
house, and no detailed description of it was necessary; but in the
deed by which the rectories of Sawbridgeworth, in Herts, and
Kelvedon, in Essex, were appropriated to the convent of
Westminster, we are so fortunate as to find descriptions of the
fourteenth-century parsonage houses, one of which is so detailed as
to enable any one who is acquainted with the domestic architecture
of the time to form a very definite picture of the whole building. In
the case of Sawbridgeworth, the old rectory house was assigned as
the vicarage house, and is thus described—“All the messuage which
is called the priest’s messuage, with the houses thereon built, that is
to say, one hall with two chambers, with a buttery, cellar, kitchen,
stable, and other fitting and decent houses, with all the garden as it
is enclosed with walls to the said messuage belonging.” The
description of the parsonage house at Kelvedon is much more
definite and intelligible. For this the deed tells us the convent
assigned—“One hall situate in the manor of the said abbot and
convent near the said church, with a chamber and soler at one end
of the hall and with a buttery and cellar at the other. Also one other
house in three parts, that is to say, for a kitchen with a convenient
chamber in the end of the said house for guests, and a bakehouse.
Also one other house in two parts, next the gate at the entrance of
the manor, for a stable and cowhouse. He (the vicar) shall also have
a convenient grange, to be built within a year at the expense of the
prior and convent. He shall also have the curtilage with the garden
adjoining to the hall on the north side, as it is enclosed with hedges
and ditches.” The date of the deed is 1356 a.d., and it speaks of
these houses as already existing. Now the common arrangement of
a small house at that date, and for near a century before and after,
was this, “a hall in the centre, with a soler at one end and offices at
the other.”[308] A description which exactly agrees with the account
of the Kelvedon house, and enables us to say with great probability
that in the Sawbridgeworth “priest’s messuage” also, the two
chambers were at one end of the hall, and the buttery, cellar, and
kitchen at the other, the stable and other fitting and decent houses
being detached from and not forming any portion of the dwelling
house.
Rectory House, West Deane, Sussex.
The deed adds, “Also one other house in three parts.” In those days
the rooms of a house were not massed compactly together under
one roof, but were built in separate buildings more or less detached,
and each building was called a house; “One other house in three
parts, that is to say, a kitchen with a convenient chamber at one end
of the said house for guests, and a bakehouse.” “The kitchen,” says
Mr. Parker, in his “Domestic Architecture,” “was frequently a
detached building, often connected with the hall by a passage or
alley leading from the screens;” and it was often of greater relative
size and importance than modern usage would lead us to suppose;
the kitchens of old monasteries, mansion houses, and colleges often
have almost the size and architectural character of a second hall. In
the case before us it was a section of the “other house,” and
probably occupied its whole height, with an open timber roof (g). In
the disposition of the bakehouse and convenient chamber for guests
which were also in this other house, we meet with our first difficulty;
the “chamber” might possibly be over the bakehouse, which took the
usual form of an undercroft beneath the guest chamber; but the
definition that the house was divided “in three parts” suggests that it
was divided from top to bottom into three distinct sections. Inclining
to the latter opinion, we have so disposed these apartments in our
plan (f, e).
The elevation of the house may be conjectured with as much
probability as its plan. Standing in front of it we should have the side
of the hall towards us, with the arched door at its lower end, and
perhaps two windows in the side with carved wood tracery[309] in
their heads. To the right would be the gable end of the chamber
with soler over it; the soler would probably have a rather large
arched and traceried window in the end, the chamber a smaller and
perhaps square-headed light. On the left would be the building,
perhaps a lean-to, containing the buttery and cellar, with only a
small square-headed light in front. The accompanying wood-cut of a
fourteenth-century house, from the Add. MSS. 10,292, will help to
illustrate our conjectural elevation of Kelvedon Rectory. It has the
hall with its great door and arched traceried window, and at the one
end a chamber and soler over it. It only wants the offices at the
other end to make the resemblance complete.[310]
A Fourteenth Century House.
The organ, already introduced into divine service, became, under the
hands of St. Dunstan, a large and important instrument. William of
Malmesbury says that Dunstan gave many to churches which had
pipes of brass and were inflated with bellows. In a MS. psalter in
Trinity College, Cambridge, is a picture of one of considerable size,
which has no less than four bellows played by four men. It is
represented in the accompanying wood-cut.
The Northmen who invaded and gave their name to Normandy, took
their minstrels with them; and the learned assert that it was from
them that the troubadours of Provence learned their art, which
ripened in their sunny clime into la joyeuse science, and thence was
carried into Italy, France, and Spain. It is quite certain that
minstrelsy was in high repute among the Normans at the period of
the Conquest. Every one will remember how Taillefer, the minstrel-
knight, commenced the great battle of Hastings. Advancing in front
of the Norman host, he animated himself and them to a chivalric
daring by chanting the heroic tale of Charlemagne and his Paladins,
at the same time showing feats of skill in tossing his sword into the
air; and then rushed into the Saxon ranks, like a divinely-mad hero
of old, giving in his own self-sacrifice an augury of victory to his
people.
From the period of the Conquest, authorities on the subject of which
we are treating, though still not so numerous as could be desired,
become too numerous to be all included within the limits to which
our space restricts us. The reader may refer to Wharton’s “History of
English Poetry,” to Bishop Percy’s introductory essay to the “Reliques
of Early English Poetry,” and to the introductory essay to Ellis’s “Early
English Metrical Romances,” for the principal published authorities.
For a series of learned essays on mediæval musical instruments he
may consult M. Didron’s “Annales Archæologiques,” vol. iii. pp. 76,
142, 260; vol. iv. pp. 25, 94; vol. vi. p. 315; vol. vii. pp. 92, 157, 244,
325; vol. viii. p. 242; vol. ix. pp. 289, 329.[327] We propose only from
these and other published and unpublished materials to give a
popular sketch of the subject.
Throughout this period minstrelsy was in high estimation with all
classes of society. The king himself, like his Saxon[328] predecessors,
had a king’s minstrel, or king of the minstrels, who probably from
the first was at the head of a band of royal minstrels.[329]
This fashion of the royal court, doubtless, like all its other fashions,
obtained also in the courts of the great nobility (several instances
will be observed in the sequel), and in their measure in the
households of the lesser nobility. Every gentleman of estate had
probably his one, two, or more minstrels as a regular part of his
household. It is not difficult to discover their duties. In the
representations of dinners, which occur plentifully in the mediæval
MSS., we constantly find musicians introduced; sometimes we see
them preceding the servants, who are bearing the dishes to table—a
custom of classic usage, and which still lingers to this day at Queen’s
College, Oxford, in the song with which the choristers usher in the
boar’s head on Christmas-day, and at our modern public dinners,
when the band strikes up “Oh the Roast Beef of Old England,” as
that national dish is brought to table.
We give here an illustration of such a scene from a very fine MS. of
the early part of the fourteenth century, in the British Museum
(marked Royal 2 B vii., f. 184 v. and 185). A very fine representation
of a similar scene occurs at the foot of the large Flemish Brass of
Robert Braunche and his two wives in St. Margaret’s Church, Lynn;
the scene is intended as a delineation of a feast given by the
corporation of Lynn to King Edward III. Servants from both sides of
the picture are bringing in that famous dish of chivalry, the peacock
with his tail displayed; and two bands of minstrels are ushering in
the banquet with their strains: the date of the brass is about 1364
a.d. In the fourteenth-century romance of “Richard Cœur de Lion,”
we read of some knights who have arrived in presence of the
romance king whom they are in quest of; dinner is immediately
prepared for them; “trestles,” says Ellis in his abstract of it, “were
immediately set; a table covered with a silken cloth was laid; a rich
repast, ushered in by the sound of trumpets and shalms, was served
up.”[330]
A Royal Dinner.
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
ebookname.com