100% found this document useful (3 votes)
79 views

[FREE PDF sample] Java 17 Quick Syntax Reference: A Pocket Guide to the Java SE Language, APIs, and Library Mikael Olsson ebooks

SE

Uploaded by

kavirareasa9
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
79 views

[FREE PDF sample] Java 17 Quick Syntax Reference: A Pocket Guide to the Java SE Language, APIs, and Library Mikael Olsson ebooks

SE

Uploaded by

kavirareasa9
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Get ebook downloads in full at ebookmeta.

com

Java 17 Quick Syntax Reference: A Pocket Guide to


the Java SE Language, APIs, and Library Mikael
Olsson

https://ebookmeta.com/product/java-17-quick-syntax-
reference-a-pocket-guide-to-the-java-se-language-apis-and-
library-mikael-olsson/

OR CLICK BUTTON

DOWNLOAD NOW

Explore and download more ebook at https://ebookmeta.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Java 17 Quick Syntax Reference A Pocket Guide to the Java


SE Language APIs and Library 3rd Edition Mikael Olsson

https://ebookmeta.com/product/java-17-quick-syntax-reference-a-pocket-
guide-to-the-java-se-language-apis-and-library-3rd-edition-mikael-
olsson/
ebookmeta.com

C# 10 Quick Syntax Reference: A Pocket Guide to the


Language, APIs, and Library Mikael Olsson

https://ebookmeta.com/product/c-10-quick-syntax-reference-a-pocket-
guide-to-the-language-apis-and-library-mikael-olsson/

ebookmeta.com

Java 17 Quick Syntax Reference 3rd Edition Mikael Olsson

https://ebookmeta.com/product/java-17-quick-syntax-reference-3rd-
edition-mikael-olsson/

ebookmeta.com

Lectures on Random Lozenge Tilings Cambridge Studies in


Advanced Mathematics Series Number 193 1st Edition Vadim
Gorin
https://ebookmeta.com/product/lectures-on-random-lozenge-tilings-
cambridge-studies-in-advanced-mathematics-series-number-193-1st-
edition-vadim-gorin/
ebookmeta.com
War in the Modern World Course Guidebook The Great Courses
Wondrium 1st Edition David R. Stone

https://ebookmeta.com/product/war-in-the-modern-world-course-
guidebook-the-great-courses-wondrium-1st-edition-david-r-stone/

ebookmeta.com

Hair Story Nonieqa Ramos

https://ebookmeta.com/product/hair-story-nonieqa-ramos/

ebookmeta.com

Activist Affordances How Disabled People Improvise More


Habitable Worlds 1st Edition Arseli Dokumaci

https://ebookmeta.com/product/activist-affordances-how-disabled-
people-improvise-more-habitable-worlds-1st-edition-arseli-dokumaci/

ebookmeta.com

Designing Machine Learning Systems: An Iterative Process


for Production-Ready Applications Chip Huyen

https://ebookmeta.com/product/designing-machine-learning-systems-an-
iterative-process-for-production-ready-applications-chip-huyen/

ebookmeta.com

Hi-C Data Analysis 1st Edition Silvio Bicciato

https://ebookmeta.com/product/hi-c-data-analysis-1st-edition-silvio-
bicciato/

ebookmeta.com
Bioinformatics in Rice Research Theories and Techniques
1st Edition Manoj Kumar Gupta (Editor)

https://ebookmeta.com/product/bioinformatics-in-rice-research-
theories-and-techniques-1st-edition-manoj-kumar-gupta-editor/

ebookmeta.com
Java 17 Quick
Syntax Reference
A Pocket Guide to the Java
SE Language, APIs, and Library

Third Edition

Mikael Olsson
Java 17 Quick Syntax
Reference
A Pocket Guide to the Java SE
Language, APIs, and Library
Third Edition

Mikael Olsson
Java 17 Quick Syntax Reference: A Pocket Guide to the Java SE Language,
APIs, and Library

Mikael Olsson
Hammarland, Länsi-Suomi, Finland

ISBN-13 (pbk): 978-1-4842-7370-8 ISBN-13 (electronic): 978-1-4842- 7371-5


https://doi.org/10.1007/978-1-4842-7371-5

Copyright © 2022 by Mikael Olsson


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: Matthew Moodie
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Cover image by Janco Ferlic on Unsplash (www.unsplash.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY
10004, U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected],
or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member
(owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance
Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for
reprint, paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub via the book’s product page, located at www.apress.com/
9781484273708. For more detailed information, please visit http://www.apress.com/
source-­code.
Printed on acid-free paper
Table of Contents
About the Author���������������������������������������������������������������������������������xi

About the Technical Reviewer�����������������������������������������������������������xiii


Introduction����������������������������������������������������������������������������������������xv

Chapter 1: Hello World��������������������������������������������������������������������������1


Installing���������������������������������������������������������������������������������������������������������������1
Creating a Project�������������������������������������������������������������������������������������������������1
Hello World������������������������������������������������������������������������������������������������������������2
Code Hints�������������������������������������������������������������������������������������������������������������4

Chapter 2: Compile and Run�����������������������������������������������������������������5


Running from the IDE��������������������������������������������������������������������������������������������5
Running from a Console Window��������������������������������������������������������������������������5
Comments�������������������������������������������������������������������������������������������������������������6
Preview Features��������������������������������������������������������������������������������������������������7

Chapter 3: Variables�����������������������������������������������������������������������������9
Data Types�������������������������������������������������������������������������������������������������������������9
Declaring Variables���������������������������������������������������������������������������������������������10
Assigning Variables���������������������������������������������������������������������������������������������10
Using Variables���������������������������������������������������������������������������������������������������10
Integer Types�������������������������������������������������������������������������������������������������������11
Floating-Point Types��������������������������������������������������������������������������������������������11

iii
Table of Contents

Char Type������������������������������������������������������������������������������������������������������������12
Boolean Type�������������������������������������������������������������������������������������������������������12
Variable Scope����������������������������������������������������������������������������������������������������13
Anonymous Block�����������������������������������������������������������������������������������������������13
Type Inference�����������������������������������������������������������������������������������������������������14

Chapter 4: Operators��������������������������������������������������������������������������15
Arithmetic Operators�������������������������������������������������������������������������������������������15
Assignment Operators����������������������������������������������������������������������������������������16
Increment and Decrement Operators������������������������������������������������������������������16
Comparison Operators����������������������������������������������������������������������������������������17
Logical Operators������������������������������������������������������������������������������������������������17
Bitwise Operators�����������������������������������������������������������������������������������������������18
Operator Precedence������������������������������������������������������������������������������������������18

Chapter 5: String��������������������������������������������������������������������������������21
Combining Strings�����������������������������������������������������������������������������������������������21
Escape Characters����������������������������������������������������������������������������������������������22
String Compare���������������������������������������������������������������������������������������������������23
StringBuffer Class�����������������������������������������������������������������������������������������������23
Text Blocks����������������������������������������������������������������������������������������������������������24

Chapter 6: Arrays��������������������������������������������������������������������������������27
Array Declaration������������������������������������������������������������������������������������������������27
Array Allocation���������������������������������������������������������������������������������������������������27
Array Assignment������������������������������������������������������������������������������������������������28
Multidimensional Arrays�������������������������������������������������������������������������������������28
ArrayList Class����������������������������������������������������������������������������������������������������29

iv
Table of Contents

Chapter 7: Conditionals����������������������������������������������������������������������31
If Statement��������������������������������������������������������������������������������������������������������31
Switch Statement�����������������������������������������������������������������������������������������������32
Switch Expression�����������������������������������������������������������������������������������������������33
Ternary Operator�������������������������������������������������������������������������������������������������35

Chapter 8: Loops���������������������������������������������������������������������������������37
While Loop����������������������������������������������������������������������������������������������������������37
Do While Loop�����������������������������������������������������������������������������������������������������38
For Loop��������������������������������������������������������������������������������������������������������������38
For Each Loop�����������������������������������������������������������������������������������������������������39
Break and Continue���������������������������������������������������������������������������������������������39
Labeled Block�����������������������������������������������������������������������������������������������������40

Chapter 9: Methods����������������������������������������������������������������������������41
Defining Methods������������������������������������������������������������������������������������������������41
Calling Methods��������������������������������������������������������������������������������������������������42
Method Parameters��������������������������������������������������������������������������������������������42
Return Statement������������������������������������������������������������������������������������������������43
Method Overloading��������������������������������������������������������������������������������������������44
Passing Arguments���������������������������������������������������������������������������������������������45

Chapter 10: Class�������������������������������������������������������������������������������47


Object Creation���������������������������������������������������������������������������������������������������47
Accessing Object Members��������������������������������������������������������������������������������48
Constructor���������������������������������������������������������������������������������������������������������49
This Keyword������������������������������������������������������������������������������������������������������50
Constructor Overloading�������������������������������������������������������������������������������������50

v
Table of Contents

Constructor Chaining������������������������������������������������������������������������������������������51
Initial Field Values�����������������������������������������������������������������������������������������������51
Default Constructor���������������������������������������������������������������������������������������������52
Null����������������������������������������������������������������������������������������������������������������������52
Default Values�����������������������������������������������������������������������������������������������������53
Garbage Collector�����������������������������������������������������������������������������������������������53

Chapter 11: Static�������������������������������������������������������������������������������55


Accessing Static Members���������������������������������������������������������������������������������56
Static Methods����������������������������������������������������������������������������������������������������56
Static Fields��������������������������������������������������������������������������������������������������������57
Static Initialization Blocks�����������������������������������������������������������������������������������57
Instance Initialization Blocks������������������������������������������������������������������������������58

Chapter 12: Inheritance����������������������������������������������������������������������59


Upcasting������������������������������������������������������������������������������������������������������������60
Downcasting�������������������������������������������������������������������������������������������������������60
Instanceof Operator��������������������������������������������������������������������������������������������60
Pattern Matching Switch������������������������������������������������������������������������������������62
Restricting Inheritance����������������������������������������������������������������������������������������62

Chapter 13: Overriding�����������������������������������������������������������������������65


Overriding Methods���������������������������������������������������������������������������������������������65
Override Annotation��������������������������������������������������������������������������������������������66
Hiding Methods���������������������������������������������������������������������������������������������������67
Hiding Fields�������������������������������������������������������������������������������������������������������68
Accessing Redefined Members��������������������������������������������������������������������������69
Calling Parent Constructor����������������������������������������������������������������������������������69

vi
Table of Contents

Chapter 14: Packages and Import������������������������������������������������������71


Accessing Packages�������������������������������������������������������������������������������������������72

Chapter 15: Modules��������������������������������������������������������������������������75


Creating a Module�����������������������������������������������������������������������������������������������75
Using a Module���������������������������������������������������������������������������������������������������77

Chapter 16: Access Levels������������������������������������������������������������������79


Private Access�����������������������������������������������������������������������������������������������������79
Package-Private Access��������������������������������������������������������������������������������������80
Protected Access������������������������������������������������������������������������������������������������81
Public Access������������������������������������������������������������������������������������������������������82
Top-Level Access������������������������������������������������������������������������������������������������83
Nested Class Access�������������������������������������������������������������������������������������������83
Access-Level Guideline���������������������������������������������������������������������������������������84

Chapter 17: Constants������������������������������������������������������������������������85


Local Constants���������������������������������������������������������������������������������������������������85
Constant Fields���������������������������������������������������������������������������������������������������85
Constant Method Parameters�����������������������������������������������������������������������������86
Compile-Time and Runtime Constants����������������������������������������������������������������86
Constant Guideline����������������������������������������������������������������������������������������������87

Chapter 18: Interface��������������������������������������������������������������������������89


Interface Members����������������������������������������������������������������������������������������������89
Interface Example�����������������������������������������������������������������������������������������������90
Functionality Interface����������������������������������������������������������������������������������������91
Class Interface����������������������������������������������������������������������������������������������������92
Interface Classes������������������������������������������������������������������������������������������������93

vii
Table of Contents

Default Interface Methods����������������������������������������������������������������������������������94


Static Interface Methods�������������������������������������������������������������������������������������94

Chapter 19: Abstract��������������������������������������������������������������������������97


Abstract Class Example��������������������������������������������������������������������������������������97
Abstract Classes and Interfaces�������������������������������������������������������������������������99

Chapter 20: Enum�����������������������������������������������������������������������������101


Enum Class�������������������������������������������������������������������������������������������������������102

Chapter 21: Exception Handling�������������������������������������������������������105


Try-Catch�����������������������������������������������������������������������������������������������������������105
Catch Block�������������������������������������������������������������������������������������������������������106
Finally Block������������������������������������������������������������������������������������������������������107
Throwing Exceptions�����������������������������������������������������������������������������������������109
Checked and Unchecked Exceptions����������������������������������������������������������������109
Exception Hierarchy������������������������������������������������������������������������������������������110

Chapter 22: Boxing and Unboxing����������������������������������������������������111


Autoboxing and Autounboxing��������������������������������������������������������������������������112
Primitive and Wrapper Guideline�����������������������������������������������������������������������112

Chapter 23: Generics������������������������������������������������������������������������113


Generic Classes������������������������������������������������������������������������������������������������113
Generic Methods�����������������������������������������������������������������������������������������������114
Calling Generic Methods�����������������������������������������������������������������������������������115
Generic Interfaces���������������������������������������������������������������������������������������������116
Generic Type Parameters����������������������������������������������������������������������������������117
Generic Variable Usages�����������������������������������������������������������������������������������117

viii
Table of Contents

Bounded Type Parameters��������������������������������������������������������������������������������118


Generics and Object������������������������������������������������������������������������������������������120

Chapter 24: Lambda Expressions�����������������������������������������������������123


Lambda Objects������������������������������������������������������������������������������������������������123
Lambda Parameters������������������������������������������������������������������������������������������125

Index�������������������������������������������������������������������������������������������������127

ix
About the Author
Mikael Olsson is a professional web
entrepreneur, programmer, and author. He
works for an R&D company in Finland where
he specializes in software development. In
his spare time, he writes books and creates
websites that summarize various fields of
interest. The books he writes are focused on
teaching their subject in the most efficient way
possible, by explaining only what is relevant
and practical without any unnecessary
repetition or theory.

xi
About the Technical Reviewer
Manuel Jordan Elera is an autodidactic
developer and researcher who enjoys learning
new technologies for his own experiments
and creating new integrations. Manuel won
the Springy Award – Community Champion
and Spring Champion 2013. In his little free
time, he reads the Bible and composes music
on his guitar. Manuel is known as dr_pompeii.
He has tech-reviewed numerous books
for Apress, including Pro Spring MVC with
WebFlux (2020), Pro Spring Boot 2 (2019), Rapid Java Persistence and
Microservices (2019), Java Language Features (2018), Spring Boot 2 Recipes
(2018), and Java APIs, Extensions and Libraries (2018). Read his 13 detailed
tutorials about many Spring technologies, contact him through his blog
at www.manueljordanelera.blogspot.com, and follow him on his Twitter
account, @dr_pompeii.

xiii
Introduction
Java is a high-level object-oriented programming language developed by
Sun Microsystems, which became part of Oracle Corporation in 2010. The
language is very similar to C++ but has been simplified to make it easier
to write bug-free code. Most notably, unlike C++, there are no pointers
in Java—instead, all memory allocation and deallocation is handled
automatically.
Despite simplifications like this, Java has considerably more
functionality than C++, due to its large class library. Java programs
also have high performance and can be made very secure, which
has contributed to making Java the most popular general-purpose
programming language in use today.
Another key feature of Java is that it is platform independent. This is
achieved by only compiling programs halfway, into platform-independent
instructions called bytecode. The bytecode is then interpreted, or run,
by the Java Virtual Machine (JVM). That means any system that has
this program and its accompanying libraries installed can run Java
applications.
To allow Java to be used in a variety of environments, there are four
different editions: Java ME, Java SE, Java EE, and Java FX. Each edition
contains a JVM and a set of class libraries. Java SE (Standard Edition)
provides the standard JVM along with the commonly used libraries for
building applications, in particular desktop applications. Java ME (Micro
Edition) is a small-footprint version of Java SE designed for running on
small devices such as mobile phones. Java EE (Enterprise Edition) is an
extended version of Java SE that includes libraries for building large-scale

xv
Introduction

web applications. The most recently added edition is JavaFX, a lightweight


version intended for building desktop and rich web applications. This
edition includes a new library for making graphical user interfaces (GUIs),
which is intended to replace the standard GUI library called Swing used in
Java SE.
To allow Java to be used in a variety of environments, there are four
different editions: Java SE, Java ME, Java EE, and Java FX. Each edition
contains a JVM and a set of class libraries. Java SE (Standard Edition)
provides the standard JVM along with the commonly used libraries for
building applications, in particular desktop applications. Java ME (Micro
Edition) is a small-footprint version of Java SE designed for running on
small devices such as mobile phones. Java EE (Enterprise Edition) is an
extended version of Java SE that includes libraries for building large-scale
web applications. The most recently added edition is Java FX, a lightweight
version intended for building rich web applications.
The Java language and class libraries have undergone major changes
since their initial release in 1996. The naming conventions for the versions
have gone through a few revisions as well, mainly for marketing reasons.
The major releases include JDK 1.0, JDK 1.1, J2SE 1.2, J2SE 1.3, J2SE 1.4,
J2SE 5.0, followed by Java SE 6 to Java SE 17, with Java SE 17 being the
current version as of writing. For the sake of simplicity, the Java versions
will be referred to as Java 1–17 in this book. Note that Java is designed to be
backward-compatible. Therefore, the Virtual Machine for Java 17 can still
run Java 1 applications.

xvi
CHAPTER 1

Hello World
I nstalling
Before you can program in Java, you need to download and install a Java
Development Kit (JDK), such as the Standard Edition (JDK SE) from
Oracle’s website.1 Among other things, the JDK includes the Java compiler,
the class libraries, and the virtual machine needed to run Java applications.
You should also download an Integrated Development Environment (IDE)
as it will make development in Java much easier. One such Java IDE is
Apache NetBeans,2 which is available for free on Windows, macOS, and
Linux. If you don’t want to use any IDE at all, using a regular text editor is
also an option. To work without an IDE, you can create an empty file with
the .java extension—for example, MyApp.java—and open it in your text
editor of choice.

C
 reating a Project
If you decide to use an IDE (recommended), you need to create a
project, which will manage the Java source files and other resources.
To create a project in NetBeans, click File ➤ New Project. In the dialog

1
www.oracle.com/java/technologies/javase-downloads.html
2
https://netbeans.org

© Mikael Olsson 2022 1


M. Olsson, Java 17 Quick Syntax Reference, https://doi.org/10.1007/978-1-4842-7371-5_1
Other documents randomly have
different content
Emir Ikenukhen, 244, 504, 505

Fabu, 67
Fafa, 194, 197, 250, 379
Faguibine, Lake, 33
Faidherbe, General, 17, 24, 352, 500
Fandu, 314, 316
Fanta, 380
Farca, 268, 270, 272, 273
Farimake, 372
Fatimata Azzer’a, 237
Faure, Felix, President, 176
Festing, Major, 474-477, 481, 482, 487, 490
Fily or Fili Kanté, 97, 304, 333, 337, 340, 469, 480
Fituka, 316
Flatters, 114, 145, 244, 391
Flint, Mr., 490
Fogne, 443
Fonssagrives, 458, 474
Footah, 66, 280, 352
Forcades, The, 495
Forcados, 492, 495
Forgo, 164
Fort Archinard, 39, 298, 302, 306, 317, 320-325, 332-337, 339, 344, 348, 356,
360, 371, 387, 392, 398-400, 403, 508
Fort Arenberg or Taubman-Goldie, 470, 471, 473
Fort Goree, 21
Froger, Naval-Ensign, 7
Fulahs or Peuls, the, 3, 65, 75, 78, 129, 166, 181, 194, 202, 251, 271, 280,
309, 312, 314, 316, 325, 351, 352, 359, 362, 363, 368, 379, 386, 394, 396,
408, 422, 436, 454
Futanis, the, 406, 408, 411, 426
Futankés, the, 282, 290, 385, 406

Gaberos, the, 181, 315, 316, 382, 384


Gabibi, the, 216
Gagno, 422
Galam, 496
Gallieni, Colonel, 67, 284, 500
Gambia, the, 6
Gando, 428, 429, 438, 454
Gao or Garo, 165-167, 268, 279, 506, 507
Gao-Wâdy, 242, 243
Garafiri, 462, 467
Garama, 166
Garamantes, the, 166
Gardio, 140
Garnier, Francis, 511
Gauthiot, M., 36, 37, 170
Geba, 471-476, 481, 486
Geigelia, 93
Gheres, 237
Gherinecha, 237, 238
Gilua, 439
Giraudon, M. de, 352
Girris, 427-429, 435
Gober or Sinder, 207, 313, 507
Gomba, 433, 436, 437
Goruberi, 411, 414, 420, 424
Gorubi, 412
Gourma, 316, 317, 328
Grodet, M., 20, 28, 32, 289
Grunner, Dr , 428, 438
Guadjibo or Badjibo, 470, 471, 473, 476
Guinina, 67
Gumba, 405
Gundam, 129
Gungi, 134, 136, 140
Guni, 62
Gurao, 74, 77, 334
Gurienisi, the, 325
Gurma, 354, 366, 387

Ha, 163
Habés, the, 367
Habibulaye, 78, 80, 81
Hacquart, Father, 83, 87, 94, 97, 103, 107, 118, 136, 145, 156-158, 172-174,
258, 272, 278, 279, 283, 290, 303, 324, 338, 340, 341, 351, 398, 427, 430,
432, 510
Hadji Hamet, 427, 428, 430, 432, 435
Hamadi, 80, 87, 89
Hamda-Allahi, 76, 78, 314, 365
Hameit, a sheriff, 104, 135, 140
Hamma Tansa, 392
Hanotaux, Commandant, 228
Haussa, 222, 325, 381, 395, 411, 429, 430, 439, 482
Hoggars, the, 81, 114, 136, 144-146, 231, 244-246
Hombori, 367, 373
Hugo, 282-284, 393

Ibnu, 118, 119


Ibrahim, 155, 161, 397
Ibrahim Bubakar, 342
Ibrahim Galadio, 288, 312-314, 351, 360, 362-367, 371, 372, 382
Idris, 192, 194
Ifoghas, the, 190, 192, 241
Igga, 440, 454, 479, 485
Igharghar, 243
Igwadaren, the, 91, 104, 106, 116-135, 142-145, 148, 209, 217, 240
Ihaggaren, the, 144, 215, 225, 227, 230, 231, 240, 249
Ikum, 440
Ilo, 426, 430, 431, 434-437, 474
Ioraghen, the, 129
Iregnaten, the, 129
Issa, 434
Issa-Ber, 33

Jenné, 52, 73, 96, 352


Jesero, 438
Joffre, Colonel, 33
Joliba or Upper Niger, 5
Jouenne, Dr., 8

Kabara, 81, 83, 90, 91, 93, 102, 121


Kagha, 90, 100, 107, 108, 174
Kaheide, 30
Kale, 392
Kambaris, the, 440
Kandji, 462
Kardieba, 127, 148
Karma, 281, 282, 313, 414
Karu, 251, 257
Kayes, 27, 30, 38, 39, 41, 49, 73, 476, 500
Kebbi, 317, 377, 409, 411, 413, 439
Kel Ahara, the, 238, 240, 241
Kel Air, the, 168, 177, 180
Kel Antassar, the, 33, 103, 118, 125
Kel Avis, the, 192
Kel Es Suk, the, 104, 121, 136, 162, 182-186, 207, 208, 217, 269, 270
Kel Gheres, the, 231, 237, 243, 246, 282
Kel Gossi, the, 100, 101, 107, 241
Kel Kumeden, the, 238, 240, 241
Kel Owi, the, 122, 142, 143
Kel Tedjiuane, the, 238, 240, 241
Kel Temulai, the, 102, 104, 106-110, 114, 173, 209, 375
Kendadji, 265, 438
Kibtachi, 296, 313, 381-384, 403, 405
Kieka-Sanké, 62-64
Kisira, 445
Kita, 9, 50, 51, 54, 408
Koa, 100
Kokoro, 276
Kolikoro, 8, 12, 22, 52-59, 62, 63, 73
Koly Mody, 373
Kompa, 282, 405-408, 411, 417, 420, 424
Kongu, 124
Konnari, 394
Konotasi, 462, 467
Koridjuga, 62
Koriomé, 8, 81
Koyraberos, the, 306, 309, 311, 323, 324, 361, 381, 508
Kpatachi, 462
Kuka, 491
Kunari, 373
Kundji, 438
Kunta, 108
Kuntas, the, 77, 81, 87-91, 100-103, 105, 106, 140, 141, 146, 152, 172, 177
Kurteyes, the, 181, 268, 271, 274, 278, 282, 316, 326, 382, 393, 425, 434, 435
Kutkuole, 282
Kutungu, 265

Labezenga, 193, 252, 257, 260, 261, 264, 370, 406


Lamothe, M. de, 23, 27
Lander, Richard, 472
Lankafu, 438
Laperrine, Captain, 145
Larba, 312
Lat-Dior, 23
Lavigerie, Mgr., 84
Leba, 453, 456, 457, 470, 471, 473, 476
Lefort, Sub-lieutenant, 8
Lemta or Lemtuma, 204, 240
Liptako, 372
Logomaten, the, 218, 242, 252, 270, 312
Lokodja, 344, 473, 475, 479, 480-485, 488

M’Pal, 23
Ma, 55, 56
Mabrok, 90
Madani, 292
Madecali, 420, 423-426, 434
Mademba Seye, 66-69, 71, 73
Madidu, Chief of the Awellimiden, 104-107, 136, 154, 155, 164-168, 170-180,
183, 192, 194-196, 217, 219, 240, 247, 265, 266, 271, 277, 286, 312, 368,
372, 382, 387, 426
Madunia, 102, 112
Mage, The, 9, 10, 74
Malet, Sir Edward, 10, 413
Malinke, the, 54
Malo, 277
Mamadu, 97
Mamé, 96, 97, 109, 259, 260, 263, 434
Manambugu, 8, 9, 52
Mandao, Osmane, 17, 26
Marchand, 36, 38
Marka, 274
Massala, 56
Massenya, 1
Massina, 8, 280, 312, 314, 316, 353, 367, 371, 372, 386, 394, 405
Matam, 30
Matar Samba, 87, 95
Mattei, Commandant, 483, 484, 488
Mauri, 313, 377, 413
Maussinissa, 202
Milali, 107
Mizon, 451, 470, 482
Modibo Konna, 394, 396, 397
Mohamed Askia, 165
Mohamed ben Eddain, 208
Mohamed Uld Mbirikat, 118, 121-123, 127, 130, 134, 136, 140
Mohammed ben Abdallah, 88, 201
Mohammed Djebbo, 385
Monteil, Colonel, 6, 7, 11, 17, 285, 360, 412, 413, 421
Mopti, 34, 140, 386, 394, 405
Mores, 474
Morning Star, The, 472
Morocco, 144, 204, 208, 209, 216
Mosi, 216
Mossi, 39, 65, 66, 316, 325, 353, 354, 373, 375, 377-379
Mount Davoust, 440
Mount Delagarde, 440
Mount Kolikoro, 56, 57
Mount Tondibi, 163
Moyadikoira, 147
Mumi, 386, 387
Mungo Park, 5, 6, 9, 165, 439, 500
Mussa, 97, 337
Mycenæ, 118

Naba of Wagadugu, 378


Nabi Mussa or Mises, 375
Namantugu Mame, 412
Neschrun, 185, 186
Ngiti-Sokoto, the, 243
Ngouna, 33
Ngubi-Sokoto, the, 437
N’Guna, 103, 105
Niger, the, 2, 5-14, 17, 18, 22, 23, 32, 33, 36-39, 42, 44, 52, 54, 56, 72-74, 78,
82, 84, 94, 96, 99, 101, 105, 116, 128, 129, 142, 146, 152, 157, 160, 163,
165-168, 176, 182, 185, 191, 193, 202, 209, 210, 242, 243, 262, 263, 269,
271, 273, 279, 281, 289, 290, 294, 295, 298, 314, 334, 344, 350, 353, 368,
386, 393, 404, 405-408, 411-415, 421, 440, 453, 458, 460, 464, 470, 472,
477, 483, 488, 492, 493, 495, 498, 499, 504, 507, 508, 510
Niger, The, 9, 10, 74
Nigotte, Captain, 218
Nigritian, The, 479
Nikki, 474
Nioro, 68, 100, 280, 282, 312, 313, 316
Niugui, 372
Nuhu, 8
Nupé, 477
Nupé, The, 490

Olinda, The, 495


Onitcha, 490
Osman, 277, 306-308, 325, 327, 353, 368, 376-378, 384-386, 389, 391
Osterman, 59
Othman dan Fodio, 78, 395
Oursi Beli, 243

Patanis, the, 452, 470, 491


Pontoise, 298
Porto Novo, 495
Port Said, 484
Prince de Polignac, 197
Pullo Sidibé or Khalifa, 306-308, 351, 360, 363, 364, 368, 376, 382, 386

Rabba, 378, 476, 477


R’abbas, 109, 112
Raha, 436
R’alif, 109, 112
R’alli, 121-125, 138-140
Regard, Captain, 218
Reichala, daughter of Madidu, 219
Rejou, M., Commandant, 83, 89, 90
René Caillie, The, 470
Rhâdames, 197, 244, 505
Rhat, 207, 278
Rhergo, 102, 107, 114, 116, 118, 119
Ribago, The, 479, 485, 487, 490
Richardson, 505
Rimaibes, the, 316
R’isa, 237
Rocher, M. Du, 23
Rufisque, 22
Rupia, 440-442, 451

Saga, 283, 328


Sahara, the, 8, 82, 136, 160, 204
Said, 89
St. Louis, 17, 22-27, 39, 67, 281, 352, 496
Sakhaui or Sarrawi, 90, 91, 104, 116, 118, 131, 134, 138, 144, 145
Sakhib, 104, 126-128, 130, 131, 134, 135, 147
Saldé, 30
Salla Uld Kara, 88, 104, 149-155, 161
Samba Demba, 300, 337, 338, 468
Samba Laobé, 23, 319
Samba Sumaré, 123
Samory, 54, 67, 299, 301, 310, 313, 314, 330, 331, 377
Sansanding, 66-69, 72-74, 87
Sansan-Haussa, 191, 278, 306, 377
Saraféré, 78
Sarankeni, 331
Sarayamo, 367
Saredina, 74-76, 140, 141
Sarracolais, the, 27, 28, 96, 274, 300, 316, 496,
Satoni, 269, 270
Sauzereau, 38, 39, 41, 59
Say, 32, 74, 75, 96, 99, 174, 180, 219, 240, 250, 274, 277, 280, 282, 285, 289,
290, 293-297, 299, 300, 306-308, 310-328, 333-335, 337, 347, 351, 352,
356, 358, 363, 365-369, 372, 375-378, 381, 384-390, 397, 405, 406, 413,
422, 437, 439, 474, 476, 479, 499, 508
Seba, 450
Sego, 37, 39, 52, 64, 66, 68, 78, 98, 301, 312, 314
Senegal, the, 4, 6, 7, 17, 27, 44, 66, 97, 274, 280, 316, 317, 334, 381, 482,
496, 504, 507
Senegambia, 23, 24
Senussis, the, 201
Sergoe, 377, 388
Serki Kebbi, 378, 406, 409, 411-413, 421
Sidi Alluata, 79, 80, 100-103, 107
Sidibés, the, 316, 361, 382-384
Sidi el Amin, 146
Sidi Hamet, 89-91, 100, 117, 118, 120-122, 127, 148, 149, 151, 153
Sidi Hamet Beckay, 74-77, 79-81, 88, 101, 105, 121, 129, 140, 141, 146, 153-
155, 184
Sidi Moktar, 79, 105
Sidi Okha, 78
Sikasso, 330
Silla, 5
Sillabés, the, 274, 316, 382, 392
Sinder, 180, 207, 218, 266, 269, 272-275, 278, 283, 312, 316
Skobeleff, General, 262
Sokkoto, The, 483
Sokoto, 75, 174, 313, 372, 377, 395, 412, 413, 484
Somangoro, 54-57
Songhay, 96, 109, 161, 163-166, 182, 191-194, 202, 208, 209, 216, 217, 274,
306, 309, 312, 316, 324, 325, 351, 354, 430
Soninkés, the, 54-56, 71, 100, 274
Sorbo, 278, 281, 282
Soule, 423-425
Spahis, the, 23, 319
Stanley, 504
Sudan, the, 7, 14, 19, 22, 32, 37, 43, 49, 50, 52, 67-69, 79, 81, 82, 138, 172,
201, 210, 213, 252, 273, 284, 300, 336, 337, 345, 372, 411, 417, 441, 505
Sudan, The, 475
Sudan, French, 6, 17, 34, 38, 42, 44, 51, 77, 100, 126, 138, 210, 273, 299, 373,
451, 488, 489, 503
Sudan, Western, 76, 100, 165, 166, 193, 406, 498
Suleyman Foutanke, 280, 281, 290, 323, 352, 357, 381, 399, 400, 416, 430
Suleyman Gundiamu, 41, 95, 286, 287, 292, 329, 331, 373, 397, 430, 483
Sultan of Fez, 208
Sultan of Segu, 37, 314
Sundiata, 47, 54, 56
Surgu, 202

Taburet, Dr., 38, 52, 58, 60, 87, 94, 97, 118, 123, 134, 135, 158, 277, 278, 281,
290, 303, 327, 328, 332, 333, 338, 348, 393, 416-419, 474, 476, 484, 486,
510
Tacubaos, the, 218
Taddemekka, 182, 207
Tademeket, the, 104, 131, 148, 152, 154-158, 160-162, 168, 170, 201, 241,
269
Tahar, 121, 140
Talibia, 296-298, 360, 379, 381, 387, 388
Ta-Masheg or Tamschek, 109, 173, 202, 220, 222, 226, 228, 229, 509
Tankisso, 404
Tarik, 203
Tarka, 203
Tarkai-Tamut, 203
Tayoro, 394-398
Tchad, Lake, 28, 165, 247, 352, 372, 507
Tchakatchi, 438-440, 499
Tedian Diarra, 358
Tenda, 414-416, 420-424, 430, 447
Tenger Eguedeche, the, 162-164, 168, 170
Tenguereguif, the, 173, 209, 218
Thies, 23
Tieba, 330, 331
Tillé, 389
Timbuktu, 7, 8, 32, 33, 41, 69, 73, 75, 78-84, 87-91, 98, 102, 103, 106, 114-
120, 122, 126, 129, 130, 134, 136, 138, 142, 148, 245, 273, 279, 288, 309,
331, 335, 344, 351, 352, 368, 369, 427, 473, 495, 498, 499, 507
Tinalschiden, 149
Tintellust, 207
Tioko, 372
Togoland, 428
Tolimandio, 52
Tombuttu, 423, 424
Torodi, 312, 313, 315, 382, 384
Toron, 54
Tosaye or Sala Koira, 88, 89, 104, 128, 131, 148-153, 158, 162, 201, 219
Toucouleurs, the, 3, 8, 41, 62, 63, 66, 67, 73, 75, 76, 79, 105, 129, 130, 140,
152, 209, 218, 271, 279-282, 284, 285, 287-290, 299, 304, 312-314, 360,
382, 384, 386-393, 397, 405, 411, 414, 417, 419, 423
Toutée, Captain, 266, 269, 272, 273, 278, 282, 286, 290, 447, 457, 470
Towdeyni, 83
Trentinian, Colonel de, 34, 38, 138
Tripoli, 216, 505
Tuaregs, the, 8, 18, 33, 37, 65, 75, 78-80, 84, 88, 89, 98, 100, 101, 104, 106,
108, 114, 119-134, 138, 142, 144, 149-178, 182, 189-194, 197, 199-249,
251, 256, 257, 266, 269, 270-273, 275, 283, 307, 312, 315, 351, 368, 372,
379, 383, 388, 394, 397, 434, 470, 505-506, 509
Tuat, 78, 79, 81, 88, 216, 310
Tumaré, 268

Ubangi, the, 11
Uro Galadio, 37

Vermesch, 285
Vinet-Laprade, 24

Wadalen, the, 242


Wagadugu, 373, 375
Wagniaka, 372, 394
Wagobés, the, 269, 270, 272, 274, 316, 377
Walaldé, 30
Wali, 48
Wallace, Mr., 474, 475, 479, 480, 485, 490
Wari, 12, 491-494
Watagunu, 251
Wemé, the, 358
Wolof, 96, 280, 282, 320

Yakare, 71
Yangbassu, 458
Yauri, 377, 439
Yemen, 78
Yoba, 368
Yola, 479, 482
Yuli, 382
Yunes, 104, 156, 219
Yusuf Osman, 281, 282

Zarhoi, 122, 126, 139, 144


Richard Clay & Sons, Limited, London & Bungay.

FOOTNOTES:

[1]A popular French dance.—Trans.


[2]The translator thinks it best to give the actual words of this
celebrated despatch, which caused so much excitement at the
time.
[3]A griot is a superior negro, who acts as interpreter, etc.—
Trans.
[4]Bamana Dankun had replied to Monson who had called him,
“I will come; when I have finished the sacrifices I am offering, I will
come.” Hence the anger of the Fama.
[5]I have failed to ascertain the meaning of the word Jaribata.
The griots sometimes use words in their songs, which the present
natives of Bambara do not themselves understand, and which
may perhaps be survivals of a now extinct language.
[6]The singular of Ihaggaren is Ahaggar, and of Imrad, Amrid.
[7]It will be understood that the translations in the English text
of the free translations of the originals can only give an
approximate idea of the poems quoted.—Trans.
[8]These are the slang names for members of the secret police
in France.—Trans.
[9]I make a special point of the exact situation of Farca.
Captain Toutée says in a note to his book on Dahomey, the Niger,
and the Tuaregs, that he believed it to be much nearer Timbuktu,
but he had not taken any astronomical observations, and he had
made a mistake of a day in his journal. This rectification will
appear somewhat tardy after the articles published on his return
in the newspapers, and in the Bulletin of the Comité de L’Afrique
française, which led to its being supposed that Farca is on the
outskirts of the last French post in the Sudan. Had this been so,
the results of our expedition would have been greatly minimized.
Suum cuique.
On the subject of the recognition of the French protectorate by
the people of Farca, there must have been, to say the least, a
very great error of interpretation. Our readers have been able to
discover for themselves that unfortunately French influence does
not extend so far. Indeed, the hostile attitude of the people of
Sinder, who are the relations and feudal superiors of those of
Farca, and who attacked Captain Toutée, would have been
enough to prove it without anything else.
[10]The occupation of Say is now an accomplished fact, and
Amadu has fled in a north-westerly direction; but the French must
be more than ever careful to be on their guard against his forces,
aided by those of the Emir of Sokoto. We must be especially on
the watch against offensive action on the part of Samory, for does
not a certain section of the English press talk of arming and
rousing against us that monster in human form who under pretext
of a holy war is responsible for the destruction of thousands of his
fellow-creatures?
[11]Louis Blanc, ‘Histoire de Dix Ans.’ The sentence quoted is
quite untranslatable, but “We don’t care a rap for you,” perhaps
fairly represents it.—Trans.
[12]I must add that of the 373 miles of railway that I ask for,
125 are already made, and are in full work, so that the worst
difficulties are overcome.
Transcriber's note:

pg 120 Changed: of the Tauregs to: Tuaregs


pg 121 Changed: letter from Sakhuai to: Sakhaui
pg 200 Changed: the Tauregs alone to: Tuaregs
pg 428 Changed: In is, in fact to: It is
pg 516 Changed: Galan to: Galam
Other spelling inconsistencies have been left unchanged.
*** END OF THE PROJECT GUTENBERG EBOOK FRENCH
ENTERPRISE IN AFRICA ***

Updated editions will replace the previous one—the old editions


will be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States copyright
in these works, so the Foundation (and you!) can copy and
distribute it in the United States without permission and without
paying copyright royalties. Special rules, set forth in the General
Terms of Use part of this license, apply to copying and
distributing Project Gutenberg™ electronic works to protect the
PROJECT GUTENBERG™ concept and trademark. Project
Gutenberg is a registered trademark, and may not be used if
you charge for an eBook, except by following the terms of the
trademark license, including paying royalties for use of the
Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such
as creation of derivative works, reports, performances and
research. Project Gutenberg eBooks may be modified and
printed and given away—you may do practically ANYTHING in
the United States with eBooks not protected by U.S. copyright
law. Redistribution is subject to the trademark license, especially
commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the


free distribution of electronic works, by using or distributing this
work (or any other work associated in any way with the phrase
“Project Gutenberg”), you agree to comply with all the terms of
the Full Project Gutenberg™ License available with this file or
online at www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand,
agree to and accept all the terms of this license and intellectual
property (trademark/copyright) agreement. If you do not agree to
abide by all the terms of this agreement, you must cease using
and return or destroy all copies of Project Gutenberg™
electronic works in your possession. If you paid a fee for
obtaining a copy of or access to a Project Gutenberg™
electronic work and you do not agree to be bound by the terms
of this agreement, you may obtain a refund from the person or
entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only


be used on or associated in any way with an electronic work by
people who agree to be bound by the terms of this agreement.
There are a few things that you can do with most Project
Gutenberg™ electronic works even without complying with the
full terms of this agreement. See paragraph 1.C below. There
are a lot of things you can do with Project Gutenberg™
electronic works if you follow the terms of this agreement and
help preserve free future access to Project Gutenberg™
electronic works. See paragraph 1.E below.

You might also like