SlideShare ist ein Scribd-Unternehmen logo
Java in a Nutshell A Desktop Quick Reference 7th
Edition Benjamin J. Evans download
https://textbookfull.com/product/java-in-a-nutshell-a-desktop-
quick-reference-7th-edition-benjamin-j-evans/
Download full version ebook from https://textbookfull.com
We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!
Python in a Nutshell A Desktop Quick Reference 3rd
Edition Alex Martelli
https://textbookfull.com/product/python-in-a-nutshell-a-desktop-
quick-reference-3rd-edition-alex-martelli/
C 7 0 in a Nutshell The Definitive Reference 7th
Edition Joseph Albahari
https://textbookfull.com/product/c-7-0-in-a-nutshell-the-
definitive-reference-7th-edition-joseph-albahari/
Java quick syntax reference Second Edition Olsson
https://textbookfull.com/product/java-quick-syntax-reference-
second-edition-olsson/
A Dictionary of Computer Science (Oxford Quick
Reference) 7th Edition Andrew Butterfield
https://textbookfull.com/product/a-dictionary-of-computer-
science-oxford-quick-reference-7th-edition-andrew-butterfield/
Java EE 6 Pocket Guide A Quick Reference for Simplified
Enterprise Java Development 1st Edition Gupta Arun
https://textbookfull.com/product/java-ee-6-pocket-guide-a-quick-
reference-for-simplified-enterprise-java-development-1st-edition-
gupta-arun/
C# 9.0 in a Nutshell: The Definitive Reference 1st
Edition Joseph Albahari
https://textbookfull.com/product/c-9-0-in-a-nutshell-the-
definitive-reference-1st-edition-joseph-albahari/
Android Software Internals Quick Reference: A Field
Manual and Security Reference Guide to Java-based
Android Components 1st Edition James Stevenson
https://textbookfull.com/product/android-software-internals-
quick-reference-a-field-manual-and-security-reference-guide-to-
java-based-android-components-1st-edition-james-stevenson/
Eric Hobsbawm: A Life in History Richard J. Evans
https://textbookfull.com/product/eric-hobsbawm-a-life-in-history-
richard-j-evans/
Managing infectious diseases in child care and schools
a quick reference guide Aronson
https://textbookfull.com/product/managing-infectious-diseases-in-
child-care-and-schools-a-quick-reference-guide-aronson/
Java in a Nutshell A Desktop Quick Reference 7th Edition Benjamin J. Evans
Java in a Nutshell, Seventh Edition
by Ben Evans and David Flanagan
Copyright © 2019 Benjamin J. Evans and David Flanagan. All rights reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales promotional use. Online
editions are also available for most titles (http://oreilly.com/safari). For more information,
contact our corporate/institutional sales department: 800­998­9938 or corporate@oreilly.com.
Editor: Virginia Wilson
Production Editor: Justin Billing
Copyeditor: Jasmine Kwityn
Proofreader: Rachel Monaghan
Indexer: WordCo Indexing Services, Inc.
Interior Designer: David Futato
Cover Designer: Karen Montgomery
Illustrator: Rebecca Demarest
December 2018: Seventh Edition
Revision History for the Seventh Edition
2018­11­30: First Release
See http://oreilly.com/catalog/errata.csp?isbn=9781492037255 for release details.
The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Java in a Nutshell, the
cover image, and related trade dress are trademarks of O’Reilly Media, Inc.
The views expressed in this work are those of the authors, and do not represent the publisher’s
Playlists
History
Topics
Tutorials
Offers & Deals
Highlights
Settings
Support
Sign Out
views. While the publisher and the authors have used good faith efforts to ensure that the
information and instructions contained in this work are accurate, the publisher and the authors
disclaim all responsibility for errors or omissions, including without limitation responsibility for
damages resulting from the use of or reliance on this work. Use of the information and
instructions contained in this work is at your own risk. If any code samples or other technology
this work contains or describes is subject to open source licenses or the intellectual property
rights of others, it is your responsibility to ensure that your use thereof complies with such
licenses and/or rights.
978­1­492­03725­5
[LSI]
Part I. Introducing Java
Part I is an introduction to the Java language and the Java platform. These chapters provide
enough information for you to get started using Java right away:
Chapter 1, Introduction to the Java Environment
Chapter 2, Java Syntax from the Ground Up
Chapter 3, Object­Oriented Programming in Java
Chapter 4, The Java Type System
Chapter 5, Introduction to Object­Oriented Design in Java
Chapter 6, Java’s Approach to Memory and Concurrency
History
Topics
Tutorials
Offers & Deals
Highlights
Settings
Support
Sign Out
Chapter 1. Introduction to the Java
Environment
Welcome to Java 11.
That version number probably surprises you as much as it does us. It seems like only yesterday
that Java 5 was the new thing, and yet here we are, 14 years and 6 major versions later.
You may be coming to the Java ecosystem from another language, or maybe this is your first
programming language. Whatever road you may have traveled to get here, welcome—we’re
glad you’ve arrived.
Java is a powerful, general­purpose programming environment. It is one of the most widely
used programming languages in the world, and has been exceptionally successful in business
and enterprise computing.
In this chapter, we’ll set the scene by describing the Java language (which programmers write
their applications in), the Java Virtual Machine (which executes those applications), and the
Java ecosystem (which provides a lot of the value of the programming environment to
development teams).
We’ll briefly cover the history of the Java language and virtual machine, before moving on to
discuss the lifecycle of a Java program and clear up some common questions about the
differences between Java and other environments.
At the end of the chapter, we’ll introduce Java security, and discuss some of the aspects of Java
that relate to secure coding.
The Language, the JVM, and the Ecosystem
The Java programming environment has been around since the late 1990s. It comprises the Java
language, and the supporting runtime, otherwise known as the Java Virtual Machine (JVM).
At the time that Java was initially developed, this split was considered novel, but recent trends
History
Topics
Tutorials
Offers & Deals
Highlights
Settings
Support
Sign Out
.
in software development have made it more commonplace. Notably, Microsoft’s .NET
environment, announced a few years after Java, adopted a very similar approach to platform
architecture.
One important difference between Microsoft’s .NET platform and Java is that Java was always
conceived as a relatively open ecosystem of multiple vendors, albeit led by a steward who owns
the technology. Throughout Java’s history, these vendors have both cooperated and competed
on aspects of Java technology.
One of the main reasons for the success of Java is that this ecosystem is a standardized
environment. This means there are specifications for the technologies that comprise the
environment. These standards give the developer and consumer confidence that the technology
will be compatible with other components, even if they come from a different technology
vendor.
The current steward of Java is Oracle Corporation (who acquired Sun Microsystems, the
originator of Java). Other corporations, such as Red Hat, IBM, Amazon, AliBaba, SAP, Azul
Systems, and Fujitsu are also heavily involved in producing implementations of standardized
Java technologies.
TIP
As of Java 11, the primary reference implementation of Java is the open source
OpenJDK, which many of these companies collaborate on and base their shipping
products upon.
Java actually comprises several different but related environments and specifications, such as
Java Mobile Edition (Java ME), Java Standard Edition (Java SE), and Java Enterprise Edition
(Java EE). In this book, we’ll only cover Java SE, version 11, with some historical notes
related to when certain features were introduced into the platform.
We will have more to say about standardization later, so let’s move on to discuss the Java
language and JVM as separate but related concepts.
What Is the Java Language?
Java programs are written as source code in the Java language. This is a human­readable
programming language, which is strictly class based and object oriented. The language syntax is
deliberately modeled on that of C and C++ and it was explicitly intended to be familiar to
1
2
programmers coming from those languages.
NOTE
Although the source code is similar to C++, in practice Java includes features and a
managed runtime that has more in common with more dynamic languages such as
Smalltalk.
Java is considered to be relatively easy to read and write (if occasionally a bit verbose). It has a
rigid grammar and simple program structure, and is intended to be easy to learn and to teach. It
builds on industry experience with languages like C++ and tries to remove complex features as
well as preserving “what works” from previous programming languages.
Overall, Java is intended to provide a stable, solid base for companies to develop business­
critical applications. As a programming language, it has a relatively conservative design and a
slow rate of change. These properties are a conscious attempt to serve the goal of protecting the
investment that organizations have made in Java technology.
The language has undergone gradual revision (but no complete rewrites) since its inception in
1996. This does mean that some of Java’s original design choices, which were expedient in the
late 1990s, are still affecting the language today—see Chapters 2 and 3 for more details.
Java 8 added the most radical changes seen in the language for almost a decade (some would
say since the birth of Java). Features like lambda expressions and the overhaul of the core
Collections code were enormously popular and changed forever the way that Java developers
write code. Since then, the platform has produced a release (Java 9) that adds a major (and long­
delayed) feature: the platform modules system (JPMS).
With that release, the project has transitioned to a new, much faster release model where new
Java versions are released every six months—bringing us up to Java 11. The Java language is
governed by the Java Language Specification (JLS), which defines how a conforming
implementation must behave.
What Is the JVM?
The JVM is a program that provides the runtime environment necessary for Java programs to
execute. Java programs cannot run unless there is a JVM available for the appropriate hardware
and OS platform we wish to execute on.
Fortunately, the JVM has been ported to run on a large number of environments—anything from
a set­top box or Blu­ray player to a huge mainframe will probably have a JVM available for it.
Java programs are typically started from a command line like this:
java <arguments> <program name>
This brings up the JVM as an operating system process that provides the Java runtime
environment, and then executes our program in the context of the freshly started (and empty)
virtual machine.
It is important to understand that when the JVM takes in a Java program for execution, the
program is not provided as Java language source code. Instead, the Java language source must
have been converted (or compiled) into a form known as Java bytecode. Java bytecode must be
supplied to the JVM in a format called class files (which always have a .class extension).
The JVM provides an execution environment for the program. It starts an interpreter for the
bytecode form of the program that steps through one bytecode instruction at a time. However,
production JVMs also provide a runtime compiler that will accelerate the important parts of the
program by replacing them with equivalent compiled machine code.
You should also be aware that both the JVM and the user program are capable of spawning
additional threads of execution, so that a user program may have many different functions
running simultaneously.
The design of the JVM built on many years of experience with earlier programming
environments, notably C and C++, so we can think of it as having several different goals—
which are all intended to make life easier for the programmer:
Comprise a container for application code to run inside
Provide a secure and reliable execution environment as compared to C/C++
Take memory management out of the hands of developers
Provide a cross­platform execution environment
These objectives are often mentioned together in discussions of the platform.
We’ve already mentioned the first of these goals, when we discussed the JVM and its bytecode
interpreter—it functions as the container for application code.
We’ll discuss the second and third goals in Chapter 6, when we talk about how the Java
environment deals with memory management.
The fourth goal, sometimes called “write once, run anywhere” (WORA), is the property that
Java class files can be moved from one execution platform to another, and they will run
unaltered provided a JVM is available.
This means that a Java program can be developed (and converted to class files) on a machine
running macOS, and then the class files can be moved to Linux or Microsoft Windows (or other
platforms) and the Java program will run without any further work needed.
NOTE
The Java environment has been very widely ported, including to platforms that are
very different from mainstream platforms like Linux, macOS, and Windows. In this
book, we use the phrase “most implementations” to indicate those platforms that the
majority of developers are likely to encounter; macOS, Windows, Linux, BSD
Unix, and the like are all considered “mainstream platforms” and count within
“most implementations.”
In addition to these four primary goals, there is another aspect of the JVM’s design that is not
always recognized or discussed—it makes use of runtime information to self­manage.
Software research in the 1970s and 1980s revealed that the runtime behavior of programs has a
large amount of interesting and useful patterns that cannot be deduced at compile time. The
JVM was the first truly mainstream platform to make use of this research.
It collects runtime information to make better decisions about how to execute code. That means
that the JVM can monitor and optimize a program running on it in a manner not possible for
platforms without this capability.
A key example is the runtime fact that not all parts of a Java program are equally likely to be
called during the lifetime of the program—some portions will be called far, far more often than
others. The Java platform takes advantage of this fact with a technology called just­in­time (JIT)
compilation.
In the HotSpot JVM (which was the JVM that Sun first shipped as part of Java 1.3, and is still in
use today), the JVM first identifies which parts of the program are called most often—the “hot
methods.” Then, the JVM compiles these hot methods directly into machine code, bypassing the
JVM interpreter.
The JVM uses the available runtime information to deliver higher performance than was
possible from purely interpreted execution. In fact, the optimizations that the JVM uses now in
many cases produce performance that surpasses compiled C and C++ code.
The standard that describes how a properly functioning JVM must behave is called the JVM
Specification.
What Is the Java Ecosystem?
The Java language is easy to learn and contains relatively few abstractions, compared to other
programming languages. The JVM provides a solid, portable, high­performance base for Java
(or other languages) to execute on. Taken together, these two connected technologies provide a
foundation that businesses can feel confident about when choosing where to base their
development efforts.
The benefits of Java do not end there, however. Since Java’s inception, an extremely large
ecosystem of third­party libraries and components has grown up. This means that a development
team can benefit hugely from the existence of connectors and drivers for practically every
technology imaginable—both proprietary and open source.
In the modern technology ecosystem it is now rare indeed to find a technology component that
does not offer a Java connector. From traditional relational databases, to NoSQL, to every type
of enterprise monitoring system, to messaging systems, to Internet of Things (IoT)—everything
integrates with Java.
It is this fact that has been a major driver of adoption of Java technologies by enterprises and
larger companies. Development teams have been able to unlock their potential by making use of
preexisting libraries and components. This has promoted developer choice and encouraged
open, best­of­breed architectures with Java technology cores.
NOTE
Google’s Android environment is sometimes thought of as being “based on Java.”
However, the picture is actually more complicated. Android code is written in Java
but originally used a different implementation of Java’s class libraries along with a
cross compiler to convert to a different file format for a non­Java virtual machine.
The combination of a rich ecosystem and a first­rate virtual machine with an open standard for
program binaries makes the Java platform a very attractive execution target. In fact, there are a
large number of non­Java languages that target the JVM and also interoperate with Java (which
allows them to piggy­back off the platform’s success). These languages include Kotlin, Scala,
Groovy, and many others. While all of them are small compared to Java, they have distinct
niches within the Java world, and provide a source of innovation and healthy competition to
Java.
A Brief History of Java and the JVM
Java 1.0 (1996)
This was the first public version of Java. It contained just 212 classes organized in eight
packages. The Java platform has always had an emphasis on backward compatibility, and
code written with Java 1.0 will still run today on Java 11 without modification or
recompilation.
Java 1.1 (1997)
This release of Java more than doubled the size of the Java platform. This release introduced
“inner classes” and the first version of the Reflection API.
Java 1.2 (1998)
This was a very significant release of Java; it tripled the size of the Java platform. This
release marked the first appearance of the Java Collections API (with sets, maps, and lists).
The many new features in the 1.2 release led Sun to rebrand the platform as “the Java 2
Platform.” The term “Java 2” was simply a trademark, however, and not an actual version
number for the release.
Java 1.3 (2000)
This was primarily a maintenance release, focused on bug fixes, stability, and performance
improvements. This release also brought in the HotSpot Java Virtual Machine, which is still
in use today (although heavily modified and improved since then).
Java 1.4 (2002)
This was another fairly big release, adding important new functionality such as a higher­
performance, low­level I/O API; regular expressions for text handling; XML and XSLT
libraries; SSL support; a logging API; and cryptography support.
Java 5 (2004)
This large release of Java introduced a number of changes to the core language itself
including generic types, enumerated types (enums), annotations, varargs methods,
autoboxing, and a new for loop. These changes were considered significant enough to
change the major version number, and to start numbering as major releases. This release
included 3,562 classes and interfaces in 166 packages. Notable additions included utilities
for concurrent programming, a remote management framework, and classes for the remote
management and instrumentation of the Java VM itself.
Java 6 (2006)
This release was also largely a maintenance and performance release. It introduced the
Compiler API, expanded the usage and scope of annotations, and provided bindings to allow
scripting languages to interoperate with Java. There were also a large number of internal bug
fixes and improvements to the JVM and the Swing GUI technology.
Java 7 (2011)
The first release of Java under Oracle’s stewardship included a number of major upgrades to
the language and platform. The introduction of try­with­resources and the NIO.2 API
enabled developers to write much safer and less error­prone code for handling resources and
I/O. The Method Handles API provided a simpler and safer alternative to reflection; in
addition, it opened the door for invokedynamic (the first new bytecode since version 1.0
of Java).
Java 8 (2014) (LTS)
This was a huge release—potentially the most significant changes to the language since Java
5 (or possibly ever). The introduction of lambda expressions provided the ability to
significantly enhance the productivity of developers, the Collections were updated to make
use of lambdas, and the machinery required to achieve this marked a fundamental change in
Java’s approach to object orientation. Other major updates include a new date and time API,
and major updates to the concurrency libraries.
Java 9 (2017)
Significantly delayed, this release introduced the new platform modularity feature, which
allows Java applications to be packaged into deployment units and modularize the platform
runtime. Other changes include a new default garbage collection algorithm, a new API for
handling processes, and some changes to the way that frameworks can access the internals.
Java 10 (March 2018)
This marks the first release under the new release cycle. This release contained a relatively
small amount of new features (due to its six­month development lifetime). New syntax for
type inference was introduced, along with some internal changes (including GC tweaks and
an experimental new compiler).
Java 11 (September 2018) (LTS)
The current version, also developed over a short six­month window, this release is the first
modular Java to be considered as a long­term support (LTS) release. It adds relatively few
new features that are directly visible to the developer—primarily Flight Recorder and the
new HTTP/2 API. There are some additional internal changes, but this release is primarily
for stabilization.
As it stands, the only current production versions are Java 8 and 11—the LTS releases. Due to
the highly significant changes that are introduced by modules, Java 8 has been grandfathered in
as an LTS release to provide extra time for teams and applications to migrate to a supported
modular Java.
The Lifecycle of a Java Program
To better understand how Java code is compiled and executed, and the difference between Java
and other types of programming environments, consider the pipeline in Figure 1­1.
Figure 1-1. How Java code is compiled and loaded
This starts wth Java source, and passes it through the javac program to produce class files—
which contain the source code compiled to Java bytecode. The class file is the smallest unit of
functionality the platform will deal with, and the only way to get new code into a running
program.
New class files are onboarded via the classloading mechanism (see Chapter 10 for a lot more
detail on how classloading works). This makes the new type available to the interpreter for
execution.
Frequently Asked Questions
In this section, we’ll discuss some of the most frequently asked questions about Java and the
lifecycle of programs written in the Java environment.
WHAT IS BYTECODE?
When developers are first introduced to the JVM, they sometimes think of it as “a computer
inside a computer.” It’s then easy to imagine bytecode as “machine code for the CPU of the
internal computer” or “machine code for a made­up processor.”
In fact, bytecode is not actually very similar to machine code that would run on a real hardware
processor. Instead, computer scientists would call bytecode a type of intermediate
representation—a halfway house between source code and machine code.
The whole aim of bytecode is to be a format that can be executed efficiently by the JVM’s
interpreter.
IS JAVAC A COMPILER?
Compilers usually produce machine code, but javac produces bytecode, which is not that
similar to machine code. However, class files are a bit like object files (like Windows .dll files,
or Unix .so files)—and they are certainly not human readable.
In theoretical computer science terms, javac is most similar to the front half of a compiler—it
creates the intermediate representation that can then be used later to produce (emit) machine
code.
However, because creation of class files is a separate build­time step that resembles compilation
in C/C++, many developers consider running javac to be compilation. In this book, we will
use the terms “source code compiler” or "javac compiler” to mean the production of class
files by javac.
We will reserve “compilation” as a standalone term to mean JIT compilation—as it’s JIT
compilation that actually produces machine code.
WHY IS IT CALLED “BYTECODE”?
The instruction code (opcode) is just a single byte (some operations also have parameters that
follow them in the bytestream), so there are only 256 possible instructions. In practice, some are
unused—about 200 are in use, but some of them aren’t emitted by recent versions of javac.
IS BYTECODE OPTIMIZED?
In the early days of the platform, javac produced heavily optimized bytecode. This turned out
to be a mistake. With the advent of JIT compilation, the important methods are going to be
compiled to very fast machine code. It’s therefore very important to make the job of the JIT
compiler easier—as there are much bigger gains available from JIT compilation than there are
from optimizing bytecode, which will still have to be interpreted.
IS BYTECODE REALLY MACHINE INDEPENDENT? WHAT ABOUT THINGS LIKE
ENDIANNESS?
The format of bytecode is always the same, regardless of what type of machine it was created
on. This includes the byte ordering (sometimes called “endianness”) of the machine. For readers
who are interested in the details, bytecode is always big­endian.
IS JAVA AN INTERPRETED LANGUAGE?
The JVM is basically an interpreter (with JIT compilation to give it a big performance boost).
However, most interpreted languages (such as PHP, Perl, Ruby, and Python) directly interpret
programs from source form (usually by constructing an abstract syntax tree from the input
source file). The JVM interpreter, on the other hand, requires class files—which, of course,
require a separate source code compilation step with javac.
CAN OTHER LANGUAGES RUN ON THE JVM?
Yes. The JVM can run any valid class file, so this means that non­Java languages can run on the
JVM in one of two ways. First, they could have a source code compiler (similar to javac) that
produces class files, which would run on the JVM just like Java code (this is the approach taken
by languages like Scala).
Alternatively, a non­Java language could implement an interpreter and runtime in Java, and then
interpret the source form of their language directly. This second option is the approach taken by
languages like JRuby (but JRuby has a very sophisticated runtime that is capable of secondary
JIT compilation in some circumstances).
Java Security
Java has been designed from the ground up with security in mind; this gives it a great advantage
over many other existing systems and platforms. The Java security architecture was designed by
security experts and has been studied and probed by many other security experts since the
inception of the platform. The consensus is that the architecture itself is strong and robust,
without any security holes in the design (at least none that have been discovered yet).
Fundamental to the design of the security model is that bytecode is heavily restricted in what it
can express—there is no way, for example, to directly address memory. This cuts out entire
classes of security problems that have plagued languages like C and C++. Furthermore, the VM
goes through a process known as bytecode verification whenever it loads an untrusted class,
which removes a further large class of problems (see Chapter 10 for more about bytecode
verification).
Despite all this, however, no system can guarantee 100% security, and Java is no exception.
While the design is still theoretically robust, the implementation of the security architecture is
another matter, and there is a long history of security flaws being found and patched in
particular implementations of Java.
In particular, the release of Java 8 was delayed, at least partly, due to the discovery of a number
of security problems that required considerable effort to fix.
In all likelihood, security flaws will continue to be discovered (and patched) in Java VM
implementations. For practical server­side coding, Java remains perhaps the most secure
general­purpose platform currently available, especially when kept patched up to date.
Comparing Java to Other Languages
In this section, we’ll briefly highlight some differences between the Java platform and other
programming environments you may be familiar with.
Java Compared to C
Java is object oriented; C is procedural.
Java is portable as class files; C needs to be recompiled.
Java provides extensive instrumentation as part of the runtime.
Java has no pointers and no equivalent of pointer arithmetic.
Java provides automatic memory management via garbage collection.
Java has no ability to lay out memory at a low level (no structs).
Java has no preprocessor.
Java Compared to C++
Java Compared to C++
Java has a simplified object model compared to C++.
Java’s dispatch is virtual by default.
Java is always pass­by­value (but one of the possibilities for Java’s values is object
references).
Java does not support full multiple inheritance.
Java’s generics are less powerful (but also less dangerous) than C++ templates.
Java has no operator overloading.
Java Compared to Python
Java is statically typed; Python is dynamically typed.
Java is multithreaded; Python only allows one thread to execute Python at once.
Java has a JIT; the main implementation of Python does not.
Java’s bytecode has extensive static checks; Python’s bytecode does not.
Java Compared to JavaScript
Java is statically typed; JavaScript is dynamically typed.
Java uses class­based objects; JavaScript is prototype based.
Java provides good object encapsulation; JavaScript does not.
Java has namespaces; JavaScript does not.
Java is multithreaded; JavaScript is not.
Answering Some Criticisms of Java
Java has had a long history in the public eye and, as a result, has attracted its fair share of
criticism over the years. Some of this negative press can be attributed to some technical
shortcomings combined with rather overzealous marketing in the first versions of Java.
Some criticisms have, however, entered technical folklore despite no longer being very accurate.
In this section, we’ll look at some common grumbles and the extent to which they’re true for
modern versions of the platform.
Overly Verbose
The Java core language has sometimes been criticized as overly verbose. Even simple Java
statements such as Object o = new Object(); seem to be repetitious—the type
Object appears on both the left and right side of the assignment. Critics point out that this is
essentially redundant, that other languages do not need this duplication of type information, and
that many languages support features (e.g., type inference) that remove it.
The counterpoint to this argument is that Java was designed from the start to be easy to read
(code is read more often than written) and that many programmers, especially novices, find the
extra type information helpful when reading code.
Java is widely used in enterprise environments, which often have separate dev and ops teams.
The extra verbosity can often be a blessing when you are responding to an outage call, or when
you need to maintain and patch code that was written by developers who have long since moved
on.
In recent versions of Java, the language designers have attempted to respond to some of these
points, by finding places where the syntax can become less verbose and by making better use of
type information. For example:
// Files helper methods
byte[] contents =
Files.readAllBytes(Paths.get("/home/ben/myFile.bin"));
// Diamond syntax for repeated type information
List<String> l = new ArrayList<>();
// Local variables can be type inferred
var threadPool = Executors.newScheduledThreadPool(2);
// Lambda expressions simplify Runnables
threadPool.submit(() ­> { System.out.println("On Threadpool"); });
However, Java’s overall philosophy is to make changes to the language only very slowly and
carefully, so the pace of these changes may not satisfy detractors completely.
Slow to Change
The original Java language is now well over 20 years old, and has not undergone a complete
revision in that time. Many other languages (e.g., Microsoft’s C#) have released backward­
incompatible versions in the same period, and some developers criticize Java for not doing
likewise.
Furthermore, in recent years, the Java language has come under fire for being slow to adopt
language features that are now commonplace in other languages.
The conservative approach to language design that Sun (and now Oracle) has taken an attempt
to avoid imposing the costs and externalities of misfeatures on a very large user base. Many
Java shops have made major investments in the technology, and the language designers have
taken seriously the responsibility of not disrupting the existing user and install base.
Each new language feature needs to be very carefully thought about—not only in isolation, but
in terms of how it will interact with all the existing features of the language. New features can
sometimes have impacts beyond their immediate scope—and Java is widely used in very large
codebases, where there are more potential places for an unexpected interaction to manifest.
It is almost impossible to remove a feature that turns out to be incorrect after it has shipped. Java
has a couple of misfeatures (such as the finalization mechanism) that it has never been possible
to remove safely without impacting the install base. The language designers have taken the view
that extreme caution is required when evolving the language.
Having said that, the new language features that have arrived in recent versions are a significant
step toward addressing the most common complaints about missing features, and should cover
many of the idioms that developers have been asking for.
Performance Problems
The Java platform is still sometimes criticized as being slow—but of all the criticisms that are
leveled at the platform, this is probably the one that is least justified. It is a genuine myth about
the platform.
Release 1.3 of Java brought in the HotSpot Virtual Machine and its JIT compiler. Since then,
there has been over 15 years of continual innovation and improvement in the virtual machine
and its performance. The Java platform is now blazingly fast, regularly winning performance
benchmarks on popular frameworks, and even beating native­compiled C and C++.
Criticism in this area appears to be largely caused by a folk memory that Java was slow at some
point in the past. Some of the larger and more sprawling architectures that Java has been used
within may also have contributed to this impression.
The truth is that any large architecture will require benchmarking, analysis, and performance
tuning to get the best out of it—and Java is no exception.
The core of the platform—language and JVM—was and remains one of the fastest general­use
environments available to the developer.
Insecure
During 2013 there were a number of security vulnerabilities in the Java platform, which caused
the release date of Java 8 to be pushed back. Even before this, some people had criticized Java’s
record of security vulnerabilities.
Many of these vulnerabilities involved the desktop and GUI components of the Java system, and
wouldn’t affect websites or other server­side code written in Java.
All programming platforms have security issues at times, and many other languages have a
comparable history of security vulnerabilities that have been significantly less well publicized.
Too Corporate
Java is a platform that is extensively used by corporate and enterprise developers. The
perception that it is too corporate is therefore an unsurprising one—Java has often been
perceived as lacking the “free­wheeling” style of languages that are deemed to be more
community oriented.
In truth, Java has always been, and remains, a very widely used language for community and
free or open source software development. It is one of the most popular languages for projects
hosted on GitHub and other project hosting sites.
Finally, the most widely used implementation of the language itself is based on OpenJDK—
which is itself an open source project with a vibrant and growing community.
Java ME is an older standard for smartphones and feature phones. Android and iOS are
much more common on phones today, but Java ME is still a large market for embedded
devices.
Java EE has now been transferred to the Eclipse Foundation, where it continues its life as the
Jakarta EE project.
1
2
Chapter 2. Java Syntax from the Ground Up
This chapter is a terse but comprehensive introduction to Java syntax. It is written primarily for
readers who are new to the language but have some previous programming experience.
Determined novices with no prior programming experience may also find it useful. If you
already know Java, you should find it a useful language reference. The chapter includes some
comparisons of Java to C and C++ for the benefit of programmers coming from those
languages.
This chapter documents the syntax of Java programs by starting at the very lowest level of Java
syntax and building from there, moving on to increasingly higher orders of structure. It covers:
The characters used to write Java programs and the encoding of those characters.
Literal values, identifiers, and other tokens that comprise a Java program.
The data types that Java can manipulate.
The operators used in Java to group individual tokens into larger expressions.
Statements, which group expressions and other statements to form logical chunks of Java
code.
Methods, which are named collections of Java statements that can be invoked by other Java
code.
Classes, which are collections of methods and fields. Classes are the central program element
in Java and form the basis for object­oriented programming. Chapter 3 is devoted entirely to
a discussion of classes and objects.
Packages, which are collections of related classes.
Java programs, which consist of one or more interacting classes that may be drawn from one
or more packages.
History
Topics
Tutorials
Offers & Deals
Highlights
Settings
Support
Sign Out
The syntax of most programming languages is complex, and Java is no exception. In general, it
is not possible to document all elements of a language without referring to other elements that
have not yet been discussed. For example, it is not really possible to explain in a meaningful
way the operators and statements supported by Java without referring to objects. But it is also
not possible to document objects thoroughly without referring to the operators and statements of
the language. The process of learning Java, or any language, is therefore an iterative one.
Java Programs from the Top Down
Before we begin our bottom­up exploration of Java syntax, let’s take a moment for a top­down
overview of a Java program. Java programs consist of one or more files, or compilation units, of
Java source code. Near the end of the chapter, we describe the structure of a Java file and
explain how to compile and run a Java program. Each compilation unit begins with an optional
package declaration followed by zero or more import declarations. These declarations
specify the namespace within which the compilation unit will define names, and the namespaces
from which the compilation unit imports names. We’ll see package and import again later
in this chapter in “Packages and the Java Namespace”.
The optional package and import declarations are followed by zero or more reference type
definitions. We will meet the full variety of possible reference types in Chapters 3 and 4 , but
for now, we should note that these are most often either class or interface definitions.
Within the definition of a reference type, we will encounter members such as fields, methods,
and constructors. Methods are the most important kind of member. Methods are blocks of Java
code composed of statements.
With these basic terms defined, let’s start by approaching a Java program from the bottom up by
examining the basic units of syntax—often referred to as lexical tokens.
Lexical Structure
This section explains the lexical structure of a Java program. It starts with a discussion of the
Unicode character set in which Java programs are written. It then covers the tokens that
comprise a Java program, explaining comments, identifiers, reserved words, literals, and so on.
The Unicode Character Set
Java programs are written using Unicode. You can use Unicode characters anywhere in a Java
program, including comments and identifiers such as variable names. Unlike the 7­bit ASCII
character set, which is useful only for English, and the 8­bit ISO Latin­1 character set, which is
useful only for major Western European languages, the Unicode character set can represent
virtually every written language in common use on the planet.
TIP
If you do not use a Unicode­enabled text editor, or if you do not want to force other
programmers who view or edit your code to use a Unicode­enabled editor, you can
embed Unicode characters into your Java programs using the special Unicode
escape sequence uxxxx—that is, a backslash and a lowercase u, followed by four
hexadecimal characters. For example, u0020 is the space character, and u03c0
is the character π.
Java has invested a large amount of time and engineering effort in ensuring that its Unicode
support is first class. If your business application needs to deal with global users, especially in
non­Western markets, then the Java platform is a great choice. Java also has support for multiple
encodings and character sets, in case applications need to interact with non­Java applications
that do not speak Unicode.
Case Sensitivity and Whitespace
Java is a case­sensitive language. Its keywords are written in lowercase and must always be
used that way. That is, While and WHILE are not the same as the while keyword. Similarly,
if you declare a variable named i in your program, you may not refer to it as I.
TIP
In general, relying on case sensitivity to distinguish identifiers is a terrible idea. Do
not use it in your own code, and in particular never give an identifier the same name
as a keyword but differently cased.
Java ignores spaces, tabs, newlines, and other whitespace, except when it appears within quoted
characters and string literals. Programmers typically use whitespace to format and indent their
code for easy readability, and you will see common indentation conventions in this book’s code
examples.
Comments
Comments are natural­language text intended for human readers of a program. They are ignored
by the Java compiler. Java supports three types of comments. The first type is a single­line
comment, which begins with the characters // and continues until the end of the current line.
For example:
int i = 0; // Initialize the loop variable
The second kind of comment is a multiline comment. It begins with the characters /* and
continues, over any number of lines, until the characters */. Any text between the /* and the
*/ is ignored by javac. Although this style of comment is typically used for multiline
comments, it can also be used for single­line comments. This type of comment cannot be nested
(i.e., one /* */ comment cannot appear within another). When writing multiline comments,
programmers often use extra * characters to make the comments stand out. Here is a typical
multiline comment:
/*
* First, establish a connection to the server.
* If the connection attempt fails, quit right away.
*/
The third type of comment is a special case of the second. If a comment begins with /**, it is
regarded as a special doc comment. Like regular multiline comments, doc comments end with
*/ and cannot be nested. When you write a Java class you expect other programmers to use,
provide doc comments to embed documentation about the class and each of its methods directly
into the source code. A program named javadoc extracts these comments and processes them
to create online documentation for your class. A doc comment can contain HTML tags and can
use additional syntax understood by javadoc. For example:
/**
* Upload a file to a web server.
*
* @param file The file to upload.
* @return <tt>true</tt> on success,
* <tt>false</tt> on failure.
* @author David Flanagan
*/
See Chapter 7 for more information on the doc comment syntax and Chapter 13 for more
information on the javadoc program.
Comments may appear between any tokens of a Java program, but may not appear within a
token. In particular, comments may not appear within double­quoted string literals. A comment
within a string literal simply becomes a literal part of that string.
Reserved Words
The following words are reserved in Java (they are part of the syntax of the language and may
not be used to name variables, classes, and so forth):
abstract const final int public throw
assert continue finally interface return throws
boolean default float long short transient
break do for native static true
byte double goto new strictfp try
case else if null super void
catch enum implements package switch volatile
char extends import private synchronized while
class false instanceof protected this
Of these, true, false, and null are technically literals. The sequence var is not a
keyword, but instead indicates that the type of a local variable should be type­inferred. The
character sequence consisting of a single underscore, _, is also disallowed as an identifier. There
are also 10 restricted keywords which are only considered keywords within the context of
declaring a Java platform module.
We’ll meet each of these reserved words again later in this book. Some of them are the names of
primitive types and others are the names of Java statements, both of which are discussed later in
this chapter. Still others are used to define classes and their members (see Chapter 3).
Note that const and goto are reserved but aren’t actually used in the language, and that
interface has an additional variant form—@interface, which is used when defining
types known as annotations. Some of the reserved words (notably final and default) have
a variety of meanings depending on context.
Identifiers
An identifier is simply a name given to some part of a Java program, such as a class, a method
within a class, or a variable declared within a method. Identifiers may be of any length and may
contain letters and digits drawn from the entire Unicode character set. An identifier may not
begin with a digit.
In general, identifiers may not contain punctuation characters. Exceptions include the dollar sign
($) as well as other Unicode currency symbols such as £ and ¥.
The ASCII underscore (_) also deserves special mention. Originally, the underscore could be
freely used as an identifier, or part of one. However, in recent versions of Java, including Java
11, the underscore may not be used as an identifier.
The underscore character can still appear in a Java identifier, but it is no longer legal as a
complete identifier by itself. This is to support an expected forthcoming language feature
whereby the underscore will acquire a special new syntactic meaning.
TIP
Currency symbols are intended for use in automatically generated source code, such
as code produced by javac. By avoiding the use of currency symbols in your own
identifiers, you don’t have to worry about collisions with automatically generated
identifiers.
The usual Java convention is to name variables using camel case. This means that the first letter
of a variable should be lowerase, but that the first letter of any other words in the identifier
should be uppercase.
Formally, the characters allowed at the beginning of and within an identifier are defined by the
methods isJavaIdentifierStart() and isJavaIdentifierPart() of the class
java.lang.Character.
The following are examples of legal identifiers:
i x1 theCurrentTime current 獺
Note in particular the example of a UTF­8 identifier, 獺. This is the Kanji character for “otter”
and is perfectly legal as a Java identifier. The usage of non­ASCII identifiers is unusual in
programs predominantly written by Westerners, but is sometimes seen.
Literals
Literals are sequences of source characters that directly represent constant values that appear as­
is in Java source code. They include integer and floating­point numbers, single characters within
single quotes, strings of characters within double quotes, and the reserved words true, false,
and null. For example, the following are all literals:
1 1.0 '1' 1L "one" true false null
Discovering Diverse Content Through
Random Scribd Documents
113) In dem um einige Fuß abgelassenen S t r e i t z i g s e e bei
Neustettin ist ein bisher durch Rohrwuchs verdecktes großes
P f a h l b a u t e n r e v i e r entdeckt worden, bei dessen
oberflächlicher Untersuchung viel Kohle und mehrere alte Mahlsteine
gefunden wurden.
(Ill. Ztg. Nr. 1323, Korr. v. u. f. D. Nr. 564.)
114) In B ö h m e n haben sich, nach österreichischen Blättern,
nun auch Reste von P f a h l b a u t e n gefunden, und zwar auf der
Höhe des Erzgebirges im Kreiserwalde bei Sonnenberg. Von den in
ziemlicher Tiefe gefundenen Werkzeugen und Geräthschaften
werden erwähnt: Ein Schleifstein, aus einer Platte von hartem
Sandstein bereitet, ein aus dem Zahn eines Ebers gefertigtes
Weberschiffchen, eine Steinschleuder, Pfriemen zur Bearbeitung von
Lederwaaren, eine Vase, ein Thonkessel, ein Wagen- oder Karrenrad,
eine eichene Kette, ein Angelhaken, eine Dolchspitze, ein kurzes
zweischneidiges Schwert, eine Nadel aus Bronze. Das
Bemerkenswertheste sind jedoch vier dabei befindliche
Menschenschädel.
(Ill. Ztg. Nr. 1321.)
115) Etwa 800 Schritte östlich von dem letzten Hause des Dorfes
P e s t l i n (zwischen Marienwerder und Marienburg), dicht am Wege
nach Zyguß, wurde im Sommer 1867 beim Graben nach Mauergrund
auf ebenem Felde in nur zwei Fuß Tiefe unter der Oberfläche eine
große Anzahl (der Angabe nach über fünfzig) h e i d n i s c h e r
A s c h e n g e f ä ß e verschiedener Form gefunden. Die meisten
derselben sind von den Findern zerschlagen worden. Nur vier Stück,
welche Kinder an sich genommen hatten, haben sich durch Zufall
erhalten und sind, in Folge meines eifrigen Nachforschens, wieder
zum Vorschein und in meinen Besitz gelangt[220]. Nach Angabe der
Landleute standen und lagen die Töpfe dicht bei einander, zum Theil
umgekehrt, in dem groben Sande und haben nichts
Bemerkenswerthes enthalten. In diesem Frühjahre besuchte ich die
Fundstätte, fand aber nur Scherben in großer Anzahl. Bei
verschiedenen Nachgrabungen gelang es mir, außer unendlich vielen
Scherben und einigen zerbrochenen, auch einige wohlerhaltene
Gefäße zu finden. Sie standen meist umgekehrt, mit dem Boden
nach oben und waren durchaus leer.
Es befand sich also an dieser Stelle ein großes Todtenfeld,
welches die historische Nachricht (Script. Rer. Prussic. I, 60 u. 357;
J. Voigt, Gesch., II, 620), daß Pestlin schon am Anfang des 13.
Jahrhunderts ein bedeutender Ort war, in trefflichster Weise
bestätigt.
Die Gefäße sind von auffallend schöner Form (dieselbe erinnert
oft an die schönen antiken, griechischen, bemalten Gefäße), zum
Theil mit einem Henkel und leise angedeutetem Ausguß versehen,
von dünnen Wänden und hart gebrannt, so daß sie klingen. Deckel
habe ich nicht gefunden. Der Thon ist von bläulicher Farbe und stark
mit grobem Sand vermischt. Sie zeigen eine schon sehr ausgebildete
Technik (auf der Drehscheibe) und sind mit den einfachsten Mitteln
in sehr verschiedener, stets hübscher und sinniger Weise am Halse
ornamentiert. Fast alle haben am oberen Theil des Bauches
wagrechte Riefelungen. Diese Gefäße stehen also ganz im Gegensatz
zu den sonst in unserer Provinz gefundenen Aschengefäßen, welche
meist ganz roh mit der bloßen Hand geformt sind, dicke Wände
haben und ungebrannt sind. Gestützt auf diese Thatsachen, möchte
ich die Pestliner Gefäße für viel jünger halten, als die meisten sonst
gefundenen, glaube, daß sie aus historischer Zeit stammen, da ganz
Pomesanien der Form nach schon christlich war, die alten Preußen
ihre heidnischen Gebräuche aber noch nicht aufgegeben hatten. Ein
zwischen den Gefäßen gefundenes Fragment eines eisernen
Geräthes scheint meine Ansicht zu bestätigen.
P e s t l i n . R . B e r g a u .
(Aus der Altpreuß. Monatsschr., 6. Heft.)
116) Bei K ö t t e n (Eisenacher Oberland) wurden bei Anlegung
einer neuen Straße riesige S k e l e t t e nebst silbernen
A r m s p a n g e n , mit Perlen besetzt, und Messer in eigenthümlicher
Form gefunden. Nach der Ansicht des Professors Dr. J. Klopfleisch
aus Jena, welcher zum Zweck weiterer Nachforschungen die Stelle
besuchte, gehören die genannten Objekte dem heidnischen
Alterthum an.
(Frk. Kur. Nr. 317.)
117)[221] Auf einem Felde nächst H i l d e s h e i m ist, gelegentlich
der Anlage einer Militärschießstätte, 9 Fuß unter dem Erdboden eine
große Anzahl (54 Stück) massiv s i l b e r n e r , theilweise vergoldeter
G e f ä ß e a u f g e f u n d e n worden, die, einen Silberwerth von
wenigstens 3000 Thlrn. repräsentierend, dem Alterthum
entstammen und zu einem Tafelservice gehörten. Gefunden wurden:
Ueberreste eines gegossenen Dreifußes (3 Füße mit Thierklauen, 3
Aufsätze in Form kleiner Hermen des bärtigen Bacchus, verschiedene
Theile der Verbindungsstäbe mit noch beweglichen Scharnieren); ein
½ Meter hoher, glockenförmiger Krater, ganz umzogen von den
reizendsten Ornamenten, in welchen allerhand Figuren, namentlich
Eroten, angebracht sind; 4 Schalen mit Inschriften, im Innern mit
aufgelötheten Hochreliefs (Minerva, Büste einer Kybele, eines Deus
Lunus, des Herakles als Knabe, Schlangen würgend); einfache
Schale; zwei Becher mit Ornamenten und Inschriften; beweglicher
Henkel einer Vase; 5 flache Tafelaufsätze mit Inschriften und je 4
Füßen, an den Langseiten Dithyosen (?), an den Schmalseiten
tauchende Enten; drei Tiegel mit ornamentiertem Griff und
Inschriften; verschiedene Schalen, je über 1 Pfund schwer; drei
glockenförmige Becher mit Händen und Füßen, die äußere Fläche
überfüllt mit bacchischen Symbolen und Masken von Panen, Titanen,
alten und jungen Satyren männlichen und weiblichen Geschlechts,
Hermen etc.; zwei hohe Vasen von konischer Form, umzogen von
Kreisen mit Thierfiguren; ein Salzgefäß; ein Eimer ohne Henkel und
ohne Verzierung; Fragmente anderer Gefäße. Die Reliefs sind
durchweg von getriebener Arbeit, Ornamente und Darstellungen der
Reliefs ausnahmslos der antiken Kunst und Mythologie angehörig;
die lateinischen Inschriften weisen auf Gebrauch in römischer Zeit,
die in der Silbertechnik und dem Styl der Ornamente und Figuren
sich aussprechende hohe Kunst auf griechische Künstler, etwa der
augusteischen Zeit, hin.
(Frk. Kur. Nr. 316, nach der Köln. Ztg.)
118) Im Z a l a r e r Comitat (Ungarn), nicht weit von Also-
Lendva, stieß man beim Ackern auf eine Urne, welche in ihrem
Innern an 1000 Stück S i l b e r - u n d K u p f e r m ü n z e n , goldene
und silberne Ringe, Armbänder und Halsketten barg. Eine der
Silbermünzen, welche Prof. Wagner in Ofen erhielt, trägt vorn die
Inschrift: „Imp. Cae. C. Vib. Volusiano Augg.“ und die Rückseite zeigt
die Worte: „Pietas Augg.“, sowie die Abbildung einer auf dem Altar
opfernden Vestalin. Cajus Vibius Volusianus war der Sohn des Vibius
Trebonianus Gallus und dessen Mitregent seit 252 n. Chr., daher die
Inschrift der Kehrseite „Pietas Augustorum“, da derselbe sammt
seinem Vater 253 von seinen eigenen rebellischen Prätorianern
umgebracht wurde.
(Ill. Ztg. Nr. 1320.)
119) Wie bereits mitgetheilt (auch in der vor. Nr. dies. Bl.), wurde
in dem Walde der württemb. Gemeinde L u s t n a u vor Kurzem unter
einer Eiche ein Topf aufgefunden, welcher S i l b e r m ü n z e n
enthielt. Es waren dies über 6000 Stück kleine, schüsselförmige, blos
auf einer Seite geprägte Münzen in der Größe eines Groschens,
einige, doppelt geprägt, in der Größe eines Sechsers, und einige,
circa 200, gleichfalls mit doppeltem Gepräge, kamen einem frühern
Zwölfkreuzerstück gleich. Die Münzen scheinen aus dem 14. und 15.
Jahrh. zu stammen und kursierten in der Gegend von Tübingen,
indem eine größere Anzahl derselben der gräflich Hohenberg’schen
Münzstätte zu Rottenburg am Neckar entsprungen sind und den
Namen des Erzherzogs Leopold Graf von Tirol tragen, welcher 1396
mit Württemberg, Augsburg, Oettingen, Ulm, Esslingen, Gmünd
einen Münzvertrag schloß. Der Topf, in welchem sich die Münzen
befanden, ist ein Essighafen, welcher unten zwei Henkel und ein
Zapfenloch hat. Der größere Theil der Münzen wurde an das k.
Münzkabinet in Stuttgart gesendet.
(Korr. v. u. f. D. Nr. 540, nach d. Schw. M.)
120) In L ü t t i c h will man ein G e m ä l d e v o n Te n i e r s
aufgefunden haben. Ein Speisewirth hat das Bild, welches ganz mit
Schimmel bedeckt war, in einer Auction erstanden. Es stellt den
heiligen Antonius dar, wie er vom Teufel versucht wird. Dem Besitzer
sind bereits hohe Preise von Kunstfreunden geboten worden.
(Monatsrosen 1869, Nr. 1.)
121) In Nr. 2 des diesjährigen Anzeigers habe ich nähere
Nachricht von der höchst bedeutenden Sammlung mittelalterlicher
Paramente in der Marienkirche zu D a n z i g gegeben. Jetzt kann ich
die erfreuliche Nachricht hinzufügen, daß dieselbe binnen Kurzem
auch weiteren Kreisen zugänglich gemacht werden soll, indem zu
Ostern k. J. im Verlage von Kasemann in Danzig ein großes Werk
erscheinen wird, welches photographische Abbildungen aller
interessanten Stücke nebst einem beschreibenden Text von Hinz
enthalten wird.
R . B e r g a u .
122) Seit dem 7. Oktober erscheint in B e r l i n eine n e u e
W o c h e n s c h r i f t f ü r K u n s t unter dem Titel: „Blätter für
bildende Kunst“, Organ des Preußischen Kunstvereins,
herausgegeben unter Mitwirkung namhafter Fachmänner von C.
Schönau. Wenn sich das Blatt auch als „Organ des Preußischen
Kunstvereins“ ankündigt, so will es doch auch die allgemeinen
Kunstinteressen in ausgedehntestem Maße vertreten. Es bringt
größere abhandelnde Artikel, Mittheilungen aus dem Berliner
Kunstleben, auswärtige Original-Correspondenzen, Kritiken neuer
Werke, eine Rundschau auf dem Gebiete der Kunstliteratur,
Biographieen und Charakteristiken hervorragender Künstler etc. Die
Redaktion hat im Programm den Grundsatz aufgestellt, eine
durchaus unparteiische Kritik üben zu wollen. Für Künstler und für
die Mitglieder des Preußischen Kunstvereins hat der Herausgeber
den Abonnementspreis auf 1 Thlr. pro Quartal bei directer Bestellung
in der Redaktion in Berlin, Dorotheenstrasse 31, ermäßigt. Für
andere Abonnenten im In- und Auslande beträgt das Abonnement 1
Thlr. 10 Sgr. vierteljährlich.
123) An der Mauerseite, wo in R e g e n s b u r g ehedem der
Hallerthurm stand, ist eine G e d e n k t a f e l angebracht worden,
welche die Inschrift trägt: „Hier wurde der Hallerthurm, im Jahre
1542 vom Bauherrn Haller mit einer Uhr versehen, früher das
Ostenthor (Porta orientalis), zur Erweiterung der Durchfahrt im März
1868 abgebrochen. Vor diesem Thore fiel bei einem Ausfall gegen
Kaiser Otto’s Heer der tapfere Pfalzgraf Arnulf, von Pfeilen
durchbohrt, im Jahre 954.“
(Augsb. Postztg. Nr. 256.)
Mittheilungen.
>Es sind in den letzten Jahren wiederholt in der
„A l l g e m e i n e n Z e i t u n g “ und anderen Blättern, so jüngst in Nr.
273 der Spener’schen Zeitung in Berlin, Artikel, mit „A.“
unterzeichnet, über das germanische Museum erschienen, die zwar
mitunter das unter meiner Leitung Erreichte sehr anerkennend
hervorheben, dabei aber wieder Ansichten aufstellen, die ich so
wenig theile, daß ich mich verpflichtet fühle, öffentlich zu
constatieren, daß ich nicht nur in gar keiner Beziehung zu diesen
Artikeln stehe, sondern auch lebhaft bedauere, dieselben nicht
verhindern zu können, indem ich wohl fühle, daß sie durch
Hervorhebung von Dingen, die längst von competenter Seite
entschiedene Verurtheilung erfahren haben, dem Rufe des Institutes
schaden müßten, wenn sie als von der Vorstandschaft desselben
ausgehend angesehen würden.
N ü r n b e r g , den 25. November 1868.
Der I. Vorstand des germanischen Museums.
A . E s s e n w e i n .
Berichtigung. In der vorigen Nummer des Anzeigers ist auf Sp.
309, Zeile 13 v. o. „M ä n n e r n “ statt Mannen, und ebendas. Zeile
19 „w i t t e n b e r g i s c h e n “ statt „wirttenbergischen“ zu lesen.
Müller’s neuestes Künstlerlexikon.
Leben und Werke der Künstler aller Zeiten und Völker, der
berühmtesten Baumeister, Bildhauer, Maler, Kupferstecher,
Formschneider, Lithographen etc., von den frühesten Kunstepochen
bis zur Gegenwart. 3 Bände. 137 Bogen. broch. (Ladenpreis 26 fl.
oder 15 Thlr. 18 Sgr.)
Herabgesetzter Preis 10 fl. oder 6 Thlr.
Verlag von Ebner & Seubert in Stuttgart, zu beziehen durch
alle Buchhandlungen.
>B i t t e .
Kennt einer der verehrl. Leser des Anzeigers ein Exemplar von
„G e i s t l i c h e L i e d e r auffs new gebessert zu Wittemberg,
D. M. L u t h e r . MDXXIX“ kl. 8[222].
so bitte ich dringend um gefällige Mittheilung darüber.
N ü r n b e r g . Dr. F r o m m a n n .
Verantwortliche Redaction: A . E s s e n w e i n . Dr. G . K . F r o m m a n n . Dr. A .
v. E y e .
Verlag der literarisch-artistischen Anstalt des germanischen Museums in Nürnberg.
S e b a l d ’sche Buchdruckerei in Nürnberg.
Nürnberg. Das Abonnement des Blattes, welches alle
Monate erscheint, wird ganzjährig angenommen und beträgt
nach der neuesten Postconvention bei allen Postämtern und
Buchhandlungen Deutschlands incl. Oesterreichs 3 fl. 36 kr.
im 24 fl.-Fuß oder 2 Thlr. preuß.
Für Frankreich abonniert man in Straßburg bei C. F.
Schmidt, in Paris bei der deutschen Buchhandlung von F.
Klincksieck, Nr. 11 rue de Lille, oder bei dem Postamt in
Karlsruhe; für England bei Williams & Norgate, 14 Henrietta-
Street Covent-Garden in London; für Nord-Amerika bei den
Postämtern Bremen und Hamburg.
Alle für das german. Museum bestimmten Sendungen auf
dem Wege des Buchhandels werden durch den Commissionär
der literar.-artist. Anstalt des Museums, F. A. B r o c k h a u s in
Leipzig, befördert.
ANZEIGER
FÜR KUNDE DER DEUTSCHEN VORZEIT.
Neue Folge. Fünfzehnter Jahrgang.
ORGAN DES GERMANISCHEN MUSEUMS.
1868. Nº 12. December.
Wissenschaftliche Mittheilungen.
Noch ein Wort über den deutschen
kaiserlichen Doppeladler.
„Adhuc sub judice lis est.“
Im elften Bande des Anzeigers für Kunde der deutschen Vorzeit
von 1864 (Nr. 1–4) habe ich mir erlaubt, einen kleinen „Beitrag zur
Geschichte des heraldischen Doppeladlers“ mitzutheilen, zu welchem
Dr. A. Erbstein einen werthvollen „numismatischen Beitrag“ (in Nr. 5
u. 6 dess. Jahrg.) geliefert hat. Vgl. auch die Nachträge im Jhg.
1865, Sp. 236 u. 420 ff.
Die Akten über diesen interessanten Gegenstand sind zwar noch
nicht geschlossen; allein es hat leider den Anschein, daß der für uns
weitaus wichtigste Theil der Frage: wann und warum der
(morgendländische?) Doppeladler den (abendländischen?)
e i n f a c h e n A d l e r im Wappen der deutschen Kaiser verdrängt
hat, m i t v o l l e r S i c h e r h e i t nicht mehr wird beantwortet
werden können.
Meine früher bestimmt ausgesprochene Ansicht, daß erst Kaiser
Sigismund den Doppeladler als kaiserliches Wappen angenommen
habe, glaube ich aber jetzt theilweise berichtigen zu müssen.
Nachdem meine Zweifel über die Richtigkeit der Zutheilung der
beiden Denare K. Otto’s IV. und K. Conrad’s IV. durch den erwähnten
„numismatischen Beitrag“ gehoben worden sind, und nachdem mein
gelehrter Freund Lisch mir die unter Nr. 1 abgebildete Zeichnung der
Fahne Karl’s des Großen[223] aus der meklenburgischen Reimchronik
Ernst’s von Kirchberg, vom Jahre 1378, mitgetheilt hat[224], glaube
ich annehmen zu dürfen, daß der Doppeladler doch schon seit dem
Ende des 12. Jahrh. — also seit seinem Erscheinen in der deutschen
Nr. 1.
Heraldik überhaupt — als kaiserliches Wappen, wenn
auch anfänglich und bis zu Sigismund nicht vom Kaiser
selbst, und nicht ausschließlich, also mit dem einfachen
abwechselnd[225], geführt und abgebildet worden ist.
Zu den bereits erwähnten Beispielen des
Vorkommens des Doppeladlers als kaiserlichen
Wappens aus der Zeit zwischen 1197 und 1378 kommt
noch die bekannte Goldmünze K. Ludwig’s des
Bayern[226] (1314–1347).
Die Behauptung L. v. Ledebur’s, daß K. Ludwig
schon 1323 den Doppeladler im Siegel geführt habe,
beruht auf einem Irrthum. Der Kaiser führte nämlich
auf seinem, gewöhnlich als Rücksiegel gebrauchten,
kleineren Siegel, wie hier unter Nr. 2 abgebildet, einen
rückwärtsehenden, sog. „wiedersehenden“ Adler in natürlicher
Stellung, mit der schönen, echt königlichen Devise[227].
Die Bemerkung in der Urkunde von 1323: „Geben zu
Babenberg... under dem wiedersehenden Adler besiegelt“, hat wol
meinen gelehrten Freund zu der Annahme verleitet, Ludwig habe auf
diesem Siegel den Doppeladler geführt[228].
Nr. 2.
Römer-Büchner hat das Wort „wiedersehend“ auch
mißverstanden und über dessen Bedeutung zwei viel zu gesuchte
Hypothesen aufgestellt[229].
Auf dem großen Siegel III. A. 2. b K. Ludwig’s sehen wir auf der
Spitze des Scepters einen (heraldischen, einfachen) Adler und zu
beiden Seiten des Thrones (?) zwei wiedersehende Adler, auf den
beiden, unter den Füßen des Kaisers liegenden Löwen stehend.
Letztere beiden Adler, ebenso wie die Löwen, sind aber hier keine
(heraldischen) W a p p e n bilder, sondern nur (symbolische, auch auf
das Wappen sich beziehende) S i e g e l bilder[230]. Das zeigt schon
der ganze Typus dieser Thiere. Einer ganz ähnlichen, wahrscheinlich
d i e s e m Siegel nachgebildeten Zusammenstellung begegnen wir,
beinahe gleichzeitig, auf dem Siegel König Johann’s von Frankreich v.
J. 1352 (abgebild. im nouv. traité de diplom. V, Taf. C, Fig. 79). Auf
diesem Siegel haben die Adler nur eine rein decorative Bedeutung,
ohne alle Beziehung zu dem W a p p e n , welches auf dem
Hauptsiegel nur durch die Lilie auf der Spitze des Scepters vertreten,
dagegen auf dem Rücksiegel (IV. A. 2.) enthalten ist.
Ueber vermeintliche Kaisersiegel mit dem Doppeladler vor
Sigismund schreibt Römer-Büchner a. a. O., S. 41: „Zwar gibt
Gudenus in praefat. Sylloges Disp. pag. 20 Nachricht von einem
zweiköpfigen Adler im kaiserlichen Contresiegel Karl’s IV.; da uns
jedoch kein ähnliches Siegel vorgekommen ist, so wird sich diese
Angabe auf ein falsches Siegel oder falsche Abzeichnungen gründen,
wie wir z. B. bei v. Birken, Fuggerischer Ehrenspiegel des Erzhauses
Oesterreich, S. 170, 178, 185 u. 350, die falschen Siegel mit dem
zweiköpfigen Adler von Friedrich I. von 1166, Heinrich (VII) von
1228, Friedrich II. von 1245 und Karl IV. von 1368 finden.“
Was K. Karl IV. betrifft, so gilt von den beiden als Schildhaltern
verwendeten Adlern auf seinem großen Siegel III. B. 2. b. dasselbe,
was ich oben von den beiden Adlern auf dem Siegel III. A. 2. b. K.
Ludwig’s des Bayern gesagt habe.
Seit Kaiser Sigismund blieb aber der Doppeladler das stereotype
Wappen unserer Kaiser, während die deutschen Könige den
e i n f a c h e n fortführten.
Bemerkenswerth für die vorliegende Frage bleibt immerhin, wie
ich schon früher erwähnt, der Umstand, daß Sigismund, der schon
als Reichsverweser 1402 den Doppeladler auf seinem Siegel IV. A. 1
geführt hatte[231], als römischer König und Erbe von Böhmen
(„romanorum rex et bohemie heres“, wie die Legende lautet) i. J.
1411 den e i n f a c h e n A d l e r im Siegel führte, dagegen i. J. 1419
als römischer König und König von Böhmen („romanorum ac
bohemie rex“) wieder den Doppeladler annahm, den er auch als
Kaiser beibehielt.
Nach den gewöhnlichen Regeln der damals sehr ausgebildeten
und angesehenen Heroldskunst erscheint dieser Wechsel als ein
auffallender Widerspruch, indem der Doppeladler unter den
angeführten Verhältnissen das eine Mal als eine sog. Minderung, das
andere als eine sog. Mehrung des Wappens zu blasonieren wäre.
So, wie ich die Frage jetzt ansehe, erscheint mir der Doppeladler
auf dem Rücksiegel König Wenzel’s von 1376, auf den Siegeln der
Herzoge Wilhelm und Albrecht I. von Bayern, der Söhne K. Ludwig’s
d. Bayern, der Herzogin Katharina von Oesterreich, der Tochter K.
Karl IV., der Stiefschwester K. Wenzel’s, ebenso als der
k a i s e r l i c h e , wie auf dem Siegel der Juden von Augsburg (als
kaiserliche und Reichs-Kammerknechte) von 1298, auf dem
Landfriedensiegel vom Jahr 1335, auf den Stadtsiegeln von Breslau
aus dem 13. (?) Jahrh., von Friedberg 1334, von Lübeck 1369, von
Antwerpen 1370, von den Seestädten 1368, auf dem der Stadt
Solothurn von 1394 (und zwar auf diesem g e k r ö n t ; wol das
ä l t e s t e Beispiel eines g e k r ö n t e n Doppeladlers); ferner auf den
flandrischen Goldmünzen im 13. Jahrh. und denen der Kurfürsten
von Trier im 14. Jahrh., am Galgenthor und am Eschenheimer Thurm
in Frankfurt a. M. von 1343–48. Ja, selbst auf allen Siegeln, deren
Inhaber in einem höheren oder niederen ministerialen Verhältnisse
zum deutschen Reiche, resp. seinem Oberhaupte, gestanden, dürfte
d i e s e Auffassung von der Bedeutung des Doppeladlers — ob ganz
oder theilweise angebracht — die richtige sein. Das würde u. a. von
dem unter Fig. XIV meines Beitrags zur Gesch. d. heraldischen
Doppeladlers abgebildeten Siegel der kaiserl. Burggrafen von
Henneberg und dem unter Fig. VI mit dem Wappen der Burgmannen
von Gelnhausen der Fall sein.
Während in den beiden Originalhandschriften der
Richenthal’schen Chronik, der Aulendorfer wie der Constanzer, und in
der Ausgabe von Anton Sorg vom J. 1483 der e i n f a c h e A d l e r
mit „römisch reich“ und der Doppeladler mit „Keysertum“ bezeichnet
und in dem Reichsbanner der e i n f a c h e A d l e r abgebildet ist,
sehen wir bereits auf Blatt 53 der kostbaren Bilderhandschrift aus
dem Ende des 15. Jahrh. in der fürstlich Waldburg-Wolfegg’schen
Bibliothek, sowohl auf dem großen kaiserlichen Banner als wie auf
den Fähnlein und Dächern der Zelte, überall nur den Doppeladler.
Nr. 5.
❏
GRÖSSERES BILD
Bei diesem Stande der Sache war es von großem Interesse für
mich, als ich auf den unter Nr. 5 abgebildeten Grabstein K. Rudolf’s
von Habsburg im Dome zu Speyer[232] aufmerksam gemacht wurde
und einen Abguß des Brustschildes mit dem Doppeladler erhielt.
Durch dieses Denkmal schien der bisher fehlende historische
Zusammenhang zwischen dem ersten Erscheinen dieses kaiserlichen
Wappenbildes zu Anfang des 13. Jahrh.[233] und den Siegeln K.
Sigismund’s hergestellt und dessen Vorkommen auf der erwähnten
Goldmünze K. Ludwig des Bayern erklärt zu sein.
Je wichtiger aber dieses Denkmal für die Entscheidung der
vorliegenden Frage war, um so genauer mußte untersucht werden,
ob wir es wirklich hier mit einer g l e i c h z e i t i g e n Arbeit zu thun
haben.
D a g e g e n , d. h. für eine s p ä t e r e Ausführung des
Monumentes, sprachen:
I. Der Stil des Ganzen und die sehr individuelle Auffassung der
Figur, die nach Essenwein nicht mehr auf das 13. Jahrhundert
hinzudeuten scheinen und nach v. Eye eher der Zeit Karl’s IV.
entsprechen;
II. der Umstand, daß der Grabstein des Kaisers von Marmor
gewesen sein soll, der vorliegende aber von Sandstein ist, und nicht
im Dome, sondern in der Ruine des Johanniterhofes im Schutte
gefunden wurde; und
III. der Doppeladler an und für sich[234] und seine für die
damalige Zeit ungewöhnliche Form[235].
F ü r die Gleichzeitigkeit des Denkmals sprachen jedoch:
I. Die Angabe Ottokar’s von Horneck in seiner Reimchronik, daß
der Steinmetz die Figur Rudolf’s genau nach dem Leben gearbeitet
habe, und als derselbe eine Falte im Gesicht mehr bekommen, ihm
eigens nachgereist sei, um ihn nochmals genau zu betrachten und
auf seinem Bilde auch diese Falte nachzutragen; wie denn auch der
Ausdruck des Gesichtes wirklich P o r t r ä t zu sein scheint.
II. So sehr die oben (unter III) angeführten heraldischen
Bedenken auch zu beachten sind, für u n b e d i n g t
e n t s c h e i d e n d möchte ich sie doch nicht erklären.
Der vorliegende Fall ist einer von den vielen auf dem weiten,
aber theilweise noch immer sehr dunkeln Gebiete, der
Alterthumsforschung, der sich eben so leicht zum Beweise für als
g e g e n eine aufgestellte Behauptung gebrauchen läßt.
Man kann nämlich mit eben so viel Wahrscheinlichkeit
behaupten, der Doppeladler auf der Pektoralschließe des Grabsteines
K. Rudolf’s beweise, daß derselbe erst lange nach seinem Tode
verfertigt worden sei, als man behaupten kann, daß dieses Grabmal
den Beweis liefere, daß schon Rudolf von Habsburg den Doppeladler
als k a i s e r l i c h e s W a p p e n geführt habe.
B e w i e s e n ist aber damit das Eine eben so wenig wie das
Andere.
Ich bin kein Freund solcher apodiktischer Behauptungen und
begnüge mich gerne damit, die Frage nach ihren beiden Seiten
angeregt und zu ihrer endlichen (?) Lösung das Meinige beigetragen
zu haben; et je ne crois même en savoir moins pour cela.
Wenn auch allerdings im Mittelalter, namentlich vor der zweiten
Hälfte des 15. Jahrh., die heraldischen Typen in den einzelnen
Perioden (etwa von 50 zu 50 Jahren) so ziemlich ausgeprägt und
constant waren, so kommt doch auch sehr viel darauf an, ob eine
Wappenfigur auf Münzen, Siegeln oder auf Denkmälern dargestellt
wurde und welchem Lande der ausführende Künstler angehörte. Bei
auffallenden Formverschiedenheiten und Abweichungen von der
gewöhnlichen, landläufigen Regel sind b e i d e Momente wohl zu
beachten und ohne urkundlichen Beweis, der selbst durch Siegel
nicht immer geführt werden kann, ist es nach meinem
unmaßgeblichen Ermessen meist mißlich und gewagt, im einzelnen
Falle darüber unbedingt abzuurtheilen und Hypothesen aufzustellen,
die so wenig Wahrscheinlichkeit für sich haben.
Was aber am meisten dafür spricht, daß der Speyerer Grabstein
nicht der ursprüngliche, und somit der auf demselben befindliche
Doppeladler für die vorliegende Frage ganz ohne Werth ist, das ist
eine Vergleichung desselben, resp. unseres obigen Holzschnittes, mit
einem Bilde in der berühmten Ambraser Sammlung, wovon wir eine
Abbildung des entsprechenden Theiles des Originals unter Nr. 6
mittheilen.
Freiherr E. v. Sacken schreibt darüber an Essenwein bei
Uebersendung einer Photographie dieses Bildes: „Was den Grabstein
Rudolf’s von Habsburg anbelangt, so weiß ich nur aus schriftlichen
Nachrichten, — ich selbst war nicht in Speyer — daß derselbe durch
die Franzosen 1689 und 1793 bis zur Unkenntlichkeit zerstört wurde.
Schmidt sagt mir, es sei noch gegenwärtig der alte Grabstein dort,
der aber sehr bedeutend restauriert ist. Ob Ihr Gypsabguß von
diesem restaurierten oder einem darnach gefertigten neuen Steine
sei, kann ich nicht bestimmen.
Nr. 6.
Die in Wasserfarben gemalte, aber auch schon etwas verblaßte
Copie in der Ambraser Sammlung, von der ich eine Photographie
beilege, ist jedenfalls unter K. Maximilian I. nach dem noch intacten
Steine gefertigt[236]. Das Bild ist 6 Fuß groß und sehr gut,
wahrscheinlich von dem Tiroler Kaspar Rosenthaler, der auch den
großen habsburgischen Stammbaum in der Ambraser Sammlung
malte. Die Inschrift stimmt genau mit Ihrem Holzschnitte überein,
ebenso die Figur im allgemeinen, nicht so Kopf und Hände, die an
dem Originale des Holzschnittes ohne Zweifel restauriert sind; auch
Krone und Scepter sind anders geformt, und die Linke hält nicht den
Reichsapfel, sondern die Büchse mit dem bei der Krönung
gebrauchten Salböle. Auf dem Originale des Holzschnittes ist wol
auch der D o p p e l adler auf dem Brustschilde eine neuere
Restauration; denn auf unserem Bilde ist deutlich der e i n köpfige
schwarze Adler zu sehen.“
Mantelschließen mit Wappen finden sich häufig auf unseren
ältesten Grabmälern, z. B. auf den Grabsteinen Graf Otto’s von
Botenlauben, † 1244, und seiner Gemahlin Beatrix, † 1250, in der
Kirche von Frauenrode (abgebildet bei Hefner-Alteneck, Trachten
etc., I. Taf. 59 u. 60); auf mehreren Erbach’schen und auf dem
Grabmal Graf Ulrich’s von Württemberg und seiner Gemahlin Agnes,
einer gebornen Herzogin von Liegnitz, beide † 1265.
„Ulrich’s irdische Reste“ — schreibt mein gelehrter Freund von
Stälin (in s. wirtemb. Gesch. II, 484 u. 485) — „wurden zuerst in
Beutelsbach beigesetzt, im J. 1321 nach Stuttgart gebracht; in der
dortigen Stiftskirche befindet sich sein steinernes Grabdenkmal,
welches den Grafen mit seiner Gemahlin Agnes in ganzen Figuren
darstellt und nicht sehr lange nach deren Tode, vielleicht für die
neue Beisetzung der Gebeine in Stuttgart, gefertigt wurde.“
Da die Abbildung bei Sattler, Topogr. Gesch. 40, S. 34, ganz
unrichtig ist, so theile ich hier unter Nr. 7 (in ½ Größe des Originals)
eine genaue Zeichnung der Mantelschließe der Gräfin mit, auf
welcher sich ihr Alliancewappen in eigenthümlicher
Zusammenstellung befindet[237].
Nr. 7.
Zum Schlusse muß ich mir aber doch noch erlauben, meine
bescheidenen Bedenken gegen einige in dem erwähnten
„numismatischen Beitrage“ aufgestellten Behauptungen
auszusprechen.
Das sehr frühe Vorkommen des Doppeladlers auf Geweben und
als reines Ornament ist bekannt. Allein den heraldischen und ganz
besonders den deutschen, kaiserlichen Doppeladler kann ich
durchaus nicht für „ein Kind des Webstuhls“ halten.
Mag der Ursprung und die Bedeutung des Doppeladlers im Orient
noch zu dunkel sein, in der deutschen Heraldik liegt ihm sicher eine
tiefere Bedeutung zu Grunde, als die bloße mechanische
Nachbildung fremdländischer Gewebe[238].
So sehr ich die allgemein anerkannte Autorität des Herrn Dr. A.
Erbstein auf dem Gebiete der Münzkunde verehre, so kann ich doch,
was das Verständniß unserer mittelalterlichen Wappenkunde betrifft
(um deren tieferen Sinn sich die Münzmeister aus verschiedenen
technischen und aus Zweckmäßigkeitsgründen oft sehr wenig
gekümmert zu haben scheinen), mich seinem Urtheile nicht ebenso
unterwerfen.
Ich muß daher die von competenten Richtern längst aufgestellte
Behauptung aufrecht erhalten, daß der Doppeladler durch das
monogrammatische Zusammenschieben — wie es v. Ledebur ganz
treffend bezeichnet — zweier heraldischer Adler entstanden und in
dieser Beziehung im kaiserlichen Wappen ein symbolisches (die
Vereinigung des deutschen und des römischen Reiches
bezeichnendes) Wappenbild ist und weder ein heraldisches
Monstrum, noch ein blos symmetrisches Ornament.
Auffallend ist es, wie einer unserer größten Gelehrten[239]
behaupten konnte, daß bei dieser Annahme „Schwierigkeiten
darüber entstehen, auf welchen Beziehungen diese Verbindung
beruhe,“ nachdem derselbe doch unmittelbar vorher in seiner
historischen Erörterung der „Z e i c h e n , F a h n e n u n d F a r b e n
d e s d e u t s c h e n R e i c h s “[240] selbst anführt, daß der
D o p p e l a d l e r , „a l s b e s o n d e r e s Z e i c h e n d e r
r ö m i s c h - k a i s e r l i c h e n W ü r d e i m G e g e n s a t z d e r
d e u t s c h - k ö n i g l i c h e n , d i e n u n v o r z u g s w e i s e
d u r c h d e n e i n f a c h e n A d l e r b e z e i c h n e t w e r d e n
s o l l t e “, angenommen worden sei.
Den Vergleich zwischen dem doppelgeschwänzten heraldischen
Löwen[241] und dem Doppeladler (nicht dem blos doppelköpfigen,
wovon ich nur e i n Beispiel kenne: die geschmacklosen Schildhalter
auf dem großen Doppelsiegel Kaiser Sigismund’s[242], wovon
dasselbe gilt, was oben von den Schildhaltern auf dem Siegel K.
Ludwig IV. gesagt ist) kann ich eben so wenig gelten lassen, als
zwischen diesem s t e t s a u s z w e i g a n z g l e i c h e n
H ä l f t e n bestehenden Adler mit den von mir bereits a. a. O.
erwähnten Storchen und Hühnern mit zwei Köpfen und ähnlichen
heraldischen sowohl, wie ornamentalen Figuren mit mehreren
Köpfen an einem Leibe oder mehreren Leibern, bei welchem von
einem Zusammenschieben zweier Thiere nicht die Rede ist.
Was meine aus Italien geschöpfte Angabe über das Wappen der
Caetani betrifft, so kann ich zur Begründung derselben jetzt noch
eine neuere Notiz aus derselben Quelle beibringen. Das
ursprüngliche Wappen der Caetani waren allerdings zwei blaue
Flüsse im goldenen Felde (d’or à une bande jumelle ondée d’azur);
jetzt führen sie diese Flüsse schräg-rechts. Kurz vor Bonifaz VIII. soll
jedoch ein Aquapita Caetani eine Giovanna d’Aquila geheiratet und
deren redendes Wappen, den Adler, seinem Wappen einverleibt
haben. In dem rothseidenen Pluviale quaest. sollen die
(e i n f a c h e n ) Adler von Silber gestickt sein; ebenso soll sich aber
auch das frühere Wappen in Silber gestickt darauf befinden. Relata
refero.
K u p f e r z e l l . F.- K .
Die Ausstellung des internationalen
archäologischen Congresses zu Bonn.
(Schluß.)
Die Goldschmiedekunst der Renaissance vertraten vorzüglich
zwei Prachtpokale im größten Maßstabe, die eigentlich als
Tafelaufsätze zu betrachten sind, beide aus dem Besitze des
preußischen Königshauses, der eine dem Benevenuto Cellini
zugeschrieben, der andere dem Wenzel Jamnitzer. Aus dem 17.
Jahrhundert war eine silberne Taufschüssel mit Kanne, der
evangelischen Gemeinde zu Cleve gehörig, zu sehen.
Eine Anzahl romanischer und gothischer Leuchter aus Bronze
fehlte auf der Ausstellung nicht, von denen der interessanteste ohne
Zweifel im Besitze des Herrn H. Garthe in Köln sich befindet. Eine
Reihe von Siegelstempeln, eine Serie von Münzen u. A. war speciell
für die Fachmänner von Werth. Im höchsten Grade wichtig war eine
große Anzahl messingener Aquamanilien, von denen die
Antiquitätenhandlung von Goldschmidt in Frankfurt, die auch sonst
manches Interessante geliefert hatte, allein 43 Stück, aus dem
Besitze des † Hofbuchhändlers Hahn in Hannover stammend,
ausstellte. In allen Größen waren hier Löwen, Hunde, Pferde,
Drachen u. s. w. vertreten. Es zeigte sich im Ganzen, daß diese
Gefäße, wie wir im Anzeiger, Jahrg. 1867, Sp. 260, frageweise
andeuteten, wol vorzugsweise dem profanen Gebrauch gedient
haben müssen; wie ja z. B. auch die zwei silbernen Löwen im
Rathhause zu Lüneburg, aus dem 16. Jahrhundert, unzweifelhaft
Profangefäße sind. Von wenigen Gefäßen der ganzen hier zur Schau
gestellten Reihe möchten wir ein sehr hohes Alter annehmen; viele
gehören sicher erst dem 16. Jahrhunderte an. Von den
phantastischen Gestalten die interessantesten zu nennen, ist schwer.
Am meisten fiel ein Mädchenkopf auf, aus dem 14. Jahrhundert mit
süß lächelnder Physiognomie; eine Umschrift sagte: „Ancilla bin ich
genannt, zu hove bin ich gerne erkannt.“ Zwei Aquamanilien in
Gestalt von Hähnen waren fast identisch. Der eine trug auf zwei
Flügelfedern die Inschrift: Anno Dni MCLV Cesaris Frid anno quarto
in honorem dni S. Andreae. Barrast Refus me cpav. Wir glauben die
Inschrift als spätere Fälschung annehmen und die Entstehungszeit
beider Hähne in’s 14. Jahrh. setzen zu müssen. Ein Ritter zu Pferde
(Eigenthum des Fürsten von Hohenzollern) gehört wol erst dem 15.
Jahrh. an. Die spätesten, aber nicht uninteressanten waren
jedenfalls eine Seejungfrau und ein knieender, vorn und rückwärts
höckeriger Mann. Die ganze Reihe gewährte in der That einen
höchst überraschenden Einblick in die Mannigfaltigkeit, mit der selbst
gleiche Motive durchgebildet wurden, und gab einen deutlichen
neuen Beleg für den phantastischen Sinn unserer Vorfahren. Aber
auch als ein weiteres Resultat ließ sich feststellen, daß alle diese
Gegenstände Produkte einer eigenen, für den Weltmarkt und
Weltbedarf arbeitenden Industrie sind, die das massenhaft Erzeugte
wol mittelst der Messen und Märkte in großer Zahl überall hin zur
beliebigen Auswahl sandte. Von wo sie ausgegangen, ob von
Nürnberg zugleich mit den geschlagenen Becken, ob vom Rheine
oder den Niederlanden, ob, wie de Linas meinte, trotz der theilweise
deutschen Inschriften, von Dinant, wagen wir nicht zu entscheiden.
Wir kommen nun noch an eine Serie: die Manuscripte.
Die Entwickelung der Buchschrift, die innere Ausstattung der
Bücher durch Miniaturen und Initialen ist längst erkannt und
festgestellt. Es handelte sich also hier keineswegs um neue
Entdeckungen; doch ist es stets von höchster Wichtigkeit, nicht blos
einen Kunstzweig vereinzelt in seiner Entwicklung zu verfolgen,
sondern auch zwischen der Fortbildung einzelner Kunstzweige
Parallelen zu ziehen. So war es von hohem Interesse, neben der
Entwicklung des Emails auch die der Miniaturmalerei im gleichen
Zeitraum vor Augen zu haben; abgesehen aber davon haben,
einzelne an und für sich einen hohen Werth. Dieser zeigte sich in
erster Linie an dem Evangelienbuch aus Echternach in der Gothaer
Bibliothek, dem Weihgeschenke Kaiser Otto’s III. und seiner Mutter
Theophania. In höchst kostbarer Ausstattung und von wunderbarer
Erhaltung zeigt es die vier Evangelien, in Goldbuchstaben
geschrieben, mit vielen Initialen; den Anfang jedes Evangeliums
zeichnen einige interessante, besonders reich durch Malerei
geschmückte Blätter aus, die theils ornamental mit einzelnen
eingeflochtenen allegorischen Figuren, theils figural gehalten sind.
Die ganze heilige Geschichte läuft jedoch in einer Reihe von Blättern
fort und ist nicht an die Erzählungsfolge gebunden, wie sie im Texte
erscheint: Nichtsdestoweniger ist die Folge der Blätter in vier Theile
getrennt, von denen jedem Evangelium einer vorgeheftet ist, ohne
Rücksicht darauf, ob das betreffende Evangelium gerade diese
Erzählungen enthält oder nicht. Nachklänge der Antike finden sich
noch in diesen Malereien, wie sie sich in den byzantinischen
Miniaturen, woran die vorliegenden anschließen, in
ununterbrochener Folge erhalten und fortgebildet haben. Ein zweites
Manuscript aus Echternach, vom 12. Jahrhundert, mit späteren
Zusätzen, zeigte hübsche Miniaturen der älteren Periode, daneben
schöne Federzeichnungen des 13.–14. Jahrhunderts. An eine Reihe
von Evangelien, Lectionarien, Brevieren, Vulgaten u. A., vom 10.–15.
Jahrh., aus der Dombibliothek zu Trier, dem Archiv zu Düsseldorf und
aus Privatbesitz, wozu besonders Herr H. Garthe aus Köln sehr
werthvolles Material beigesteuert, konnte man die alten Studien neu
auffrischen und mit Vergnügen in kostbaren Exemplaren die
Geschichte der Miniaturmalerei verfolgen. Des Inhaltes wegen
erwähnen wir hier noch einen Tractatus de virtutibus et viciis, 13.
Jhdt., einen schön ausgestatteten astronomischen Tractat des 13.
Jahrh., das Cartular des Erzbischofs Balduin von Trier mit den
interessanten Miniaturen und Federzeichungen, welche die Wahl,
Krönung, den Römerzug und Tod Kaiser Heinrich’s VII. darstellen,
sowie eine Matrikel der Universität Köln vom 14.–18. Jahrh., die, mit
Ausnahme des Balduineums, im Besitze des Herrn H. Garthe in Köln
sich befinden.
Wir können hier unsern Lesern kein vollständiges Verzeichniß
geben, ja selbst auf manche sehr wichtige und interessante Werke
nicht eingehen; wir hatten nur die Absicht, hervorzuheben, von
welcher Bedeutung die Ausstellung war, die aus jeder Zeitperiode
und von jedem Gebiete etwas Wichtiges vorgeführt hat. Wir
schließen mit dem früher schon ausgesprochenen Wunsche, daß
ähnliche Ausstellungen recht häufig im Interesse des Studiums
veranstaltet werden möchten. Es gibt keine öffentliche Sammlung,
die in der Lage wäre, alle kunstgeschichtlich wichtigen Stücke, oder
auch nur so viele vorzuführen, daß wir die ganze Kunst- und
Kulturgeschichte in ihren Werken ersten Ranges studieren könnten.
Die meisten Sammlungen bestehen der Mehrzahl nach aus
keineswegs unwichtigen, aber jenen ausgezeichneten Werken
gegenüber doch immer untergeordneten Gegenständen, und das
Studium der Kunstgeschichte, das sich ausschließlich auf eine
einzelne solcher Sammlungen gründete, würde ein falsches Resultat
ergeben. Die Zerstreuung dieser höchst bedeutenden Werke, läßt
das Wichtigste für das Studium, die unmittelbare Vergleichung, nicht
zu, und so bedarf die Wissenschaft derartiger Ausstellungen, die das
sonst zerstreute Material zeitweise neben einander bringt.
N ü r n b e r g . A . E s s e n w e i n .
Archäologische Funde in Böhmen.
(Mit einer Tafel Abbildungen.)
Im Anschlusse an meine, nun schon seit Jahren in diesen Blättern
fortgesetzten Mittheilungen über archäologische Funde in Böhmen
gebe ich hier wieder nähere Details über einige Funde, die mir theils
durch Autopsie, theils durch schriftliche Berichte von
Alterthumsfreunden, mit denen ich in Verbindung stehe, bekannt
wurden. Auch diesmal wieder habe ich mehrere Funde aus jenem
reichen Gebiete zwischen Erzgebirge, Eger und Elbe, dem
sogenannten Flachland des Saazer und Leitmeritzer Kreises, zu
berichten.
B r ü x , S t a d t i n B ö h m e n , a n d e r B i e l a . Nach einer
mir vom dortigen städtischen Herrn Rentmeister Cori, einem
wackeren Alterthumsfreunde, zugegangenen Mittheilung wurden in
der nächsten Nähe der Stadt Brüx im Jahre 1865 zwei Gräber mit
Steinobjekten entdeckt. Das eine lag östlich der Stadt, am linken
Ufer der Biela, ungefähr 300 Klafter von diesem Flüßchen selbst
entfernt, eine Klafter tief in der Erde. Es enthielt, von Steinen
umgeben, ein Skelett, das aber, sowie die daneben stehenden
Todtentöpfe, ungeschickterweise zerschlagen wurde. Neben dem
Skelette lagen ferner zwei Steinobjekte: ein Hammer von Serpentin,
12 Centim. lang, 5 Centim. breit, das Stielloch in der Mitte; das
hintere Ende des Hammers ist walzenförmig zugerundet (Fig. 1);
dann ein Meißel von dunkelgrauem Feuerstein 6,1 Centim. lang, an
der scharfen Schneide 4,5 Centim. breit. Beide Objekte sind ganz
glatt zugeschliffen und sehr zierlich gearbeitet. Sie kamen in die
Sammlung Czernin nach Petersburg. — Ungefähr 1000 Klafter von
dieser Fundstelle entfernt, traf man bald darauf am rechten
Bielaufer, drei Fuß tief in der Erde, beim Roden eines Ackers zum
Hopfenbau ein ähnliches Grab; es war kreisrund, am Boden mit
einem Kranze weißer Kieselsteine umlegt. Der Durchmesser dieses
Steinkranzes betrug drei Fuß. In der Mitte lag neben Knochenresten
und Gefäßfragmenten eine Steinaxt (Serpentin), streng keilförmig
zugeschliffen, das 2,8 Centim. im Durchmesser haltende Stielloch
dem breiteren Ende näher. Die Axt ist 22 Centim. lang, 9 Centim.
breit, also sehr wuchtig; sie kam an die Brüxer Realschule.
S t e i n w a s s e r , Dorf, zwei Stunden südlich von Brüx. Bei
Grabungen auf einem Felde stießen die Arbeiter in einer Tiefe von 3
Fuß auf zwei Skelettgräber. In dem einen lag ein Skelett ohne
jegliche Beigabe; in dem zweiten fanden sich neben dem Skelette
Fragmente eines aus großen, hohlen Bronzehalbkugeln bestehenden
Armringes. Dasselbe ist dem bei Lindenschmitt „Alterthümer unserer
heidnischen Vorzeit“, Heft IX, Taf. I abgebildeten, bei Passau
gefundenen, vollständig ähnlich. Mehrere solcher Armringe wurden
schon früher in der nächsten Nähe von Steinwasser auf dem
Todtenfelde von Morawes gefunden. Die einzelnen Buckeln haben
einen Längedurchmesser von 4,1 Centim., Breitedurchmesser 3,2
Centim. Der Verschluß geschah durch einen Dornfortsatz, der in eine
Nuth des nächsten Buckels umgebogen werden konnte. Erhalten
sind vier solcher Buckeln; ihrer Größe nach zu urtheilen bestand das
ganze Armband aus sieben Buckeln. Die Schädel kamen an Dr. A.
Weisbach, die Bronzeobjekte an mich.
W e b e r s c h a n , Dorf zwischen Brüx und Postelberg, eine
Stunde nördlich von letzterer Stadt entfernt. Beim Lehmgraben traf
ein Grundbesitzer 2½ Schuh unter der Erde ein Aschengrab. Es war
kreisrund und in demselben stand eine Urne, die leider zerschlagen
wurde; in ihr lagen nebst Asche, Erde und Knochen eine 7,5 Centim.
lange, schwache Bronzenadel mit scheibenförmigem Kopfe, Fig. 2;
eine 3,2 Centim. lange Bronzepfeilspitze, Fig. 3; endlich ein 21,8
Gramme schweres Bronzeklümpchen, wahrscheinlich ein beim
Leichenbrand zusammengeschmolzenes Objekt. Sämmtliche
gefundene Gegenstände kamen an mich.
N e h a s i t z , Dorf zwischen Brüx und Saaz. Die Grabungen auf
dem bei Nehasitz gelegenen, in diesen Blättern schon wiederholt
erwähnten Todtenfelde wurden auch im Jahre 1867, freilich meist
nur im agricolen Interesse, fortgesetzt und lieferten eine ziemlich
ergiebige Ausbeute an Bronzen, Urnen und Geräthen aus Stein, Bein
und Hirschhorn sammt einer großen Anzahl Knochen mitbestatteter
Thiere. Während dreier Tage war ich bei den Grabungen auf dem
genannten Todtenfelde selbst anwesend. Wahrscheinlich dürften die
Abgrabungen bei Nehasitz bald zu Ende kommen. Ich gehe eben
damit um, die gewonnenen Resultate zusammenzustellen und in
einer eigenen Monographie zu veröffentlichen.
Von Jahr zu Jahr mehren sich die Funde in diesem Theil des
nordwestlichen Böhmens; sie beweisen, wie stark diese Gegend,
freilich eine der gesegnetsten und fruchtbarsten Böhmens, seit den
ältesten Zeiten bewohnt gewesen ist. Die ungemein zahlreichen
Gräber zeigen sehr bedeutende Verschiedenheiten in der
Construction, wie in der Art der Beigaben und deuten auf zeitlich
weit getrennte Perioden hin. Die wichtigsten Formen sind:
1. P l a t t e n g r ä b e r i n d e r E r d e m i t S k e l e t t e n u n d
S t e i n o b j e k t e n . Solche wurden schon im vorigen Jahrhundert
(1788 und 1792) bei Weboschan, unweit Teplitz, entdeckt; sie waren
6 Fuß lang, an den Seiten mit Steinplatten ausgelegt und mit einer
Steinplatte geschlossen. In der Steinkiste lag je ein Skelett; als
Beigaben fanden sich in dem einen Grabe zwei Urnen, in einem
zweiten nebst zwei Urnen drei Steinobjekte, und zwar zwei Aexte
(Basalt) und ein Keil (Hornstein). In dieselbe Klasse gehören auch
die beiden merkwürdigen, im Jahre 1866 bei Kojetitz, einem Gute
des Herrn Bachofen von Echt, zwischen Prag und Melnik,
aufgefundenen Plattengräber. Sie waren an der Erdoberfläche mit
einem Steinkreise von 9 Klaftern Durchmesser umstellt; in der Mitte
des Steinkreises stieß man 2½ Fuß tief unter der Erdoberfläche auf
eine große, roh zubehauene Kalksteinplatte; darunter lag ein Skelett,
zu dessen Häupten eine Urne aus schwarzem, wenig gebranntem
Thon, die einzige ärmliche Beigabe des Todten. Im zweiten Grabe
traf man unter einer ähnlichen Steinplatte zwei Skelette, das eines
Erwachsenen und das eines Kindes. Die Beigaben bestanden aus
einer Urne, einem Steinkeil aus Serpentin und zwei Pfriemen von vier
und acht Zoll Länge, aus gespaltenen Röhrenknochen verfertigt und
scharf zugespitzt[243]. Hierher zu rechnen ist auch das eine der
Gräber von Brüx, sowie zwei ähnliche von Hawran, einem Dorfe
nächst Brüx.
2) R u n d g r ä b e r : a) mit Steinobjekten; hierher gehört das
zweite der oben beschriebenen Gräber von Brüx; b) mit
Bronzeobjekten. Die Skelettgräber dieser Art liegen 2½-9 Fuß tief
unter der Erde, ihr Durchmesser wechselt zwischen 4–12 Fuß. Sie
sind vollkommen kreisrund, entweder brunnenartig, oder nach unten
sich verengend; die Leiche ruht darin bald in hockender Stellung
bestattet, bald auf dem Boden des Grabes ausgestreckt, im letzteren
Falle stets mit dem Kopfe nach Norden; in einzelnen Fällen ist sie auf
ein Steinlager gebettet, oder mit Steinen umlegt. Neben den Skelett-
finden sich auch B r a n d g r ä b e r ; sie sind weniger tief (1½ Fuß)
und haben einen Durchmesser von circa 2–4 Fuß. Sie enthalten eine
größere, die Asche bergende Urne, worinnen außerdem meist noch
mehrere kleine Gefäße, Töpfchen, Schüsseln und Schalen stehen.
Auch in den Skelettgräbern finden sich regelmäßig ähnliche Gefässe.
Skelett- wie Brandgräber enthalten außerdem Bronzeobjekte, soviel
mir bekannt ist, vorzugsweise Schmuckgegenstände, Armringe,
Fibeln, Nadeln, dann Thonscheiben und Kügelchen von Thon und
Stein. Beispiele dieser Bestattungsweise liefern die Todtenfelder von
Nehasitz und von Morawes.
3) P l a t t e n g r ä b e r i n d e r E r d e , mit Bronzen. a)
Skelettgräber; sie sind viereckig lang, an den Seiten mit Steinplatten
ausgelegt, mit einer Steinplatte geschlossen, und enthalten als
Beigaben nebst Bronzeobjekten, ebenfalls meist
Schmuckgegenstände. Auch hier findet sich die hockende
Bestattungsweise neben der liegenden. Beispiele liefern Schallan bei
Teplitz und Saaz[244]. b) Brandgräber, 4 Fuß lang, 2 Fuß breit, an den
Wänden mit Steinplatten ausgelegt und mit einer Steinplatte
überdeckt. In der aschenhaltigen Erde standen je 4 Urnen mit
Asche, Erde, Knochenfragmenten und einzelnen Bronzeobjekten.
Beispiele dieser Bestattungsweise lieferten Teplitz und Bilin[245].
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
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.
Let us accompany you on the journey of exploring knowledge and
personal growth!
textbookfull.com

Weitere ähnliche Inhalte

PPT
Introduction to JEE
PDF
JavaFX goes open source
PDF
Die wichtigsten Technologien für die Entwicklung von Webanwendungen
PDF
OC|Webcast "Java heute" vom 28.09.2021
PDF
Article - JDK 8 im Fokus der Entwickler
PPT
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
PDF
Go In Action Second Edition Meap V03 2 Chapters 1 To 4 Of 11 Andrew Walker
PDF
Implementing Devsecops With Docker And Kubernetes Jos Manuel Ortega Candel
Introduction to JEE
JavaFX goes open source
Die wichtigsten Technologien für die Entwicklung von Webanwendungen
OC|Webcast "Java heute" vom 28.09.2021
Article - JDK 8 im Fokus der Entwickler
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Go In Action Second Edition Meap V03 2 Chapters 1 To 4 Of 11 Andrew Walker
Implementing Devsecops With Docker And Kubernetes Jos Manuel Ortega Candel

Ähnlich wie Java in a Nutshell A Desktop Quick Reference 7th Edition Benjamin J. Evans (20)

PDF
The Rust Programming Language 1st Edition The Rust Project Developpers
ODP
Jalimo Slides Linuxtag2007
PDF
iOS 9 Programming Fundamentals with Swift Swift Xcode and Cocoa Basics 2nd Ed...
PPT
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
PDF
OC|Webcast "Java heute" vom 24.08.2021
PDF
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
PDF
Struts 2 Design and Programming A Tutorial 2nd Edition Budi Kurniawan
PPTX
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
PDF
RESTful Rails Development Building Open Applications and Services 1st Edition...
PDF
Microservices mit Java und Go im Vergleich
PDF
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
PDF
Warum empfehle ich meinen Kunden das Spring Framework?
PDF
JavaScript und trotzdem Softwerker
PPTX
Endlich! Der Unterschied zwischen Java und JavaScript
PDF
Integrating Novell Open Enterprise Server for Linux
PDF
Javascript info Ebook Part 1 The JavaScript language 1st Edition Ilya Kantor
PDF
Webcast Nr. 3 - Java Entwicklung mit der SAP Cloud Platform
PPT
Java und Python - Das Beste aus beiden Welten nutzen
PDF
Rust in Action MEAP Ver 16 1st Edition Ts Mcnamara
PDF
OpenCms 8.5 kurz vorgestellt [LinuxTag 2013]
The Rust Programming Language 1st Edition The Rust Project Developpers
Jalimo Slides Linuxtag2007
iOS 9 Programming Fundamentals with Swift Swift Xcode and Cocoa Basics 2nd Ed...
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
OC|Webcast "Java heute" vom 24.08.2021
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
Struts 2 Design and Programming A Tutorial 2nd Edition Budi Kurniawan
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
RESTful Rails Development Building Open Applications and Services 1st Edition...
Microservices mit Java und Go im Vergleich
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
Warum empfehle ich meinen Kunden das Spring Framework?
JavaScript und trotzdem Softwerker
Endlich! Der Unterschied zwischen Java und JavaScript
Integrating Novell Open Enterprise Server for Linux
Javascript info Ebook Part 1 The JavaScript language 1st Edition Ilya Kantor
Webcast Nr. 3 - Java Entwicklung mit der SAP Cloud Platform
Java und Python - Das Beste aus beiden Welten nutzen
Rust in Action MEAP Ver 16 1st Edition Ts Mcnamara
OpenCms 8.5 kurz vorgestellt [LinuxTag 2013]
Anzeige

Java in a Nutshell A Desktop Quick Reference 7th Edition Benjamin J. Evans

  • 1. Java in a Nutshell A Desktop Quick Reference 7th Edition Benjamin J. Evans download https://textbookfull.com/product/java-in-a-nutshell-a-desktop- quick-reference-7th-edition-benjamin-j-evans/ Download full version ebook from https://textbookfull.com
  • 2. We believe these products will be a great fit for you. Click the link to download now, or visit textbookfull.com to discover even more! Python in a Nutshell A Desktop Quick Reference 3rd Edition Alex Martelli https://textbookfull.com/product/python-in-a-nutshell-a-desktop- quick-reference-3rd-edition-alex-martelli/ C 7 0 in a Nutshell The Definitive Reference 7th Edition Joseph Albahari https://textbookfull.com/product/c-7-0-in-a-nutshell-the- definitive-reference-7th-edition-joseph-albahari/ Java quick syntax reference Second Edition Olsson https://textbookfull.com/product/java-quick-syntax-reference- second-edition-olsson/ A Dictionary of Computer Science (Oxford Quick Reference) 7th Edition Andrew Butterfield https://textbookfull.com/product/a-dictionary-of-computer- science-oxford-quick-reference-7th-edition-andrew-butterfield/
  • 3. Java EE 6 Pocket Guide A Quick Reference for Simplified Enterprise Java Development 1st Edition Gupta Arun https://textbookfull.com/product/java-ee-6-pocket-guide-a-quick- reference-for-simplified-enterprise-java-development-1st-edition- gupta-arun/ C# 9.0 in a Nutshell: The Definitive Reference 1st Edition Joseph Albahari https://textbookfull.com/product/c-9-0-in-a-nutshell-the- definitive-reference-1st-edition-joseph-albahari/ Android Software Internals Quick Reference: A Field Manual and Security Reference Guide to Java-based Android Components 1st Edition James Stevenson https://textbookfull.com/product/android-software-internals- quick-reference-a-field-manual-and-security-reference-guide-to- java-based-android-components-1st-edition-james-stevenson/ Eric Hobsbawm: A Life in History Richard J. Evans https://textbookfull.com/product/eric-hobsbawm-a-life-in-history- richard-j-evans/ Managing infectious diseases in child care and schools a quick reference guide Aronson https://textbookfull.com/product/managing-infectious-diseases-in- child-care-and-schools-a-quick-reference-guide-aronson/
  • 5. Java in a Nutshell, Seventh Edition by Ben Evans and David Flanagan Copyright © 2019 Benjamin J. Evans and David Flanagan. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com/safari). For more information, contact our corporate/institutional sales department: 800­998­9938 or corporate@oreilly.com. Editor: Virginia Wilson Production Editor: Justin Billing Copyeditor: Jasmine Kwityn Proofreader: Rachel Monaghan Indexer: WordCo Indexing Services, Inc. Interior Designer: David Futato Cover Designer: Karen Montgomery Illustrator: Rebecca Demarest December 2018: Seventh Edition Revision History for the Seventh Edition 2018­11­30: First Release See http://oreilly.com/catalog/errata.csp?isbn=9781492037255 for release details. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Java in a Nutshell, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc. The views expressed in this work are those of the authors, and do not represent the publisher’s Playlists History Topics Tutorials Offers & Deals Highlights Settings Support Sign Out
  • 6. views. While the publisher and the authors have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the authors disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights. 978­1­492­03725­5 [LSI]
  • 7. Part I. Introducing Java Part I is an introduction to the Java language and the Java platform. These chapters provide enough information for you to get started using Java right away: Chapter 1, Introduction to the Java Environment Chapter 2, Java Syntax from the Ground Up Chapter 3, Object­Oriented Programming in Java Chapter 4, The Java Type System Chapter 5, Introduction to Object­Oriented Design in Java Chapter 6, Java’s Approach to Memory and Concurrency History Topics Tutorials Offers & Deals Highlights Settings Support Sign Out
  • 8. Chapter 1. Introduction to the Java Environment Welcome to Java 11. That version number probably surprises you as much as it does us. It seems like only yesterday that Java 5 was the new thing, and yet here we are, 14 years and 6 major versions later. You may be coming to the Java ecosystem from another language, or maybe this is your first programming language. Whatever road you may have traveled to get here, welcome—we’re glad you’ve arrived. Java is a powerful, general­purpose programming environment. It is one of the most widely used programming languages in the world, and has been exceptionally successful in business and enterprise computing. In this chapter, we’ll set the scene by describing the Java language (which programmers write their applications in), the Java Virtual Machine (which executes those applications), and the Java ecosystem (which provides a lot of the value of the programming environment to development teams). We’ll briefly cover the history of the Java language and virtual machine, before moving on to discuss the lifecycle of a Java program and clear up some common questions about the differences between Java and other environments. At the end of the chapter, we’ll introduce Java security, and discuss some of the aspects of Java that relate to secure coding. The Language, the JVM, and the Ecosystem The Java programming environment has been around since the late 1990s. It comprises the Java language, and the supporting runtime, otherwise known as the Java Virtual Machine (JVM). At the time that Java was initially developed, this split was considered novel, but recent trends History Topics Tutorials Offers & Deals Highlights Settings Support Sign Out .
  • 9. in software development have made it more commonplace. Notably, Microsoft’s .NET environment, announced a few years after Java, adopted a very similar approach to platform architecture. One important difference between Microsoft’s .NET platform and Java is that Java was always conceived as a relatively open ecosystem of multiple vendors, albeit led by a steward who owns the technology. Throughout Java’s history, these vendors have both cooperated and competed on aspects of Java technology. One of the main reasons for the success of Java is that this ecosystem is a standardized environment. This means there are specifications for the technologies that comprise the environment. These standards give the developer and consumer confidence that the technology will be compatible with other components, even if they come from a different technology vendor. The current steward of Java is Oracle Corporation (who acquired Sun Microsystems, the originator of Java). Other corporations, such as Red Hat, IBM, Amazon, AliBaba, SAP, Azul Systems, and Fujitsu are also heavily involved in producing implementations of standardized Java technologies. TIP As of Java 11, the primary reference implementation of Java is the open source OpenJDK, which many of these companies collaborate on and base their shipping products upon. Java actually comprises several different but related environments and specifications, such as Java Mobile Edition (Java ME), Java Standard Edition (Java SE), and Java Enterprise Edition (Java EE). In this book, we’ll only cover Java SE, version 11, with some historical notes related to when certain features were introduced into the platform. We will have more to say about standardization later, so let’s move on to discuss the Java language and JVM as separate but related concepts. What Is the Java Language? Java programs are written as source code in the Java language. This is a human­readable programming language, which is strictly class based and object oriented. The language syntax is deliberately modeled on that of C and C++ and it was explicitly intended to be familiar to 1 2
  • 10. programmers coming from those languages. NOTE Although the source code is similar to C++, in practice Java includes features and a managed runtime that has more in common with more dynamic languages such as Smalltalk. Java is considered to be relatively easy to read and write (if occasionally a bit verbose). It has a rigid grammar and simple program structure, and is intended to be easy to learn and to teach. It builds on industry experience with languages like C++ and tries to remove complex features as well as preserving “what works” from previous programming languages. Overall, Java is intended to provide a stable, solid base for companies to develop business­ critical applications. As a programming language, it has a relatively conservative design and a slow rate of change. These properties are a conscious attempt to serve the goal of protecting the investment that organizations have made in Java technology. The language has undergone gradual revision (but no complete rewrites) since its inception in 1996. This does mean that some of Java’s original design choices, which were expedient in the late 1990s, are still affecting the language today—see Chapters 2 and 3 for more details. Java 8 added the most radical changes seen in the language for almost a decade (some would say since the birth of Java). Features like lambda expressions and the overhaul of the core Collections code were enormously popular and changed forever the way that Java developers write code. Since then, the platform has produced a release (Java 9) that adds a major (and long­ delayed) feature: the platform modules system (JPMS). With that release, the project has transitioned to a new, much faster release model where new Java versions are released every six months—bringing us up to Java 11. The Java language is governed by the Java Language Specification (JLS), which defines how a conforming implementation must behave. What Is the JVM? The JVM is a program that provides the runtime environment necessary for Java programs to execute. Java programs cannot run unless there is a JVM available for the appropriate hardware and OS platform we wish to execute on.
  • 11. Fortunately, the JVM has been ported to run on a large number of environments—anything from a set­top box or Blu­ray player to a huge mainframe will probably have a JVM available for it. Java programs are typically started from a command line like this: java <arguments> <program name> This brings up the JVM as an operating system process that provides the Java runtime environment, and then executes our program in the context of the freshly started (and empty) virtual machine. It is important to understand that when the JVM takes in a Java program for execution, the program is not provided as Java language source code. Instead, the Java language source must have been converted (or compiled) into a form known as Java bytecode. Java bytecode must be supplied to the JVM in a format called class files (which always have a .class extension). The JVM provides an execution environment for the program. It starts an interpreter for the bytecode form of the program that steps through one bytecode instruction at a time. However, production JVMs also provide a runtime compiler that will accelerate the important parts of the program by replacing them with equivalent compiled machine code. You should also be aware that both the JVM and the user program are capable of spawning additional threads of execution, so that a user program may have many different functions running simultaneously. The design of the JVM built on many years of experience with earlier programming environments, notably C and C++, so we can think of it as having several different goals— which are all intended to make life easier for the programmer: Comprise a container for application code to run inside Provide a secure and reliable execution environment as compared to C/C++ Take memory management out of the hands of developers Provide a cross­platform execution environment These objectives are often mentioned together in discussions of the platform. We’ve already mentioned the first of these goals, when we discussed the JVM and its bytecode interpreter—it functions as the container for application code.
  • 12. We’ll discuss the second and third goals in Chapter 6, when we talk about how the Java environment deals with memory management. The fourth goal, sometimes called “write once, run anywhere” (WORA), is the property that Java class files can be moved from one execution platform to another, and they will run unaltered provided a JVM is available. This means that a Java program can be developed (and converted to class files) on a machine running macOS, and then the class files can be moved to Linux or Microsoft Windows (or other platforms) and the Java program will run without any further work needed. NOTE The Java environment has been very widely ported, including to platforms that are very different from mainstream platforms like Linux, macOS, and Windows. In this book, we use the phrase “most implementations” to indicate those platforms that the majority of developers are likely to encounter; macOS, Windows, Linux, BSD Unix, and the like are all considered “mainstream platforms” and count within “most implementations.” In addition to these four primary goals, there is another aspect of the JVM’s design that is not always recognized or discussed—it makes use of runtime information to self­manage. Software research in the 1970s and 1980s revealed that the runtime behavior of programs has a large amount of interesting and useful patterns that cannot be deduced at compile time. The JVM was the first truly mainstream platform to make use of this research. It collects runtime information to make better decisions about how to execute code. That means that the JVM can monitor and optimize a program running on it in a manner not possible for platforms without this capability. A key example is the runtime fact that not all parts of a Java program are equally likely to be called during the lifetime of the program—some portions will be called far, far more often than others. The Java platform takes advantage of this fact with a technology called just­in­time (JIT) compilation. In the HotSpot JVM (which was the JVM that Sun first shipped as part of Java 1.3, and is still in use today), the JVM first identifies which parts of the program are called most often—the “hot methods.” Then, the JVM compiles these hot methods directly into machine code, bypassing the
  • 13. JVM interpreter. The JVM uses the available runtime information to deliver higher performance than was possible from purely interpreted execution. In fact, the optimizations that the JVM uses now in many cases produce performance that surpasses compiled C and C++ code. The standard that describes how a properly functioning JVM must behave is called the JVM Specification. What Is the Java Ecosystem? The Java language is easy to learn and contains relatively few abstractions, compared to other programming languages. The JVM provides a solid, portable, high­performance base for Java (or other languages) to execute on. Taken together, these two connected technologies provide a foundation that businesses can feel confident about when choosing where to base their development efforts. The benefits of Java do not end there, however. Since Java’s inception, an extremely large ecosystem of third­party libraries and components has grown up. This means that a development team can benefit hugely from the existence of connectors and drivers for practically every technology imaginable—both proprietary and open source. In the modern technology ecosystem it is now rare indeed to find a technology component that does not offer a Java connector. From traditional relational databases, to NoSQL, to every type of enterprise monitoring system, to messaging systems, to Internet of Things (IoT)—everything integrates with Java. It is this fact that has been a major driver of adoption of Java technologies by enterprises and larger companies. Development teams have been able to unlock their potential by making use of preexisting libraries and components. This has promoted developer choice and encouraged open, best­of­breed architectures with Java technology cores. NOTE Google’s Android environment is sometimes thought of as being “based on Java.” However, the picture is actually more complicated. Android code is written in Java but originally used a different implementation of Java’s class libraries along with a cross compiler to convert to a different file format for a non­Java virtual machine.
  • 14. The combination of a rich ecosystem and a first­rate virtual machine with an open standard for program binaries makes the Java platform a very attractive execution target. In fact, there are a large number of non­Java languages that target the JVM and also interoperate with Java (which allows them to piggy­back off the platform’s success). These languages include Kotlin, Scala, Groovy, and many others. While all of them are small compared to Java, they have distinct niches within the Java world, and provide a source of innovation and healthy competition to Java. A Brief History of Java and the JVM Java 1.0 (1996) This was the first public version of Java. It contained just 212 classes organized in eight packages. The Java platform has always had an emphasis on backward compatibility, and code written with Java 1.0 will still run today on Java 11 without modification or recompilation. Java 1.1 (1997) This release of Java more than doubled the size of the Java platform. This release introduced “inner classes” and the first version of the Reflection API. Java 1.2 (1998) This was a very significant release of Java; it tripled the size of the Java platform. This release marked the first appearance of the Java Collections API (with sets, maps, and lists). The many new features in the 1.2 release led Sun to rebrand the platform as “the Java 2 Platform.” The term “Java 2” was simply a trademark, however, and not an actual version number for the release. Java 1.3 (2000) This was primarily a maintenance release, focused on bug fixes, stability, and performance improvements. This release also brought in the HotSpot Java Virtual Machine, which is still in use today (although heavily modified and improved since then). Java 1.4 (2002) This was another fairly big release, adding important new functionality such as a higher­ performance, low­level I/O API; regular expressions for text handling; XML and XSLT libraries; SSL support; a logging API; and cryptography support.
  • 15. Java 5 (2004) This large release of Java introduced a number of changes to the core language itself including generic types, enumerated types (enums), annotations, varargs methods, autoboxing, and a new for loop. These changes were considered significant enough to change the major version number, and to start numbering as major releases. This release included 3,562 classes and interfaces in 166 packages. Notable additions included utilities for concurrent programming, a remote management framework, and classes for the remote management and instrumentation of the Java VM itself. Java 6 (2006) This release was also largely a maintenance and performance release. It introduced the Compiler API, expanded the usage and scope of annotations, and provided bindings to allow scripting languages to interoperate with Java. There were also a large number of internal bug fixes and improvements to the JVM and the Swing GUI technology. Java 7 (2011) The first release of Java under Oracle’s stewardship included a number of major upgrades to the language and platform. The introduction of try­with­resources and the NIO.2 API enabled developers to write much safer and less error­prone code for handling resources and I/O. The Method Handles API provided a simpler and safer alternative to reflection; in addition, it opened the door for invokedynamic (the first new bytecode since version 1.0 of Java). Java 8 (2014) (LTS) This was a huge release—potentially the most significant changes to the language since Java 5 (or possibly ever). The introduction of lambda expressions provided the ability to significantly enhance the productivity of developers, the Collections were updated to make use of lambdas, and the machinery required to achieve this marked a fundamental change in Java’s approach to object orientation. Other major updates include a new date and time API, and major updates to the concurrency libraries. Java 9 (2017) Significantly delayed, this release introduced the new platform modularity feature, which allows Java applications to be packaged into deployment units and modularize the platform runtime. Other changes include a new default garbage collection algorithm, a new API for handling processes, and some changes to the way that frameworks can access the internals.
  • 16. Java 10 (March 2018) This marks the first release under the new release cycle. This release contained a relatively small amount of new features (due to its six­month development lifetime). New syntax for type inference was introduced, along with some internal changes (including GC tweaks and an experimental new compiler). Java 11 (September 2018) (LTS) The current version, also developed over a short six­month window, this release is the first modular Java to be considered as a long­term support (LTS) release. It adds relatively few new features that are directly visible to the developer—primarily Flight Recorder and the new HTTP/2 API. There are some additional internal changes, but this release is primarily for stabilization. As it stands, the only current production versions are Java 8 and 11—the LTS releases. Due to the highly significant changes that are introduced by modules, Java 8 has been grandfathered in as an LTS release to provide extra time for teams and applications to migrate to a supported modular Java. The Lifecycle of a Java Program To better understand how Java code is compiled and executed, and the difference between Java and other types of programming environments, consider the pipeline in Figure 1­1. Figure 1-1. How Java code is compiled and loaded This starts wth Java source, and passes it through the javac program to produce class files— which contain the source code compiled to Java bytecode. The class file is the smallest unit of
  • 17. functionality the platform will deal with, and the only way to get new code into a running program. New class files are onboarded via the classloading mechanism (see Chapter 10 for a lot more detail on how classloading works). This makes the new type available to the interpreter for execution. Frequently Asked Questions In this section, we’ll discuss some of the most frequently asked questions about Java and the lifecycle of programs written in the Java environment. WHAT IS BYTECODE? When developers are first introduced to the JVM, they sometimes think of it as “a computer inside a computer.” It’s then easy to imagine bytecode as “machine code for the CPU of the internal computer” or “machine code for a made­up processor.” In fact, bytecode is not actually very similar to machine code that would run on a real hardware processor. Instead, computer scientists would call bytecode a type of intermediate representation—a halfway house between source code and machine code. The whole aim of bytecode is to be a format that can be executed efficiently by the JVM’s interpreter. IS JAVAC A COMPILER? Compilers usually produce machine code, but javac produces bytecode, which is not that similar to machine code. However, class files are a bit like object files (like Windows .dll files, or Unix .so files)—and they are certainly not human readable. In theoretical computer science terms, javac is most similar to the front half of a compiler—it creates the intermediate representation that can then be used later to produce (emit) machine code. However, because creation of class files is a separate build­time step that resembles compilation in C/C++, many developers consider running javac to be compilation. In this book, we will use the terms “source code compiler” or "javac compiler” to mean the production of class files by javac. We will reserve “compilation” as a standalone term to mean JIT compilation—as it’s JIT compilation that actually produces machine code. WHY IS IT CALLED “BYTECODE”?
  • 18. The instruction code (opcode) is just a single byte (some operations also have parameters that follow them in the bytestream), so there are only 256 possible instructions. In practice, some are unused—about 200 are in use, but some of them aren’t emitted by recent versions of javac. IS BYTECODE OPTIMIZED? In the early days of the platform, javac produced heavily optimized bytecode. This turned out to be a mistake. With the advent of JIT compilation, the important methods are going to be compiled to very fast machine code. It’s therefore very important to make the job of the JIT compiler easier—as there are much bigger gains available from JIT compilation than there are from optimizing bytecode, which will still have to be interpreted. IS BYTECODE REALLY MACHINE INDEPENDENT? WHAT ABOUT THINGS LIKE ENDIANNESS? The format of bytecode is always the same, regardless of what type of machine it was created on. This includes the byte ordering (sometimes called “endianness”) of the machine. For readers who are interested in the details, bytecode is always big­endian. IS JAVA AN INTERPRETED LANGUAGE? The JVM is basically an interpreter (with JIT compilation to give it a big performance boost). However, most interpreted languages (such as PHP, Perl, Ruby, and Python) directly interpret programs from source form (usually by constructing an abstract syntax tree from the input source file). The JVM interpreter, on the other hand, requires class files—which, of course, require a separate source code compilation step with javac. CAN OTHER LANGUAGES RUN ON THE JVM? Yes. The JVM can run any valid class file, so this means that non­Java languages can run on the JVM in one of two ways. First, they could have a source code compiler (similar to javac) that produces class files, which would run on the JVM just like Java code (this is the approach taken by languages like Scala). Alternatively, a non­Java language could implement an interpreter and runtime in Java, and then interpret the source form of their language directly. This second option is the approach taken by languages like JRuby (but JRuby has a very sophisticated runtime that is capable of secondary JIT compilation in some circumstances). Java Security Java has been designed from the ground up with security in mind; this gives it a great advantage over many other existing systems and platforms. The Java security architecture was designed by security experts and has been studied and probed by many other security experts since the
  • 19. inception of the platform. The consensus is that the architecture itself is strong and robust, without any security holes in the design (at least none that have been discovered yet). Fundamental to the design of the security model is that bytecode is heavily restricted in what it can express—there is no way, for example, to directly address memory. This cuts out entire classes of security problems that have plagued languages like C and C++. Furthermore, the VM goes through a process known as bytecode verification whenever it loads an untrusted class, which removes a further large class of problems (see Chapter 10 for more about bytecode verification). Despite all this, however, no system can guarantee 100% security, and Java is no exception. While the design is still theoretically robust, the implementation of the security architecture is another matter, and there is a long history of security flaws being found and patched in particular implementations of Java. In particular, the release of Java 8 was delayed, at least partly, due to the discovery of a number of security problems that required considerable effort to fix. In all likelihood, security flaws will continue to be discovered (and patched) in Java VM implementations. For practical server­side coding, Java remains perhaps the most secure general­purpose platform currently available, especially when kept patched up to date. Comparing Java to Other Languages In this section, we’ll briefly highlight some differences between the Java platform and other programming environments you may be familiar with. Java Compared to C Java is object oriented; C is procedural. Java is portable as class files; C needs to be recompiled. Java provides extensive instrumentation as part of the runtime. Java has no pointers and no equivalent of pointer arithmetic. Java provides automatic memory management via garbage collection. Java has no ability to lay out memory at a low level (no structs). Java has no preprocessor. Java Compared to C++
  • 20. Java Compared to C++ Java has a simplified object model compared to C++. Java’s dispatch is virtual by default. Java is always pass­by­value (but one of the possibilities for Java’s values is object references). Java does not support full multiple inheritance. Java’s generics are less powerful (but also less dangerous) than C++ templates. Java has no operator overloading. Java Compared to Python Java is statically typed; Python is dynamically typed. Java is multithreaded; Python only allows one thread to execute Python at once. Java has a JIT; the main implementation of Python does not. Java’s bytecode has extensive static checks; Python’s bytecode does not. Java Compared to JavaScript Java is statically typed; JavaScript is dynamically typed. Java uses class­based objects; JavaScript is prototype based. Java provides good object encapsulation; JavaScript does not. Java has namespaces; JavaScript does not. Java is multithreaded; JavaScript is not. Answering Some Criticisms of Java Java has had a long history in the public eye and, as a result, has attracted its fair share of criticism over the years. Some of this negative press can be attributed to some technical shortcomings combined with rather overzealous marketing in the first versions of Java. Some criticisms have, however, entered technical folklore despite no longer being very accurate. In this section, we’ll look at some common grumbles and the extent to which they’re true for
  • 21. modern versions of the platform. Overly Verbose The Java core language has sometimes been criticized as overly verbose. Even simple Java statements such as Object o = new Object(); seem to be repetitious—the type Object appears on both the left and right side of the assignment. Critics point out that this is essentially redundant, that other languages do not need this duplication of type information, and that many languages support features (e.g., type inference) that remove it. The counterpoint to this argument is that Java was designed from the start to be easy to read (code is read more often than written) and that many programmers, especially novices, find the extra type information helpful when reading code. Java is widely used in enterprise environments, which often have separate dev and ops teams. The extra verbosity can often be a blessing when you are responding to an outage call, or when you need to maintain and patch code that was written by developers who have long since moved on. In recent versions of Java, the language designers have attempted to respond to some of these points, by finding places where the syntax can become less verbose and by making better use of type information. For example: // Files helper methods byte[] contents = Files.readAllBytes(Paths.get("/home/ben/myFile.bin")); // Diamond syntax for repeated type information List<String> l = new ArrayList<>(); // Local variables can be type inferred var threadPool = Executors.newScheduledThreadPool(2); // Lambda expressions simplify Runnables threadPool.submit(() ­> { System.out.println("On Threadpool"); }); However, Java’s overall philosophy is to make changes to the language only very slowly and carefully, so the pace of these changes may not satisfy detractors completely. Slow to Change The original Java language is now well over 20 years old, and has not undergone a complete revision in that time. Many other languages (e.g., Microsoft’s C#) have released backward­ incompatible versions in the same period, and some developers criticize Java for not doing
  • 22. likewise. Furthermore, in recent years, the Java language has come under fire for being slow to adopt language features that are now commonplace in other languages. The conservative approach to language design that Sun (and now Oracle) has taken an attempt to avoid imposing the costs and externalities of misfeatures on a very large user base. Many Java shops have made major investments in the technology, and the language designers have taken seriously the responsibility of not disrupting the existing user and install base. Each new language feature needs to be very carefully thought about—not only in isolation, but in terms of how it will interact with all the existing features of the language. New features can sometimes have impacts beyond their immediate scope—and Java is widely used in very large codebases, where there are more potential places for an unexpected interaction to manifest. It is almost impossible to remove a feature that turns out to be incorrect after it has shipped. Java has a couple of misfeatures (such as the finalization mechanism) that it has never been possible to remove safely without impacting the install base. The language designers have taken the view that extreme caution is required when evolving the language. Having said that, the new language features that have arrived in recent versions are a significant step toward addressing the most common complaints about missing features, and should cover many of the idioms that developers have been asking for. Performance Problems The Java platform is still sometimes criticized as being slow—but of all the criticisms that are leveled at the platform, this is probably the one that is least justified. It is a genuine myth about the platform. Release 1.3 of Java brought in the HotSpot Virtual Machine and its JIT compiler. Since then, there has been over 15 years of continual innovation and improvement in the virtual machine and its performance. The Java platform is now blazingly fast, regularly winning performance benchmarks on popular frameworks, and even beating native­compiled C and C++. Criticism in this area appears to be largely caused by a folk memory that Java was slow at some point in the past. Some of the larger and more sprawling architectures that Java has been used within may also have contributed to this impression. The truth is that any large architecture will require benchmarking, analysis, and performance tuning to get the best out of it—and Java is no exception.
  • 23. The core of the platform—language and JVM—was and remains one of the fastest general­use environments available to the developer. Insecure During 2013 there were a number of security vulnerabilities in the Java platform, which caused the release date of Java 8 to be pushed back. Even before this, some people had criticized Java’s record of security vulnerabilities. Many of these vulnerabilities involved the desktop and GUI components of the Java system, and wouldn’t affect websites or other server­side code written in Java. All programming platforms have security issues at times, and many other languages have a comparable history of security vulnerabilities that have been significantly less well publicized. Too Corporate Java is a platform that is extensively used by corporate and enterprise developers. The perception that it is too corporate is therefore an unsurprising one—Java has often been perceived as lacking the “free­wheeling” style of languages that are deemed to be more community oriented. In truth, Java has always been, and remains, a very widely used language for community and free or open source software development. It is one of the most popular languages for projects hosted on GitHub and other project hosting sites. Finally, the most widely used implementation of the language itself is based on OpenJDK— which is itself an open source project with a vibrant and growing community. Java ME is an older standard for smartphones and feature phones. Android and iOS are much more common on phones today, but Java ME is still a large market for embedded devices. Java EE has now been transferred to the Eclipse Foundation, where it continues its life as the Jakarta EE project. 1 2
  • 24. Chapter 2. Java Syntax from the Ground Up This chapter is a terse but comprehensive introduction to Java syntax. It is written primarily for readers who are new to the language but have some previous programming experience. Determined novices with no prior programming experience may also find it useful. If you already know Java, you should find it a useful language reference. The chapter includes some comparisons of Java to C and C++ for the benefit of programmers coming from those languages. This chapter documents the syntax of Java programs by starting at the very lowest level of Java syntax and building from there, moving on to increasingly higher orders of structure. It covers: The characters used to write Java programs and the encoding of those characters. Literal values, identifiers, and other tokens that comprise a Java program. The data types that Java can manipulate. The operators used in Java to group individual tokens into larger expressions. Statements, which group expressions and other statements to form logical chunks of Java code. Methods, which are named collections of Java statements that can be invoked by other Java code. Classes, which are collections of methods and fields. Classes are the central program element in Java and form the basis for object­oriented programming. Chapter 3 is devoted entirely to a discussion of classes and objects. Packages, which are collections of related classes. Java programs, which consist of one or more interacting classes that may be drawn from one or more packages. History Topics Tutorials Offers & Deals Highlights Settings Support Sign Out
  • 25. The syntax of most programming languages is complex, and Java is no exception. In general, it is not possible to document all elements of a language without referring to other elements that have not yet been discussed. For example, it is not really possible to explain in a meaningful way the operators and statements supported by Java without referring to objects. But it is also not possible to document objects thoroughly without referring to the operators and statements of the language. The process of learning Java, or any language, is therefore an iterative one. Java Programs from the Top Down Before we begin our bottom­up exploration of Java syntax, let’s take a moment for a top­down overview of a Java program. Java programs consist of one or more files, or compilation units, of Java source code. Near the end of the chapter, we describe the structure of a Java file and explain how to compile and run a Java program. Each compilation unit begins with an optional package declaration followed by zero or more import declarations. These declarations specify the namespace within which the compilation unit will define names, and the namespaces from which the compilation unit imports names. We’ll see package and import again later in this chapter in “Packages and the Java Namespace”. The optional package and import declarations are followed by zero or more reference type definitions. We will meet the full variety of possible reference types in Chapters 3 and 4 , but for now, we should note that these are most often either class or interface definitions. Within the definition of a reference type, we will encounter members such as fields, methods, and constructors. Methods are the most important kind of member. Methods are blocks of Java code composed of statements. With these basic terms defined, let’s start by approaching a Java program from the bottom up by examining the basic units of syntax—often referred to as lexical tokens. Lexical Structure This section explains the lexical structure of a Java program. It starts with a discussion of the Unicode character set in which Java programs are written. It then covers the tokens that comprise a Java program, explaining comments, identifiers, reserved words, literals, and so on. The Unicode Character Set Java programs are written using Unicode. You can use Unicode characters anywhere in a Java program, including comments and identifiers such as variable names. Unlike the 7­bit ASCII character set, which is useful only for English, and the 8­bit ISO Latin­1 character set, which is useful only for major Western European languages, the Unicode character set can represent
  • 26. virtually every written language in common use on the planet. TIP If you do not use a Unicode­enabled text editor, or if you do not want to force other programmers who view or edit your code to use a Unicode­enabled editor, you can embed Unicode characters into your Java programs using the special Unicode escape sequence uxxxx—that is, a backslash and a lowercase u, followed by four hexadecimal characters. For example, u0020 is the space character, and u03c0 is the character π. Java has invested a large amount of time and engineering effort in ensuring that its Unicode support is first class. If your business application needs to deal with global users, especially in non­Western markets, then the Java platform is a great choice. Java also has support for multiple encodings and character sets, in case applications need to interact with non­Java applications that do not speak Unicode. Case Sensitivity and Whitespace Java is a case­sensitive language. Its keywords are written in lowercase and must always be used that way. That is, While and WHILE are not the same as the while keyword. Similarly, if you declare a variable named i in your program, you may not refer to it as I. TIP In general, relying on case sensitivity to distinguish identifiers is a terrible idea. Do not use it in your own code, and in particular never give an identifier the same name as a keyword but differently cased. Java ignores spaces, tabs, newlines, and other whitespace, except when it appears within quoted characters and string literals. Programmers typically use whitespace to format and indent their code for easy readability, and you will see common indentation conventions in this book’s code examples. Comments Comments are natural­language text intended for human readers of a program. They are ignored
  • 27. by the Java compiler. Java supports three types of comments. The first type is a single­line comment, which begins with the characters // and continues until the end of the current line. For example: int i = 0; // Initialize the loop variable The second kind of comment is a multiline comment. It begins with the characters /* and continues, over any number of lines, until the characters */. Any text between the /* and the */ is ignored by javac. Although this style of comment is typically used for multiline comments, it can also be used for single­line comments. This type of comment cannot be nested (i.e., one /* */ comment cannot appear within another). When writing multiline comments, programmers often use extra * characters to make the comments stand out. Here is a typical multiline comment: /* * First, establish a connection to the server. * If the connection attempt fails, quit right away. */ The third type of comment is a special case of the second. If a comment begins with /**, it is regarded as a special doc comment. Like regular multiline comments, doc comments end with */ and cannot be nested. When you write a Java class you expect other programmers to use, provide doc comments to embed documentation about the class and each of its methods directly into the source code. A program named javadoc extracts these comments and processes them to create online documentation for your class. A doc comment can contain HTML tags and can use additional syntax understood by javadoc. For example: /** * Upload a file to a web server. * * @param file The file to upload. * @return <tt>true</tt> on success, * <tt>false</tt> on failure. * @author David Flanagan */ See Chapter 7 for more information on the doc comment syntax and Chapter 13 for more information on the javadoc program. Comments may appear between any tokens of a Java program, but may not appear within a token. In particular, comments may not appear within double­quoted string literals. A comment
  • 28. within a string literal simply becomes a literal part of that string. Reserved Words The following words are reserved in Java (they are part of the syntax of the language and may not be used to name variables, classes, and so forth): abstract const final int public throw assert continue finally interface return throws boolean default float long short transient break do for native static true byte double goto new strictfp try case else if null super void catch enum implements package switch volatile char extends import private synchronized while class false instanceof protected this Of these, true, false, and null are technically literals. The sequence var is not a keyword, but instead indicates that the type of a local variable should be type­inferred. The character sequence consisting of a single underscore, _, is also disallowed as an identifier. There are also 10 restricted keywords which are only considered keywords within the context of declaring a Java platform module. We’ll meet each of these reserved words again later in this book. Some of them are the names of primitive types and others are the names of Java statements, both of which are discussed later in this chapter. Still others are used to define classes and their members (see Chapter 3). Note that const and goto are reserved but aren’t actually used in the language, and that interface has an additional variant form—@interface, which is used when defining types known as annotations. Some of the reserved words (notably final and default) have a variety of meanings depending on context. Identifiers An identifier is simply a name given to some part of a Java program, such as a class, a method within a class, or a variable declared within a method. Identifiers may be of any length and may contain letters and digits drawn from the entire Unicode character set. An identifier may not begin with a digit. In general, identifiers may not contain punctuation characters. Exceptions include the dollar sign ($) as well as other Unicode currency symbols such as £ and ¥. The ASCII underscore (_) also deserves special mention. Originally, the underscore could be
  • 29. freely used as an identifier, or part of one. However, in recent versions of Java, including Java 11, the underscore may not be used as an identifier. The underscore character can still appear in a Java identifier, but it is no longer legal as a complete identifier by itself. This is to support an expected forthcoming language feature whereby the underscore will acquire a special new syntactic meaning. TIP Currency symbols are intended for use in automatically generated source code, such as code produced by javac. By avoiding the use of currency symbols in your own identifiers, you don’t have to worry about collisions with automatically generated identifiers. The usual Java convention is to name variables using camel case. This means that the first letter of a variable should be lowerase, but that the first letter of any other words in the identifier should be uppercase. Formally, the characters allowed at the beginning of and within an identifier are defined by the methods isJavaIdentifierStart() and isJavaIdentifierPart() of the class java.lang.Character. The following are examples of legal identifiers: i x1 theCurrentTime current 獺 Note in particular the example of a UTF­8 identifier, 獺. This is the Kanji character for “otter” and is perfectly legal as a Java identifier. The usage of non­ASCII identifiers is unusual in programs predominantly written by Westerners, but is sometimes seen. Literals Literals are sequences of source characters that directly represent constant values that appear as­ is in Java source code. They include integer and floating­point numbers, single characters within single quotes, strings of characters within double quotes, and the reserved words true, false, and null. For example, the following are all literals: 1 1.0 '1' 1L "one" true false null
  • 30. Discovering Diverse Content Through Random Scribd Documents
  • 31. 113) In dem um einige Fuß abgelassenen S t r e i t z i g s e e bei Neustettin ist ein bisher durch Rohrwuchs verdecktes großes P f a h l b a u t e n r e v i e r entdeckt worden, bei dessen oberflächlicher Untersuchung viel Kohle und mehrere alte Mahlsteine gefunden wurden. (Ill. Ztg. Nr. 1323, Korr. v. u. f. D. Nr. 564.) 114) In B ö h m e n haben sich, nach österreichischen Blättern, nun auch Reste von P f a h l b a u t e n gefunden, und zwar auf der Höhe des Erzgebirges im Kreiserwalde bei Sonnenberg. Von den in ziemlicher Tiefe gefundenen Werkzeugen und Geräthschaften werden erwähnt: Ein Schleifstein, aus einer Platte von hartem Sandstein bereitet, ein aus dem Zahn eines Ebers gefertigtes Weberschiffchen, eine Steinschleuder, Pfriemen zur Bearbeitung von Lederwaaren, eine Vase, ein Thonkessel, ein Wagen- oder Karrenrad, eine eichene Kette, ein Angelhaken, eine Dolchspitze, ein kurzes zweischneidiges Schwert, eine Nadel aus Bronze. Das Bemerkenswertheste sind jedoch vier dabei befindliche Menschenschädel. (Ill. Ztg. Nr. 1321.) 115) Etwa 800 Schritte östlich von dem letzten Hause des Dorfes P e s t l i n (zwischen Marienwerder und Marienburg), dicht am Wege nach Zyguß, wurde im Sommer 1867 beim Graben nach Mauergrund auf ebenem Felde in nur zwei Fuß Tiefe unter der Oberfläche eine große Anzahl (der Angabe nach über fünfzig) h e i d n i s c h e r A s c h e n g e f ä ß e verschiedener Form gefunden. Die meisten derselben sind von den Findern zerschlagen worden. Nur vier Stück, welche Kinder an sich genommen hatten, haben sich durch Zufall erhalten und sind, in Folge meines eifrigen Nachforschens, wieder zum Vorschein und in meinen Besitz gelangt[220]. Nach Angabe der Landleute standen und lagen die Töpfe dicht bei einander, zum Theil umgekehrt, in dem groben Sande und haben nichts Bemerkenswerthes enthalten. In diesem Frühjahre besuchte ich die Fundstätte, fand aber nur Scherben in großer Anzahl. Bei
  • 32. verschiedenen Nachgrabungen gelang es mir, außer unendlich vielen Scherben und einigen zerbrochenen, auch einige wohlerhaltene Gefäße zu finden. Sie standen meist umgekehrt, mit dem Boden nach oben und waren durchaus leer. Es befand sich also an dieser Stelle ein großes Todtenfeld, welches die historische Nachricht (Script. Rer. Prussic. I, 60 u. 357; J. Voigt, Gesch., II, 620), daß Pestlin schon am Anfang des 13. Jahrhunderts ein bedeutender Ort war, in trefflichster Weise bestätigt. Die Gefäße sind von auffallend schöner Form (dieselbe erinnert oft an die schönen antiken, griechischen, bemalten Gefäße), zum Theil mit einem Henkel und leise angedeutetem Ausguß versehen, von dünnen Wänden und hart gebrannt, so daß sie klingen. Deckel habe ich nicht gefunden. Der Thon ist von bläulicher Farbe und stark mit grobem Sand vermischt. Sie zeigen eine schon sehr ausgebildete Technik (auf der Drehscheibe) und sind mit den einfachsten Mitteln in sehr verschiedener, stets hübscher und sinniger Weise am Halse ornamentiert. Fast alle haben am oberen Theil des Bauches wagrechte Riefelungen. Diese Gefäße stehen also ganz im Gegensatz zu den sonst in unserer Provinz gefundenen Aschengefäßen, welche meist ganz roh mit der bloßen Hand geformt sind, dicke Wände haben und ungebrannt sind. Gestützt auf diese Thatsachen, möchte ich die Pestliner Gefäße für viel jünger halten, als die meisten sonst gefundenen, glaube, daß sie aus historischer Zeit stammen, da ganz Pomesanien der Form nach schon christlich war, die alten Preußen ihre heidnischen Gebräuche aber noch nicht aufgegeben hatten. Ein zwischen den Gefäßen gefundenes Fragment eines eisernen Geräthes scheint meine Ansicht zu bestätigen. P e s t l i n . R . B e r g a u . (Aus der Altpreuß. Monatsschr., 6. Heft.) 116) Bei K ö t t e n (Eisenacher Oberland) wurden bei Anlegung einer neuen Straße riesige S k e l e t t e nebst silbernen A r m s p a n g e n , mit Perlen besetzt, und Messer in eigenthümlicher
  • 33. Form gefunden. Nach der Ansicht des Professors Dr. J. Klopfleisch aus Jena, welcher zum Zweck weiterer Nachforschungen die Stelle besuchte, gehören die genannten Objekte dem heidnischen Alterthum an. (Frk. Kur. Nr. 317.) 117)[221] Auf einem Felde nächst H i l d e s h e i m ist, gelegentlich der Anlage einer Militärschießstätte, 9 Fuß unter dem Erdboden eine große Anzahl (54 Stück) massiv s i l b e r n e r , theilweise vergoldeter G e f ä ß e a u f g e f u n d e n worden, die, einen Silberwerth von wenigstens 3000 Thlrn. repräsentierend, dem Alterthum entstammen und zu einem Tafelservice gehörten. Gefunden wurden: Ueberreste eines gegossenen Dreifußes (3 Füße mit Thierklauen, 3 Aufsätze in Form kleiner Hermen des bärtigen Bacchus, verschiedene Theile der Verbindungsstäbe mit noch beweglichen Scharnieren); ein ½ Meter hoher, glockenförmiger Krater, ganz umzogen von den reizendsten Ornamenten, in welchen allerhand Figuren, namentlich Eroten, angebracht sind; 4 Schalen mit Inschriften, im Innern mit aufgelötheten Hochreliefs (Minerva, Büste einer Kybele, eines Deus Lunus, des Herakles als Knabe, Schlangen würgend); einfache Schale; zwei Becher mit Ornamenten und Inschriften; beweglicher Henkel einer Vase; 5 flache Tafelaufsätze mit Inschriften und je 4 Füßen, an den Langseiten Dithyosen (?), an den Schmalseiten tauchende Enten; drei Tiegel mit ornamentiertem Griff und Inschriften; verschiedene Schalen, je über 1 Pfund schwer; drei glockenförmige Becher mit Händen und Füßen, die äußere Fläche überfüllt mit bacchischen Symbolen und Masken von Panen, Titanen, alten und jungen Satyren männlichen und weiblichen Geschlechts, Hermen etc.; zwei hohe Vasen von konischer Form, umzogen von Kreisen mit Thierfiguren; ein Salzgefäß; ein Eimer ohne Henkel und ohne Verzierung; Fragmente anderer Gefäße. Die Reliefs sind durchweg von getriebener Arbeit, Ornamente und Darstellungen der Reliefs ausnahmslos der antiken Kunst und Mythologie angehörig; die lateinischen Inschriften weisen auf Gebrauch in römischer Zeit, die in der Silbertechnik und dem Styl der Ornamente und Figuren
  • 34. sich aussprechende hohe Kunst auf griechische Künstler, etwa der augusteischen Zeit, hin. (Frk. Kur. Nr. 316, nach der Köln. Ztg.) 118) Im Z a l a r e r Comitat (Ungarn), nicht weit von Also- Lendva, stieß man beim Ackern auf eine Urne, welche in ihrem Innern an 1000 Stück S i l b e r - u n d K u p f e r m ü n z e n , goldene und silberne Ringe, Armbänder und Halsketten barg. Eine der Silbermünzen, welche Prof. Wagner in Ofen erhielt, trägt vorn die Inschrift: „Imp. Cae. C. Vib. Volusiano Augg.“ und die Rückseite zeigt die Worte: „Pietas Augg.“, sowie die Abbildung einer auf dem Altar opfernden Vestalin. Cajus Vibius Volusianus war der Sohn des Vibius Trebonianus Gallus und dessen Mitregent seit 252 n. Chr., daher die Inschrift der Kehrseite „Pietas Augustorum“, da derselbe sammt seinem Vater 253 von seinen eigenen rebellischen Prätorianern umgebracht wurde. (Ill. Ztg. Nr. 1320.) 119) Wie bereits mitgetheilt (auch in der vor. Nr. dies. Bl.), wurde in dem Walde der württemb. Gemeinde L u s t n a u vor Kurzem unter einer Eiche ein Topf aufgefunden, welcher S i l b e r m ü n z e n enthielt. Es waren dies über 6000 Stück kleine, schüsselförmige, blos auf einer Seite geprägte Münzen in der Größe eines Groschens, einige, doppelt geprägt, in der Größe eines Sechsers, und einige, circa 200, gleichfalls mit doppeltem Gepräge, kamen einem frühern Zwölfkreuzerstück gleich. Die Münzen scheinen aus dem 14. und 15. Jahrh. zu stammen und kursierten in der Gegend von Tübingen, indem eine größere Anzahl derselben der gräflich Hohenberg’schen Münzstätte zu Rottenburg am Neckar entsprungen sind und den Namen des Erzherzogs Leopold Graf von Tirol tragen, welcher 1396 mit Württemberg, Augsburg, Oettingen, Ulm, Esslingen, Gmünd einen Münzvertrag schloß. Der Topf, in welchem sich die Münzen befanden, ist ein Essighafen, welcher unten zwei Henkel und ein Zapfenloch hat. Der größere Theil der Münzen wurde an das k. Münzkabinet in Stuttgart gesendet.
  • 35. (Korr. v. u. f. D. Nr. 540, nach d. Schw. M.) 120) In L ü t t i c h will man ein G e m ä l d e v o n Te n i e r s aufgefunden haben. Ein Speisewirth hat das Bild, welches ganz mit Schimmel bedeckt war, in einer Auction erstanden. Es stellt den heiligen Antonius dar, wie er vom Teufel versucht wird. Dem Besitzer sind bereits hohe Preise von Kunstfreunden geboten worden. (Monatsrosen 1869, Nr. 1.) 121) In Nr. 2 des diesjährigen Anzeigers habe ich nähere Nachricht von der höchst bedeutenden Sammlung mittelalterlicher Paramente in der Marienkirche zu D a n z i g gegeben. Jetzt kann ich die erfreuliche Nachricht hinzufügen, daß dieselbe binnen Kurzem auch weiteren Kreisen zugänglich gemacht werden soll, indem zu Ostern k. J. im Verlage von Kasemann in Danzig ein großes Werk erscheinen wird, welches photographische Abbildungen aller interessanten Stücke nebst einem beschreibenden Text von Hinz enthalten wird. R . B e r g a u . 122) Seit dem 7. Oktober erscheint in B e r l i n eine n e u e W o c h e n s c h r i f t f ü r K u n s t unter dem Titel: „Blätter für bildende Kunst“, Organ des Preußischen Kunstvereins, herausgegeben unter Mitwirkung namhafter Fachmänner von C. Schönau. Wenn sich das Blatt auch als „Organ des Preußischen Kunstvereins“ ankündigt, so will es doch auch die allgemeinen Kunstinteressen in ausgedehntestem Maße vertreten. Es bringt größere abhandelnde Artikel, Mittheilungen aus dem Berliner Kunstleben, auswärtige Original-Correspondenzen, Kritiken neuer Werke, eine Rundschau auf dem Gebiete der Kunstliteratur, Biographieen und Charakteristiken hervorragender Künstler etc. Die Redaktion hat im Programm den Grundsatz aufgestellt, eine durchaus unparteiische Kritik üben zu wollen. Für Künstler und für die Mitglieder des Preußischen Kunstvereins hat der Herausgeber den Abonnementspreis auf 1 Thlr. pro Quartal bei directer Bestellung
  • 36. in der Redaktion in Berlin, Dorotheenstrasse 31, ermäßigt. Für andere Abonnenten im In- und Auslande beträgt das Abonnement 1 Thlr. 10 Sgr. vierteljährlich. 123) An der Mauerseite, wo in R e g e n s b u r g ehedem der Hallerthurm stand, ist eine G e d e n k t a f e l angebracht worden, welche die Inschrift trägt: „Hier wurde der Hallerthurm, im Jahre 1542 vom Bauherrn Haller mit einer Uhr versehen, früher das Ostenthor (Porta orientalis), zur Erweiterung der Durchfahrt im März 1868 abgebrochen. Vor diesem Thore fiel bei einem Ausfall gegen Kaiser Otto’s Heer der tapfere Pfalzgraf Arnulf, von Pfeilen durchbohrt, im Jahre 954.“ (Augsb. Postztg. Nr. 256.)
  • 37. Mittheilungen. >Es sind in den letzten Jahren wiederholt in der „A l l g e m e i n e n Z e i t u n g “ und anderen Blättern, so jüngst in Nr. 273 der Spener’schen Zeitung in Berlin, Artikel, mit „A.“ unterzeichnet, über das germanische Museum erschienen, die zwar mitunter das unter meiner Leitung Erreichte sehr anerkennend hervorheben, dabei aber wieder Ansichten aufstellen, die ich so wenig theile, daß ich mich verpflichtet fühle, öffentlich zu constatieren, daß ich nicht nur in gar keiner Beziehung zu diesen Artikeln stehe, sondern auch lebhaft bedauere, dieselben nicht verhindern zu können, indem ich wohl fühle, daß sie durch Hervorhebung von Dingen, die längst von competenter Seite entschiedene Verurtheilung erfahren haben, dem Rufe des Institutes schaden müßten, wenn sie als von der Vorstandschaft desselben ausgehend angesehen würden. N ü r n b e r g , den 25. November 1868. Der I. Vorstand des germanischen Museums. A . E s s e n w e i n . Berichtigung. In der vorigen Nummer des Anzeigers ist auf Sp. 309, Zeile 13 v. o. „M ä n n e r n “ statt Mannen, und ebendas. Zeile 19 „w i t t e n b e r g i s c h e n “ statt „wirttenbergischen“ zu lesen. Müller’s neuestes Künstlerlexikon. Leben und Werke der Künstler aller Zeiten und Völker, der berühmtesten Baumeister, Bildhauer, Maler, Kupferstecher, Formschneider, Lithographen etc., von den frühesten Kunstepochen bis zur Gegenwart. 3 Bände. 137 Bogen. broch. (Ladenpreis 26 fl. oder 15 Thlr. 18 Sgr.)
  • 38. Herabgesetzter Preis 10 fl. oder 6 Thlr. Verlag von Ebner & Seubert in Stuttgart, zu beziehen durch alle Buchhandlungen. >B i t t e . Kennt einer der verehrl. Leser des Anzeigers ein Exemplar von „G e i s t l i c h e L i e d e r auffs new gebessert zu Wittemberg, D. M. L u t h e r . MDXXIX“ kl. 8[222]. so bitte ich dringend um gefällige Mittheilung darüber. N ü r n b e r g . Dr. F r o m m a n n . Verantwortliche Redaction: A . E s s e n w e i n . Dr. G . K . F r o m m a n n . Dr. A . v. E y e . Verlag der literarisch-artistischen Anstalt des germanischen Museums in Nürnberg. S e b a l d ’sche Buchdruckerei in Nürnberg.
  • 39. Nürnberg. Das Abonnement des Blattes, welches alle Monate erscheint, wird ganzjährig angenommen und beträgt nach der neuesten Postconvention bei allen Postämtern und Buchhandlungen Deutschlands incl. Oesterreichs 3 fl. 36 kr. im 24 fl.-Fuß oder 2 Thlr. preuß. Für Frankreich abonniert man in Straßburg bei C. F. Schmidt, in Paris bei der deutschen Buchhandlung von F. Klincksieck, Nr. 11 rue de Lille, oder bei dem Postamt in Karlsruhe; für England bei Williams & Norgate, 14 Henrietta- Street Covent-Garden in London; für Nord-Amerika bei den Postämtern Bremen und Hamburg. Alle für das german. Museum bestimmten Sendungen auf dem Wege des Buchhandels werden durch den Commissionär der literar.-artist. Anstalt des Museums, F. A. B r o c k h a u s in Leipzig, befördert.
  • 40. ANZEIGER FÜR KUNDE DER DEUTSCHEN VORZEIT. Neue Folge. Fünfzehnter Jahrgang. ORGAN DES GERMANISCHEN MUSEUMS. 1868. Nº 12. December.
  • 41. Wissenschaftliche Mittheilungen. Noch ein Wort über den deutschen kaiserlichen Doppeladler. „Adhuc sub judice lis est.“ Im elften Bande des Anzeigers für Kunde der deutschen Vorzeit von 1864 (Nr. 1–4) habe ich mir erlaubt, einen kleinen „Beitrag zur Geschichte des heraldischen Doppeladlers“ mitzutheilen, zu welchem Dr. A. Erbstein einen werthvollen „numismatischen Beitrag“ (in Nr. 5 u. 6 dess. Jahrg.) geliefert hat. Vgl. auch die Nachträge im Jhg. 1865, Sp. 236 u. 420 ff. Die Akten über diesen interessanten Gegenstand sind zwar noch nicht geschlossen; allein es hat leider den Anschein, daß der für uns weitaus wichtigste Theil der Frage: wann und warum der (morgendländische?) Doppeladler den (abendländischen?) e i n f a c h e n A d l e r im Wappen der deutschen Kaiser verdrängt hat, m i t v o l l e r S i c h e r h e i t nicht mehr wird beantwortet werden können. Meine früher bestimmt ausgesprochene Ansicht, daß erst Kaiser Sigismund den Doppeladler als kaiserliches Wappen angenommen habe, glaube ich aber jetzt theilweise berichtigen zu müssen. Nachdem meine Zweifel über die Richtigkeit der Zutheilung der beiden Denare K. Otto’s IV. und K. Conrad’s IV. durch den erwähnten „numismatischen Beitrag“ gehoben worden sind, und nachdem mein gelehrter Freund Lisch mir die unter Nr. 1 abgebildete Zeichnung der Fahne Karl’s des Großen[223] aus der meklenburgischen Reimchronik Ernst’s von Kirchberg, vom Jahre 1378, mitgetheilt hat[224], glaube ich annehmen zu dürfen, daß der Doppeladler doch schon seit dem Ende des 12. Jahrh. — also seit seinem Erscheinen in der deutschen
  • 42. Nr. 1. Heraldik überhaupt — als kaiserliches Wappen, wenn auch anfänglich und bis zu Sigismund nicht vom Kaiser selbst, und nicht ausschließlich, also mit dem einfachen abwechselnd[225], geführt und abgebildet worden ist. Zu den bereits erwähnten Beispielen des Vorkommens des Doppeladlers als kaiserlichen Wappens aus der Zeit zwischen 1197 und 1378 kommt noch die bekannte Goldmünze K. Ludwig’s des Bayern[226] (1314–1347). Die Behauptung L. v. Ledebur’s, daß K. Ludwig schon 1323 den Doppeladler im Siegel geführt habe, beruht auf einem Irrthum. Der Kaiser führte nämlich auf seinem, gewöhnlich als Rücksiegel gebrauchten, kleineren Siegel, wie hier unter Nr. 2 abgebildet, einen rückwärtsehenden, sog. „wiedersehenden“ Adler in natürlicher Stellung, mit der schönen, echt königlichen Devise[227]. Die Bemerkung in der Urkunde von 1323: „Geben zu Babenberg... under dem wiedersehenden Adler besiegelt“, hat wol meinen gelehrten Freund zu der Annahme verleitet, Ludwig habe auf diesem Siegel den Doppeladler geführt[228].
  • 43. Nr. 2. Römer-Büchner hat das Wort „wiedersehend“ auch mißverstanden und über dessen Bedeutung zwei viel zu gesuchte Hypothesen aufgestellt[229]. Auf dem großen Siegel III. A. 2. b K. Ludwig’s sehen wir auf der Spitze des Scepters einen (heraldischen, einfachen) Adler und zu beiden Seiten des Thrones (?) zwei wiedersehende Adler, auf den beiden, unter den Füßen des Kaisers liegenden Löwen stehend. Letztere beiden Adler, ebenso wie die Löwen, sind aber hier keine (heraldischen) W a p p e n bilder, sondern nur (symbolische, auch auf das Wappen sich beziehende) S i e g e l bilder[230]. Das zeigt schon der ganze Typus dieser Thiere. Einer ganz ähnlichen, wahrscheinlich d i e s e m Siegel nachgebildeten Zusammenstellung begegnen wir, beinahe gleichzeitig, auf dem Siegel König Johann’s von Frankreich v. J. 1352 (abgebild. im nouv. traité de diplom. V, Taf. C, Fig. 79). Auf diesem Siegel haben die Adler nur eine rein decorative Bedeutung, ohne alle Beziehung zu dem W a p p e n , welches auf dem Hauptsiegel nur durch die Lilie auf der Spitze des Scepters vertreten, dagegen auf dem Rücksiegel (IV. A. 2.) enthalten ist.
  • 44. Ueber vermeintliche Kaisersiegel mit dem Doppeladler vor Sigismund schreibt Römer-Büchner a. a. O., S. 41: „Zwar gibt Gudenus in praefat. Sylloges Disp. pag. 20 Nachricht von einem zweiköpfigen Adler im kaiserlichen Contresiegel Karl’s IV.; da uns jedoch kein ähnliches Siegel vorgekommen ist, so wird sich diese Angabe auf ein falsches Siegel oder falsche Abzeichnungen gründen, wie wir z. B. bei v. Birken, Fuggerischer Ehrenspiegel des Erzhauses Oesterreich, S. 170, 178, 185 u. 350, die falschen Siegel mit dem zweiköpfigen Adler von Friedrich I. von 1166, Heinrich (VII) von 1228, Friedrich II. von 1245 und Karl IV. von 1368 finden.“ Was K. Karl IV. betrifft, so gilt von den beiden als Schildhaltern verwendeten Adlern auf seinem großen Siegel III. B. 2. b. dasselbe, was ich oben von den beiden Adlern auf dem Siegel III. A. 2. b. K. Ludwig’s des Bayern gesagt habe. Seit Kaiser Sigismund blieb aber der Doppeladler das stereotype Wappen unserer Kaiser, während die deutschen Könige den e i n f a c h e n fortführten. Bemerkenswerth für die vorliegende Frage bleibt immerhin, wie ich schon früher erwähnt, der Umstand, daß Sigismund, der schon als Reichsverweser 1402 den Doppeladler auf seinem Siegel IV. A. 1 geführt hatte[231], als römischer König und Erbe von Böhmen („romanorum rex et bohemie heres“, wie die Legende lautet) i. J. 1411 den e i n f a c h e n A d l e r im Siegel führte, dagegen i. J. 1419 als römischer König und König von Böhmen („romanorum ac bohemie rex“) wieder den Doppeladler annahm, den er auch als Kaiser beibehielt. Nach den gewöhnlichen Regeln der damals sehr ausgebildeten und angesehenen Heroldskunst erscheint dieser Wechsel als ein auffallender Widerspruch, indem der Doppeladler unter den angeführten Verhältnissen das eine Mal als eine sog. Minderung, das andere als eine sog. Mehrung des Wappens zu blasonieren wäre. So, wie ich die Frage jetzt ansehe, erscheint mir der Doppeladler auf dem Rücksiegel König Wenzel’s von 1376, auf den Siegeln der
  • 45. Herzoge Wilhelm und Albrecht I. von Bayern, der Söhne K. Ludwig’s d. Bayern, der Herzogin Katharina von Oesterreich, der Tochter K. Karl IV., der Stiefschwester K. Wenzel’s, ebenso als der k a i s e r l i c h e , wie auf dem Siegel der Juden von Augsburg (als kaiserliche und Reichs-Kammerknechte) von 1298, auf dem Landfriedensiegel vom Jahr 1335, auf den Stadtsiegeln von Breslau aus dem 13. (?) Jahrh., von Friedberg 1334, von Lübeck 1369, von Antwerpen 1370, von den Seestädten 1368, auf dem der Stadt Solothurn von 1394 (und zwar auf diesem g e k r ö n t ; wol das ä l t e s t e Beispiel eines g e k r ö n t e n Doppeladlers); ferner auf den flandrischen Goldmünzen im 13. Jahrh. und denen der Kurfürsten von Trier im 14. Jahrh., am Galgenthor und am Eschenheimer Thurm in Frankfurt a. M. von 1343–48. Ja, selbst auf allen Siegeln, deren Inhaber in einem höheren oder niederen ministerialen Verhältnisse zum deutschen Reiche, resp. seinem Oberhaupte, gestanden, dürfte d i e s e Auffassung von der Bedeutung des Doppeladlers — ob ganz oder theilweise angebracht — die richtige sein. Das würde u. a. von dem unter Fig. XIV meines Beitrags zur Gesch. d. heraldischen Doppeladlers abgebildeten Siegel der kaiserl. Burggrafen von Henneberg und dem unter Fig. VI mit dem Wappen der Burgmannen von Gelnhausen der Fall sein. Während in den beiden Originalhandschriften der Richenthal’schen Chronik, der Aulendorfer wie der Constanzer, und in der Ausgabe von Anton Sorg vom J. 1483 der e i n f a c h e A d l e r mit „römisch reich“ und der Doppeladler mit „Keysertum“ bezeichnet und in dem Reichsbanner der e i n f a c h e A d l e r abgebildet ist, sehen wir bereits auf Blatt 53 der kostbaren Bilderhandschrift aus dem Ende des 15. Jahrh. in der fürstlich Waldburg-Wolfegg’schen Bibliothek, sowohl auf dem großen kaiserlichen Banner als wie auf den Fähnlein und Dächern der Zelte, überall nur den Doppeladler.
  • 46. Nr. 5. ❏ GRÖSSERES BILD Bei diesem Stande der Sache war es von großem Interesse für mich, als ich auf den unter Nr. 5 abgebildeten Grabstein K. Rudolf’s von Habsburg im Dome zu Speyer[232] aufmerksam gemacht wurde und einen Abguß des Brustschildes mit dem Doppeladler erhielt.
  • 47. Durch dieses Denkmal schien der bisher fehlende historische Zusammenhang zwischen dem ersten Erscheinen dieses kaiserlichen Wappenbildes zu Anfang des 13. Jahrh.[233] und den Siegeln K. Sigismund’s hergestellt und dessen Vorkommen auf der erwähnten Goldmünze K. Ludwig des Bayern erklärt zu sein. Je wichtiger aber dieses Denkmal für die Entscheidung der vorliegenden Frage war, um so genauer mußte untersucht werden, ob wir es wirklich hier mit einer g l e i c h z e i t i g e n Arbeit zu thun haben. D a g e g e n , d. h. für eine s p ä t e r e Ausführung des Monumentes, sprachen: I. Der Stil des Ganzen und die sehr individuelle Auffassung der Figur, die nach Essenwein nicht mehr auf das 13. Jahrhundert hinzudeuten scheinen und nach v. Eye eher der Zeit Karl’s IV. entsprechen; II. der Umstand, daß der Grabstein des Kaisers von Marmor gewesen sein soll, der vorliegende aber von Sandstein ist, und nicht im Dome, sondern in der Ruine des Johanniterhofes im Schutte gefunden wurde; und III. der Doppeladler an und für sich[234] und seine für die damalige Zeit ungewöhnliche Form[235]. F ü r die Gleichzeitigkeit des Denkmals sprachen jedoch: I. Die Angabe Ottokar’s von Horneck in seiner Reimchronik, daß der Steinmetz die Figur Rudolf’s genau nach dem Leben gearbeitet habe, und als derselbe eine Falte im Gesicht mehr bekommen, ihm eigens nachgereist sei, um ihn nochmals genau zu betrachten und auf seinem Bilde auch diese Falte nachzutragen; wie denn auch der Ausdruck des Gesichtes wirklich P o r t r ä t zu sein scheint. II. So sehr die oben (unter III) angeführten heraldischen Bedenken auch zu beachten sind, für u n b e d i n g t e n t s c h e i d e n d möchte ich sie doch nicht erklären.
  • 48. Der vorliegende Fall ist einer von den vielen auf dem weiten, aber theilweise noch immer sehr dunkeln Gebiete, der Alterthumsforschung, der sich eben so leicht zum Beweise für als g e g e n eine aufgestellte Behauptung gebrauchen läßt. Man kann nämlich mit eben so viel Wahrscheinlichkeit behaupten, der Doppeladler auf der Pektoralschließe des Grabsteines K. Rudolf’s beweise, daß derselbe erst lange nach seinem Tode verfertigt worden sei, als man behaupten kann, daß dieses Grabmal den Beweis liefere, daß schon Rudolf von Habsburg den Doppeladler als k a i s e r l i c h e s W a p p e n geführt habe. B e w i e s e n ist aber damit das Eine eben so wenig wie das Andere. Ich bin kein Freund solcher apodiktischer Behauptungen und begnüge mich gerne damit, die Frage nach ihren beiden Seiten angeregt und zu ihrer endlichen (?) Lösung das Meinige beigetragen zu haben; et je ne crois même en savoir moins pour cela. Wenn auch allerdings im Mittelalter, namentlich vor der zweiten Hälfte des 15. Jahrh., die heraldischen Typen in den einzelnen Perioden (etwa von 50 zu 50 Jahren) so ziemlich ausgeprägt und constant waren, so kommt doch auch sehr viel darauf an, ob eine Wappenfigur auf Münzen, Siegeln oder auf Denkmälern dargestellt wurde und welchem Lande der ausführende Künstler angehörte. Bei auffallenden Formverschiedenheiten und Abweichungen von der gewöhnlichen, landläufigen Regel sind b e i d e Momente wohl zu beachten und ohne urkundlichen Beweis, der selbst durch Siegel nicht immer geführt werden kann, ist es nach meinem unmaßgeblichen Ermessen meist mißlich und gewagt, im einzelnen Falle darüber unbedingt abzuurtheilen und Hypothesen aufzustellen, die so wenig Wahrscheinlichkeit für sich haben. Was aber am meisten dafür spricht, daß der Speyerer Grabstein nicht der ursprüngliche, und somit der auf demselben befindliche Doppeladler für die vorliegende Frage ganz ohne Werth ist, das ist eine Vergleichung desselben, resp. unseres obigen Holzschnittes, mit
  • 49. einem Bilde in der berühmten Ambraser Sammlung, wovon wir eine Abbildung des entsprechenden Theiles des Originals unter Nr. 6 mittheilen. Freiherr E. v. Sacken schreibt darüber an Essenwein bei Uebersendung einer Photographie dieses Bildes: „Was den Grabstein Rudolf’s von Habsburg anbelangt, so weiß ich nur aus schriftlichen Nachrichten, — ich selbst war nicht in Speyer — daß derselbe durch die Franzosen 1689 und 1793 bis zur Unkenntlichkeit zerstört wurde. Schmidt sagt mir, es sei noch gegenwärtig der alte Grabstein dort, der aber sehr bedeutend restauriert ist. Ob Ihr Gypsabguß von diesem restaurierten oder einem darnach gefertigten neuen Steine sei, kann ich nicht bestimmen.
  • 50. Nr. 6. Die in Wasserfarben gemalte, aber auch schon etwas verblaßte Copie in der Ambraser Sammlung, von der ich eine Photographie beilege, ist jedenfalls unter K. Maximilian I. nach dem noch intacten Steine gefertigt[236]. Das Bild ist 6 Fuß groß und sehr gut, wahrscheinlich von dem Tiroler Kaspar Rosenthaler, der auch den großen habsburgischen Stammbaum in der Ambraser Sammlung malte. Die Inschrift stimmt genau mit Ihrem Holzschnitte überein, ebenso die Figur im allgemeinen, nicht so Kopf und Hände, die an
  • 51. dem Originale des Holzschnittes ohne Zweifel restauriert sind; auch Krone und Scepter sind anders geformt, und die Linke hält nicht den Reichsapfel, sondern die Büchse mit dem bei der Krönung gebrauchten Salböle. Auf dem Originale des Holzschnittes ist wol auch der D o p p e l adler auf dem Brustschilde eine neuere Restauration; denn auf unserem Bilde ist deutlich der e i n köpfige schwarze Adler zu sehen.“ Mantelschließen mit Wappen finden sich häufig auf unseren ältesten Grabmälern, z. B. auf den Grabsteinen Graf Otto’s von Botenlauben, † 1244, und seiner Gemahlin Beatrix, † 1250, in der Kirche von Frauenrode (abgebildet bei Hefner-Alteneck, Trachten etc., I. Taf. 59 u. 60); auf mehreren Erbach’schen und auf dem Grabmal Graf Ulrich’s von Württemberg und seiner Gemahlin Agnes, einer gebornen Herzogin von Liegnitz, beide † 1265. „Ulrich’s irdische Reste“ — schreibt mein gelehrter Freund von Stälin (in s. wirtemb. Gesch. II, 484 u. 485) — „wurden zuerst in Beutelsbach beigesetzt, im J. 1321 nach Stuttgart gebracht; in der dortigen Stiftskirche befindet sich sein steinernes Grabdenkmal, welches den Grafen mit seiner Gemahlin Agnes in ganzen Figuren darstellt und nicht sehr lange nach deren Tode, vielleicht für die neue Beisetzung der Gebeine in Stuttgart, gefertigt wurde.“ Da die Abbildung bei Sattler, Topogr. Gesch. 40, S. 34, ganz unrichtig ist, so theile ich hier unter Nr. 7 (in ½ Größe des Originals) eine genaue Zeichnung der Mantelschließe der Gräfin mit, auf welcher sich ihr Alliancewappen in eigenthümlicher Zusammenstellung befindet[237].
  • 52. Nr. 7. Zum Schlusse muß ich mir aber doch noch erlauben, meine bescheidenen Bedenken gegen einige in dem erwähnten „numismatischen Beitrage“ aufgestellten Behauptungen auszusprechen. Das sehr frühe Vorkommen des Doppeladlers auf Geweben und als reines Ornament ist bekannt. Allein den heraldischen und ganz besonders den deutschen, kaiserlichen Doppeladler kann ich durchaus nicht für „ein Kind des Webstuhls“ halten. Mag der Ursprung und die Bedeutung des Doppeladlers im Orient noch zu dunkel sein, in der deutschen Heraldik liegt ihm sicher eine tiefere Bedeutung zu Grunde, als die bloße mechanische Nachbildung fremdländischer Gewebe[238]. So sehr ich die allgemein anerkannte Autorität des Herrn Dr. A. Erbstein auf dem Gebiete der Münzkunde verehre, so kann ich doch, was das Verständniß unserer mittelalterlichen Wappenkunde betrifft (um deren tieferen Sinn sich die Münzmeister aus verschiedenen technischen und aus Zweckmäßigkeitsgründen oft sehr wenig gekümmert zu haben scheinen), mich seinem Urtheile nicht ebenso unterwerfen. Ich muß daher die von competenten Richtern längst aufgestellte Behauptung aufrecht erhalten, daß der Doppeladler durch das monogrammatische Zusammenschieben — wie es v. Ledebur ganz
  • 53. treffend bezeichnet — zweier heraldischer Adler entstanden und in dieser Beziehung im kaiserlichen Wappen ein symbolisches (die Vereinigung des deutschen und des römischen Reiches bezeichnendes) Wappenbild ist und weder ein heraldisches Monstrum, noch ein blos symmetrisches Ornament. Auffallend ist es, wie einer unserer größten Gelehrten[239] behaupten konnte, daß bei dieser Annahme „Schwierigkeiten darüber entstehen, auf welchen Beziehungen diese Verbindung beruhe,“ nachdem derselbe doch unmittelbar vorher in seiner historischen Erörterung der „Z e i c h e n , F a h n e n u n d F a r b e n d e s d e u t s c h e n R e i c h s “[240] selbst anführt, daß der D o p p e l a d l e r , „a l s b e s o n d e r e s Z e i c h e n d e r r ö m i s c h - k a i s e r l i c h e n W ü r d e i m G e g e n s a t z d e r d e u t s c h - k ö n i g l i c h e n , d i e n u n v o r z u g s w e i s e d u r c h d e n e i n f a c h e n A d l e r b e z e i c h n e t w e r d e n s o l l t e “, angenommen worden sei. Den Vergleich zwischen dem doppelgeschwänzten heraldischen Löwen[241] und dem Doppeladler (nicht dem blos doppelköpfigen, wovon ich nur e i n Beispiel kenne: die geschmacklosen Schildhalter auf dem großen Doppelsiegel Kaiser Sigismund’s[242], wovon dasselbe gilt, was oben von den Schildhaltern auf dem Siegel K. Ludwig IV. gesagt ist) kann ich eben so wenig gelten lassen, als zwischen diesem s t e t s a u s z w e i g a n z g l e i c h e n H ä l f t e n bestehenden Adler mit den von mir bereits a. a. O. erwähnten Storchen und Hühnern mit zwei Köpfen und ähnlichen heraldischen sowohl, wie ornamentalen Figuren mit mehreren Köpfen an einem Leibe oder mehreren Leibern, bei welchem von einem Zusammenschieben zweier Thiere nicht die Rede ist. Was meine aus Italien geschöpfte Angabe über das Wappen der Caetani betrifft, so kann ich zur Begründung derselben jetzt noch eine neuere Notiz aus derselben Quelle beibringen. Das ursprüngliche Wappen der Caetani waren allerdings zwei blaue Flüsse im goldenen Felde (d’or à une bande jumelle ondée d’azur); jetzt führen sie diese Flüsse schräg-rechts. Kurz vor Bonifaz VIII. soll
  • 54. jedoch ein Aquapita Caetani eine Giovanna d’Aquila geheiratet und deren redendes Wappen, den Adler, seinem Wappen einverleibt haben. In dem rothseidenen Pluviale quaest. sollen die (e i n f a c h e n ) Adler von Silber gestickt sein; ebenso soll sich aber auch das frühere Wappen in Silber gestickt darauf befinden. Relata refero. K u p f e r z e l l . F.- K .
  • 55. Die Ausstellung des internationalen archäologischen Congresses zu Bonn. (Schluß.) Die Goldschmiedekunst der Renaissance vertraten vorzüglich zwei Prachtpokale im größten Maßstabe, die eigentlich als Tafelaufsätze zu betrachten sind, beide aus dem Besitze des preußischen Königshauses, der eine dem Benevenuto Cellini zugeschrieben, der andere dem Wenzel Jamnitzer. Aus dem 17. Jahrhundert war eine silberne Taufschüssel mit Kanne, der evangelischen Gemeinde zu Cleve gehörig, zu sehen. Eine Anzahl romanischer und gothischer Leuchter aus Bronze fehlte auf der Ausstellung nicht, von denen der interessanteste ohne Zweifel im Besitze des Herrn H. Garthe in Köln sich befindet. Eine Reihe von Siegelstempeln, eine Serie von Münzen u. A. war speciell für die Fachmänner von Werth. Im höchsten Grade wichtig war eine große Anzahl messingener Aquamanilien, von denen die Antiquitätenhandlung von Goldschmidt in Frankfurt, die auch sonst manches Interessante geliefert hatte, allein 43 Stück, aus dem Besitze des † Hofbuchhändlers Hahn in Hannover stammend, ausstellte. In allen Größen waren hier Löwen, Hunde, Pferde, Drachen u. s. w. vertreten. Es zeigte sich im Ganzen, daß diese Gefäße, wie wir im Anzeiger, Jahrg. 1867, Sp. 260, frageweise andeuteten, wol vorzugsweise dem profanen Gebrauch gedient haben müssen; wie ja z. B. auch die zwei silbernen Löwen im Rathhause zu Lüneburg, aus dem 16. Jahrhundert, unzweifelhaft Profangefäße sind. Von wenigen Gefäßen der ganzen hier zur Schau gestellten Reihe möchten wir ein sehr hohes Alter annehmen; viele gehören sicher erst dem 16. Jahrhunderte an. Von den phantastischen Gestalten die interessantesten zu nennen, ist schwer. Am meisten fiel ein Mädchenkopf auf, aus dem 14. Jahrhundert mit süß lächelnder Physiognomie; eine Umschrift sagte: „Ancilla bin ich
  • 56. genannt, zu hove bin ich gerne erkannt.“ Zwei Aquamanilien in Gestalt von Hähnen waren fast identisch. Der eine trug auf zwei Flügelfedern die Inschrift: Anno Dni MCLV Cesaris Frid anno quarto in honorem dni S. Andreae. Barrast Refus me cpav. Wir glauben die Inschrift als spätere Fälschung annehmen und die Entstehungszeit beider Hähne in’s 14. Jahrh. setzen zu müssen. Ein Ritter zu Pferde (Eigenthum des Fürsten von Hohenzollern) gehört wol erst dem 15. Jahrh. an. Die spätesten, aber nicht uninteressanten waren jedenfalls eine Seejungfrau und ein knieender, vorn und rückwärts höckeriger Mann. Die ganze Reihe gewährte in der That einen höchst überraschenden Einblick in die Mannigfaltigkeit, mit der selbst gleiche Motive durchgebildet wurden, und gab einen deutlichen neuen Beleg für den phantastischen Sinn unserer Vorfahren. Aber auch als ein weiteres Resultat ließ sich feststellen, daß alle diese Gegenstände Produkte einer eigenen, für den Weltmarkt und Weltbedarf arbeitenden Industrie sind, die das massenhaft Erzeugte wol mittelst der Messen und Märkte in großer Zahl überall hin zur beliebigen Auswahl sandte. Von wo sie ausgegangen, ob von Nürnberg zugleich mit den geschlagenen Becken, ob vom Rheine oder den Niederlanden, ob, wie de Linas meinte, trotz der theilweise deutschen Inschriften, von Dinant, wagen wir nicht zu entscheiden. Wir kommen nun noch an eine Serie: die Manuscripte. Die Entwickelung der Buchschrift, die innere Ausstattung der Bücher durch Miniaturen und Initialen ist längst erkannt und festgestellt. Es handelte sich also hier keineswegs um neue Entdeckungen; doch ist es stets von höchster Wichtigkeit, nicht blos einen Kunstzweig vereinzelt in seiner Entwicklung zu verfolgen, sondern auch zwischen der Fortbildung einzelner Kunstzweige Parallelen zu ziehen. So war es von hohem Interesse, neben der Entwicklung des Emails auch die der Miniaturmalerei im gleichen Zeitraum vor Augen zu haben; abgesehen aber davon haben, einzelne an und für sich einen hohen Werth. Dieser zeigte sich in erster Linie an dem Evangelienbuch aus Echternach in der Gothaer Bibliothek, dem Weihgeschenke Kaiser Otto’s III. und seiner Mutter Theophania. In höchst kostbarer Ausstattung und von wunderbarer
  • 57. Erhaltung zeigt es die vier Evangelien, in Goldbuchstaben geschrieben, mit vielen Initialen; den Anfang jedes Evangeliums zeichnen einige interessante, besonders reich durch Malerei geschmückte Blätter aus, die theils ornamental mit einzelnen eingeflochtenen allegorischen Figuren, theils figural gehalten sind. Die ganze heilige Geschichte läuft jedoch in einer Reihe von Blättern fort und ist nicht an die Erzählungsfolge gebunden, wie sie im Texte erscheint: Nichtsdestoweniger ist die Folge der Blätter in vier Theile getrennt, von denen jedem Evangelium einer vorgeheftet ist, ohne Rücksicht darauf, ob das betreffende Evangelium gerade diese Erzählungen enthält oder nicht. Nachklänge der Antike finden sich noch in diesen Malereien, wie sie sich in den byzantinischen Miniaturen, woran die vorliegenden anschließen, in ununterbrochener Folge erhalten und fortgebildet haben. Ein zweites Manuscript aus Echternach, vom 12. Jahrhundert, mit späteren Zusätzen, zeigte hübsche Miniaturen der älteren Periode, daneben schöne Federzeichnungen des 13.–14. Jahrhunderts. An eine Reihe von Evangelien, Lectionarien, Brevieren, Vulgaten u. A., vom 10.–15. Jahrh., aus der Dombibliothek zu Trier, dem Archiv zu Düsseldorf und aus Privatbesitz, wozu besonders Herr H. Garthe aus Köln sehr werthvolles Material beigesteuert, konnte man die alten Studien neu auffrischen und mit Vergnügen in kostbaren Exemplaren die Geschichte der Miniaturmalerei verfolgen. Des Inhaltes wegen erwähnen wir hier noch einen Tractatus de virtutibus et viciis, 13. Jhdt., einen schön ausgestatteten astronomischen Tractat des 13. Jahrh., das Cartular des Erzbischofs Balduin von Trier mit den interessanten Miniaturen und Federzeichungen, welche die Wahl, Krönung, den Römerzug und Tod Kaiser Heinrich’s VII. darstellen, sowie eine Matrikel der Universität Köln vom 14.–18. Jahrh., die, mit Ausnahme des Balduineums, im Besitze des Herrn H. Garthe in Köln sich befinden. Wir können hier unsern Lesern kein vollständiges Verzeichniß geben, ja selbst auf manche sehr wichtige und interessante Werke nicht eingehen; wir hatten nur die Absicht, hervorzuheben, von welcher Bedeutung die Ausstellung war, die aus jeder Zeitperiode
  • 58. und von jedem Gebiete etwas Wichtiges vorgeführt hat. Wir schließen mit dem früher schon ausgesprochenen Wunsche, daß ähnliche Ausstellungen recht häufig im Interesse des Studiums veranstaltet werden möchten. Es gibt keine öffentliche Sammlung, die in der Lage wäre, alle kunstgeschichtlich wichtigen Stücke, oder auch nur so viele vorzuführen, daß wir die ganze Kunst- und Kulturgeschichte in ihren Werken ersten Ranges studieren könnten. Die meisten Sammlungen bestehen der Mehrzahl nach aus keineswegs unwichtigen, aber jenen ausgezeichneten Werken gegenüber doch immer untergeordneten Gegenständen, und das Studium der Kunstgeschichte, das sich ausschließlich auf eine einzelne solcher Sammlungen gründete, würde ein falsches Resultat ergeben. Die Zerstreuung dieser höchst bedeutenden Werke, läßt das Wichtigste für das Studium, die unmittelbare Vergleichung, nicht zu, und so bedarf die Wissenschaft derartiger Ausstellungen, die das sonst zerstreute Material zeitweise neben einander bringt. N ü r n b e r g . A . E s s e n w e i n .
  • 59. Archäologische Funde in Böhmen. (Mit einer Tafel Abbildungen.) Im Anschlusse an meine, nun schon seit Jahren in diesen Blättern fortgesetzten Mittheilungen über archäologische Funde in Böhmen gebe ich hier wieder nähere Details über einige Funde, die mir theils durch Autopsie, theils durch schriftliche Berichte von Alterthumsfreunden, mit denen ich in Verbindung stehe, bekannt wurden. Auch diesmal wieder habe ich mehrere Funde aus jenem reichen Gebiete zwischen Erzgebirge, Eger und Elbe, dem sogenannten Flachland des Saazer und Leitmeritzer Kreises, zu berichten. B r ü x , S t a d t i n B ö h m e n , a n d e r B i e l a . Nach einer mir vom dortigen städtischen Herrn Rentmeister Cori, einem wackeren Alterthumsfreunde, zugegangenen Mittheilung wurden in der nächsten Nähe der Stadt Brüx im Jahre 1865 zwei Gräber mit Steinobjekten entdeckt. Das eine lag östlich der Stadt, am linken Ufer der Biela, ungefähr 300 Klafter von diesem Flüßchen selbst entfernt, eine Klafter tief in der Erde. Es enthielt, von Steinen umgeben, ein Skelett, das aber, sowie die daneben stehenden Todtentöpfe, ungeschickterweise zerschlagen wurde. Neben dem Skelette lagen ferner zwei Steinobjekte: ein Hammer von Serpentin, 12 Centim. lang, 5 Centim. breit, das Stielloch in der Mitte; das hintere Ende des Hammers ist walzenförmig zugerundet (Fig. 1); dann ein Meißel von dunkelgrauem Feuerstein 6,1 Centim. lang, an der scharfen Schneide 4,5 Centim. breit. Beide Objekte sind ganz glatt zugeschliffen und sehr zierlich gearbeitet. Sie kamen in die Sammlung Czernin nach Petersburg. — Ungefähr 1000 Klafter von dieser Fundstelle entfernt, traf man bald darauf am rechten Bielaufer, drei Fuß tief in der Erde, beim Roden eines Ackers zum Hopfenbau ein ähnliches Grab; es war kreisrund, am Boden mit einem Kranze weißer Kieselsteine umlegt. Der Durchmesser dieses
  • 60. Steinkranzes betrug drei Fuß. In der Mitte lag neben Knochenresten und Gefäßfragmenten eine Steinaxt (Serpentin), streng keilförmig zugeschliffen, das 2,8 Centim. im Durchmesser haltende Stielloch dem breiteren Ende näher. Die Axt ist 22 Centim. lang, 9 Centim. breit, also sehr wuchtig; sie kam an die Brüxer Realschule. S t e i n w a s s e r , Dorf, zwei Stunden südlich von Brüx. Bei Grabungen auf einem Felde stießen die Arbeiter in einer Tiefe von 3 Fuß auf zwei Skelettgräber. In dem einen lag ein Skelett ohne jegliche Beigabe; in dem zweiten fanden sich neben dem Skelette Fragmente eines aus großen, hohlen Bronzehalbkugeln bestehenden Armringes. Dasselbe ist dem bei Lindenschmitt „Alterthümer unserer heidnischen Vorzeit“, Heft IX, Taf. I abgebildeten, bei Passau gefundenen, vollständig ähnlich. Mehrere solcher Armringe wurden schon früher in der nächsten Nähe von Steinwasser auf dem Todtenfelde von Morawes gefunden. Die einzelnen Buckeln haben einen Längedurchmesser von 4,1 Centim., Breitedurchmesser 3,2 Centim. Der Verschluß geschah durch einen Dornfortsatz, der in eine Nuth des nächsten Buckels umgebogen werden konnte. Erhalten sind vier solcher Buckeln; ihrer Größe nach zu urtheilen bestand das ganze Armband aus sieben Buckeln. Die Schädel kamen an Dr. A. Weisbach, die Bronzeobjekte an mich. W e b e r s c h a n , Dorf zwischen Brüx und Postelberg, eine Stunde nördlich von letzterer Stadt entfernt. Beim Lehmgraben traf ein Grundbesitzer 2½ Schuh unter der Erde ein Aschengrab. Es war kreisrund und in demselben stand eine Urne, die leider zerschlagen wurde; in ihr lagen nebst Asche, Erde und Knochen eine 7,5 Centim. lange, schwache Bronzenadel mit scheibenförmigem Kopfe, Fig. 2; eine 3,2 Centim. lange Bronzepfeilspitze, Fig. 3; endlich ein 21,8 Gramme schweres Bronzeklümpchen, wahrscheinlich ein beim Leichenbrand zusammengeschmolzenes Objekt. Sämmtliche gefundene Gegenstände kamen an mich. N e h a s i t z , Dorf zwischen Brüx und Saaz. Die Grabungen auf dem bei Nehasitz gelegenen, in diesen Blättern schon wiederholt erwähnten Todtenfelde wurden auch im Jahre 1867, freilich meist
  • 61. nur im agricolen Interesse, fortgesetzt und lieferten eine ziemlich ergiebige Ausbeute an Bronzen, Urnen und Geräthen aus Stein, Bein und Hirschhorn sammt einer großen Anzahl Knochen mitbestatteter Thiere. Während dreier Tage war ich bei den Grabungen auf dem genannten Todtenfelde selbst anwesend. Wahrscheinlich dürften die Abgrabungen bei Nehasitz bald zu Ende kommen. Ich gehe eben damit um, die gewonnenen Resultate zusammenzustellen und in einer eigenen Monographie zu veröffentlichen. Von Jahr zu Jahr mehren sich die Funde in diesem Theil des nordwestlichen Böhmens; sie beweisen, wie stark diese Gegend, freilich eine der gesegnetsten und fruchtbarsten Böhmens, seit den ältesten Zeiten bewohnt gewesen ist. Die ungemein zahlreichen Gräber zeigen sehr bedeutende Verschiedenheiten in der Construction, wie in der Art der Beigaben und deuten auf zeitlich weit getrennte Perioden hin. Die wichtigsten Formen sind: 1. P l a t t e n g r ä b e r i n d e r E r d e m i t S k e l e t t e n u n d S t e i n o b j e k t e n . Solche wurden schon im vorigen Jahrhundert (1788 und 1792) bei Weboschan, unweit Teplitz, entdeckt; sie waren 6 Fuß lang, an den Seiten mit Steinplatten ausgelegt und mit einer Steinplatte geschlossen. In der Steinkiste lag je ein Skelett; als Beigaben fanden sich in dem einen Grabe zwei Urnen, in einem zweiten nebst zwei Urnen drei Steinobjekte, und zwar zwei Aexte (Basalt) und ein Keil (Hornstein). In dieselbe Klasse gehören auch die beiden merkwürdigen, im Jahre 1866 bei Kojetitz, einem Gute des Herrn Bachofen von Echt, zwischen Prag und Melnik, aufgefundenen Plattengräber. Sie waren an der Erdoberfläche mit einem Steinkreise von 9 Klaftern Durchmesser umstellt; in der Mitte des Steinkreises stieß man 2½ Fuß tief unter der Erdoberfläche auf eine große, roh zubehauene Kalksteinplatte; darunter lag ein Skelett, zu dessen Häupten eine Urne aus schwarzem, wenig gebranntem Thon, die einzige ärmliche Beigabe des Todten. Im zweiten Grabe traf man unter einer ähnlichen Steinplatte zwei Skelette, das eines Erwachsenen und das eines Kindes. Die Beigaben bestanden aus einer Urne, einem Steinkeil aus Serpentin und zwei Pfriemen von vier und acht Zoll Länge, aus gespaltenen Röhrenknochen verfertigt und
  • 62. scharf zugespitzt[243]. Hierher zu rechnen ist auch das eine der Gräber von Brüx, sowie zwei ähnliche von Hawran, einem Dorfe nächst Brüx. 2) R u n d g r ä b e r : a) mit Steinobjekten; hierher gehört das zweite der oben beschriebenen Gräber von Brüx; b) mit Bronzeobjekten. Die Skelettgräber dieser Art liegen 2½-9 Fuß tief unter der Erde, ihr Durchmesser wechselt zwischen 4–12 Fuß. Sie sind vollkommen kreisrund, entweder brunnenartig, oder nach unten sich verengend; die Leiche ruht darin bald in hockender Stellung bestattet, bald auf dem Boden des Grabes ausgestreckt, im letzteren Falle stets mit dem Kopfe nach Norden; in einzelnen Fällen ist sie auf ein Steinlager gebettet, oder mit Steinen umlegt. Neben den Skelett- finden sich auch B r a n d g r ä b e r ; sie sind weniger tief (1½ Fuß) und haben einen Durchmesser von circa 2–4 Fuß. Sie enthalten eine größere, die Asche bergende Urne, worinnen außerdem meist noch mehrere kleine Gefäße, Töpfchen, Schüsseln und Schalen stehen. Auch in den Skelettgräbern finden sich regelmäßig ähnliche Gefässe. Skelett- wie Brandgräber enthalten außerdem Bronzeobjekte, soviel mir bekannt ist, vorzugsweise Schmuckgegenstände, Armringe, Fibeln, Nadeln, dann Thonscheiben und Kügelchen von Thon und Stein. Beispiele dieser Bestattungsweise liefern die Todtenfelder von Nehasitz und von Morawes. 3) P l a t t e n g r ä b e r i n d e r E r d e , mit Bronzen. a) Skelettgräber; sie sind viereckig lang, an den Seiten mit Steinplatten ausgelegt, mit einer Steinplatte geschlossen, und enthalten als Beigaben nebst Bronzeobjekten, ebenfalls meist Schmuckgegenstände. Auch hier findet sich die hockende Bestattungsweise neben der liegenden. Beispiele liefern Schallan bei Teplitz und Saaz[244]. b) Brandgräber, 4 Fuß lang, 2 Fuß breit, an den Wänden mit Steinplatten ausgelegt und mit einer Steinplatte überdeckt. In der aschenhaltigen Erde standen je 4 Urnen mit Asche, Erde, Knochenfragmenten und einzelnen Bronzeobjekten. Beispiele dieser Bestattungsweise lieferten Teplitz und Bilin[245].
  • 63. Welcome to our website – the ideal destination for book lovers and knowledge seekers. With a mission to inspire endlessly, we offer a vast collection of books, ranging from classic literary works to specialized publications, self-development books, and children's literature. Each book is a new journey of discovery, expanding knowledge and enriching the soul of the reade 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. Let us accompany you on the journey of exploring knowledge and personal growth! textbookfull.com