Professional Documents
Culture Documents
OCA Java SE 8 programmer I exam guide (exam 1Z0-808) Bates full chapter instant download
OCA Java SE 8 programmer I exam guide (exam 1Z0-808) Bates full chapter instant download
https://ebookmass.com/product/oca-java-se-8-programmer-i-exam-
guide-exams-1z0-808-certification-career-omg-kathy-sierra-bert-
bates/
https://ebookmass.com/product/ocp-java-se-8-programmer-ii-exam-
guide-exam-1z0-809-7th-edition-kathy-sierra/
https://ebookmass.com/product/ocp-oracle-certified-professional-
java-se-11-programmer-i-study-guide-exam-1z0-815-jeanne-boyarsky/
https://ebookmass.com/product/oca-oracle-database-sql-exam-guide-
exam-1z0-071-1st-edition-steve-ohearn/
OCP Oracle Certified Professional Java SE 17 Developer
(Exam 1Z0-829) Programmer's Guide Khalid A. Mughal &
Vasily A. Strelnikov
https://ebookmass.com/product/ocp-oracle-certified-professional-
java-se-17-developer-exam-1z0-829-programmers-guide-khalid-a-
mughal-vasily-a-strelnikov/
https://ebookmass.com/product/oracle-cloud-infrastructure-
architect-associate-all-in-one-exam-guide-exam-1z0-1072-roopesh-
ramklass/
https://ebookmass.com/product/bates-guide-to-physical-
examination-and-history-taking-bates-guide-to-physical-
examination-and-history-taking-12th-edition-ebook-pdf/
https://ebookmass.com/product/cts-i-certified-technology-
specialist-installation-exam-guide-second-edition-2nd-edition-
inc/
https://ebookmass.com/product/java-a-beginners-guide-7th-edition-
herbert-schildt/
Copyright © 2017 by McGraw-Hill Education. All rights reserved. Except as permitted under the United
States Copyright Act of 1976, no part of this publication may be reproduced or distributed in any form or
by any means, or stored in a database or retrieval system, without the prior written permission of the
publisher, with the exception that the program listings may be entered, stored, and executed in a computer
system, but they may not be reproduced for publication.
ISBN: 978-1-26-001138-8
MHID: 1-26-001138-0.
The material in this eBook also appears in the print version of this title: ISBN: 978-1-26-001136-4,
MHID: 1-26-001136-4.
All trademarks are trademarks of their respective owners. Rather than put a trademark symbol after every
occurrence of a trademarked name, we use names in an editorial fashion only, and to the benefit of the
trademark owner, with no intention of infringement of the trademark. Where such designations appear in
this book, they have been printed with initial caps.
McGraw-Hill Education eBooks are available at special quantity discounts to use as premiums and sales
promotions or for use in corporate training programs. To contact a representative, please visit the Contact
Us page at www.mhprofessional.com.
Oracle and Java are registered trademarks of Oracle Corporation and/or its affiliates. All other
trademarks are the property of their respective owners, and McGraw-Hill Education makes no claim of
ownership by the mention of products that contain these marks.
Screen displays of copyrighted Oracle software programs have been reproduced herein with the
permission of Oracle Corporation and/or its affiliates.
Oracle Corporation does not make any representations or warranties as to the accuracy, adequacy, or
completeness of any information contained in this Work, and is not responsible for any errors or
omissions.
TERMS OF USE
This is a copyrighted work and McGraw-Hill Education and its licensors reserve all rights in and to the
work. Use of this work is subject to these terms. Except as permitted under the Copyright Act of 1976 and
the right to store and retrieve one copy of the work, you may not decompile, disassemble, reverse
engineer, reproduce, modify, create derivative works based upon, transmit, distribute, disseminate, sell,
publish or sublicense the work or any part of it without McGraw-Hill Education’s prior consent. You may
use the work for your own noncommercial and personal use; any other use of the work is strictly
prohibited. Your right to use the work may be terminated if you fail to comply with these terms.
THE WORK IS PROVIDED “AS IS.” McGRAW-HILL EDUCATION AND ITS LICENSORS MAKE
NO GUARANTEES OR WARRANTIES AS TO THE ACCURACY, ADEQUACY OR
COMPLETENESS OF OR RESULTS TO BE OBTAINED FROM USING THE WORK, INCLUDING
ANY INFORMATION THAT CAN BE ACCESSED THROUGH THE WORK VIA HYPERLINK OR
OTHERWISE, AND EXPRESSLY DISCLAIM ANY WARRANTY, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE. McGraw-Hill Education and its licensors do not warrant or
guarantee that the functions contained in the work will meet your requirements or that its operation will be
uninterrupted or error free. Neither McGraw-Hill Education nor its licensors shall be liable to you or
anyone else for any inaccuracy, error or omission, regardless of cause, in the work or for any damages
resulting therefrom. McGraw-Hill Education has no responsibility for the content of any information
accessed through the work. Under no circumstances shall McGraw-Hill Education and/or its licensors be
liable for any indirect, incidental, special, punitive, consequential or similar damages that result from the
use of or inability to use the work, even if any of them has been advised of the possibility of such
damages. This limitation of liability shall apply to any claim or cause whatsoever whether such claim or
cause arises in contract, tort or otherwise.
CONTRIBUTORS
Bert Bates was a lead developer for many of Sun’s Java certification exams, including the SCJP for Java
5 and Java 6. Bert was also one of the lead developers for Oracle’s OCA 7 and OCP 7 exams and a
contributor on Oracle’s OCA 8 and OCP 8 exams. He is a forum moderator on Coderanch.com (formerly
JavaRanch.com) and has been developing software for more than 30 years (argh!). Bert is the co-author of
several bestselling Java books, and he’s a founding member of Oracle’s Java Champions program. Now
that the book is done, Bert plans to go whack a few tennis balls around and once again start riding his
beautiful Icelandic horse, Eyrraros fra Gufudal-Fremri.
We don’t know who burned the most midnight oil, but we can (and did) count everybody’s edits—so in
order of most edits made, we proudly present our Superstars.
Our top honors go to Kristin Stromberg—every time you see a semicolon used correctly, tip your hat
to Kristin. Next up is Burk Hufnagel who fixed more code than we care to admit. Bill Mietelski and
Gian Franco Casula caught every kind of error we threw at them—awesome job, guys! Devender
Thareja made sure we didn’t use too much slang, and Mark Spritzler kept the humor coming. Mikalai
Zaikin and Seema Manivannan made great catches every step of the way, and Marilyn de Queiroz and
Valentin Crettaz both put in another stellar performance (saving our butts yet again).
Marcelo Ortega, Jef Cumps (another veteran), Andrew Monkhouse, and Jeroen Sterken rounded out
our crew of Superstars—thanks to you all. Jim Yingst was a member of the Sun exam creation team, and
he helped us write and review some of the twistier questions in the book (bwa-ha-ha-ha).
As always, every time you read a clean page, thank our reviewers, and if you do catch an error, it’s
most certainly because your authors messed up. And oh, one last thanks to Johannes. You rule, dude!
Since the upgrade to the Java 6 exam was like a small surgical strike we decided that the technical
review team for this update to the book needed to be similarly fashioned. To that end we hand-picked an
elite crew of JavaRanch’s top gurus to perform the review for the Java 6 exam.
Our endless gratitude goes to Mikalai Zaikin. Mikalai played a huge role in the Java 5 book, and he
returned to help us out again for this Java 6 edition. We need to thank Volha, Anastasia, and Daria for
letting us borrow Mikalai. His comments and edits helped us make huge improvements to the book.
Thanks, Mikalai!
Marc Peabody gets special kudos for helping us out on a double header! In addition to helping us with
Sun’s new SCWCD exam, Marc pitched in with a great set of edits for this book—you saved our bacon
this winter, Marc! (BTW, we didn’t learn until late in the game that Marc, Bryan Basham, and Bert all
share a passion for ultimate Frisbee!)
Like several of our reviewers, not only does Fred Rosenberger volunteer copious amounts of his time
moderating at JavaRanch, he also found time to help us out with this book. Stacey and Olivia, you have
our thanks for loaning us Fred for a while.
Marc Weber moderates at some of JavaRanch’s busiest forums. Marc knows his stuff and uncovered
some really sneaky problems that were buried in the book. While we really appreciate Marc’s help, we
need to warn you all to watch out—he’s got a Phaser!
Finally, we send our thanks to Christophe Verre—if we can find him. It appears that Christophe
performs his JavaRanch moderation duties from various locations around the globe, including France,
Wales, and most recently Tokyo. On more than one occasion Christophe protected us from our own lack of
organization. Thanks for your patience, Christophe! It’s important to know that these guys all donated their
reviewer honorariums to JavaRanch! The JavaRanch community is in your debt.
The OCA 7 exam is primarily a useful repackaging of some of the objectives from the SCJP 6 exam. On
the other hand, the OCP 7 exam introduced a vast array of brand-new topics. We enlisted several talented
Java gurus to help us cover some of the new topics on the OCP 7 exam. Thanks and kudos to Tom
McGinn for his fantastic work in creating the massive JDBC chapter. Several reviewers told us that Tom
did an amazing job channeling the informal tone we use throughout the book. Next, thanks to Jeanne
Boyarsky. Jeanne was truly a renaissance woman on this project. She contributed to several OCP
chapters; she wrote some questions for the master exams; she performed some project management
activities; and as if that wasn’t enough, she was one of our most energetic technical reviewers. Jeanne, we
can’t thank you enough. Our thanks go to Matt Heimer for his excellent work on the Concurrent chapter.
A really tough topic nicely handled! Finally, Roel De Nijs and Roberto Perillo made some nice
contributions to the book and helped out on the technical review team—thanks, guys!
Due to “pilot error” on your authors’ part, the members of the review team for this book were asked to
work under a tighter-than-ideal schedule. We owe a huge thanks to our six reviewers for this book, who
leapt to action on short notice and once again made numerous fine contributions to the quality of the book.
As has become “the norm,” all our reviewers are moderators at the finest Java community website in the
whole universe, Coderanch.com.
Our first mention goes to Campbell Ritchie, long-time Coderanch moderator, hiker of steep hills, and,
by our count, most prolific reviewer for this edition. In other words, Campbell found the most errors.
Among other pursuits, Campbell is an expert in both pathology and programming, because…why not?
Every time you read an error-free page, think of Campbell and thank him.
In a virtual tie for second place in the “errors found” competition, we present Paweł Baczyński and
Fritz Walraven. Paweł calls Poland his home and is most proud of his wife, Ania, and kids, Szymek and
Gabrysia. He is almost as proud of the fact that we have to use a special keyboard to spell his name
correctly!
Fritz hails from the Netherlands, and if we understand correctly, cheers his kids as they demonstrate
their athletic prowess in various sports venues around Amersfoort. Fritz has also volunteered at an
orphanage in Uganda (we hope he teaches those kids Java!). Fritz, if we ever meet in person, Bert hereby
challenges you to a table tennis match.
We’d like to give a special shout out to Fritz and Pawel for sticking with us from Chapter 1 all the way
through to the second practice exam. It was a marathon, and we thank you both.
Next, we’d like to thank returning reviewer Vijitha Kumara. That’s right, he’s helped us before and
yet he volunteered again—wow! When Vijitha isn’t traveling or hiking, he enjoys what he refers to as
“crazy experiments.” We love you, Vijitha—don’t blow yourself up!
Tim Cooke was there when we needed him, at the beginning of the process and again to help us wrap
things up. We like Tim even though he’s been known to spend time with nefarious “functional
programmers.” (We suspect that’s where he was when he went missing for a few of the middle-of-the-
book chapters.) Tim lives in Ireland and started programming at an early age on an Amstrad CPC 464.
Nice!
Finally, a special thanks to another veteran of the technical review team, Roberto Perillo. Thanks for
coming back to help us again Roberto. Roberto is a family man who loves spending time with his son,
Lorenzo. Once Lorenzo has gone to bed, Roberto is known to play a bit of guitar or cheer for the Sao
Paulo “Futebol Clube” (we think this is a soccer team).
You guys are all awesome. Thanks for your wonderful assistance.
For Andi
For Bob
CONTENTS AT A GLANCE
Acknowledgments
Preface
Introduction
2 Object Orientation
Encapsulation (OCA Objectives 6.1 and 6.5)
Inheritance and Polymorphism (OCA Objectives 7.1 and 7.2)
The Evolution of Inheritance
IS-A and HAS-A Relationships
Polymorphism (OCA Objective 7.2)
Overriding/Overloading (OCA Objectives 6.1 and 7.2)
Overridden Methods
Overloaded Methods
Casting (OCA Objectives 2.2 and 7.3)
Implementing an Interface (OCA Objective 7.5)
Java 8—Now with Multiple Inheritance!
Legal Return Types (OCA Objectives 2.2 and 6.1)
Return Type Declarations
Returning a Value
Constructors and Instantiation (OCA Objectives 6.3 and 7.4)
Constructor Basics
Constructor Chaining
Rules for Constructors
Determine Whether a Default Constructor Will Be Created
Overloaded Constructors
Initialization Blocks (OCA Objectives 1.2 and 6.3-ish)
Statics (OCA Objective 6.2)
Static Variables and Methods
Certification Summary
Two-Minute Drill
Q&A Self Test
Self Test Answers
3 Assignments
Stack and Heap—Quick Review
Literals, Assignments, and Variables (OCA Objectives 2.1, 2.2, and 2.3)
Literal Values for All Primitive Types
Assignment Operators
Exercise 3-1: Casting Primitives
Scope (OCA Objective 1.1)
Variable Scope
Variable Initialization (OCA Objectives 2.1, 4.1, and 4.2)
Using a Variable or Array Element That Is Uninitialized and Unassigned
Local (Stack, Automatic) Primitives and Objects
Passing Variables into Methods (OCA Objective 6.6)
Passing Object Reference Variables
Does Java Use Pass-By-Value Semantics?
Passing Primitive Variables
Garbage Collection (OCA Objective 2.4)
Overview of Memory Management and Garbage Collection
Overview of Java’s Garbage Collector
Writing Code That Explicitly Makes Objects Eligible for Collection
Exercise 3-2: Garbage Collection Experiment
Certification Summary
Two-Minute Drill
Q&A Self Test
Self Test Answers
4 Operators
Java Operators (OCA Objectives 3.1, 3.2, and 3.3)
Assignment Operators
Relational Operators
instanceof Comparison
Arithmetic Operators
Conditional Operator
Logical Operators
Operator Precedence
Certification Summary
Two-Minute Drill
Q&A Self Test
Self Test Answers
Index
ACKNOWLEDGMENTS
All the incredibly hard-working folks at McGraw-Hill Education: Tim Green (who’s
been putting up with us for 14 years now), Lisa McClain, and LeeAnn Pickrell. Thanks for all your
help and for being so responsive, patient, flexible, and professional, and the nicest group of people
we could hope to work with.
All our friends at Kraftur (and our other horse-related friends) and, most especially, to Sherry,
Steinar, Stina and the girls, Kacie, DJ, Jec, Leslie and David, Annette and Bruce, Lucy, Cait, and
Jennifer, Gabrielle, and Mary. Thanks to Pedro and Ely.
Some of the software professionals and friends who helped us in the early days: Tom Bender,
Peter Loerincs, Craig Matthews, Leonard Coyne, Morgan Porter, and Mike Kavenaugh.
Dave Gustafson for his continued support, insights, and coaching.
Our wonderful contact and friend at Oracle, Yvonne Prefontaine.
Our great friends and gurus: Simon Roberts, Bryan Basham, and Kathy Collina.
Stu, Steve, Burt, and Marc Hedlund for injecting some fun into the process.
To Eden and Skyler, for being horrified that adults—out of school—would study this hard for
an exam.
To the Coderanch Trail Boss, Paul Wheaton, for running the best Java community site on the
Web, and to all the generous and patient JavaRanch, er, Coderanch moderators.
To all the past and present Java instructors for helping to make learning Java a fun experience,
including (to name only a few) Alan Petersen, Jean Tordella, Georgianna Meagher, Anthony
Orapallo, Jacqueline Jones, James Cubeta, Teri Cubeta, Rob Weingruber, John Nyquist, Asok
Perumainar, Steve Stelting, Kimberly Bobrow, Keith Ratliff, and the most caring and inspiring Java
guy on the planet, Jari Paukku.
Our furry and feathered friends: Eyra, Kara, Draumur, Vafi, Boi, Niki, and Bokeh.
Finally, to Eric Freeman and Beth Robson for your continued inspiration.
PREFACE
T his book’s primary objective is to help you prepare for and pass Oracle’s OCA Java SE 8
Programmer I certification exam.
This book follows closely both the breadth and the depth of the real exams. For instance,
after reading this book, you probably won’t emerge as an OO guru, but if you study the material and do
well on the Self Tests, you’ll have a basic understanding of OO, and you’ll do well on the exam. After
completing this book, you should feel confident that you have thoroughly reviewed all the objectives that
Oracle has established for these exams.
In This Book
This book is organized into six chapters to optimize your learning of the topics covered by the OCA 8
exam. Whenever possible, we’ve organized the chapters to parallel the Oracle objectives, but sometimes
we’ll mix up objectives or partially repeat them to present topics in an order better suited to learning the
material.
In Every Chapter
We’ve created a set of chapter components that call your attention to important items, reinforce important
points, and provide helpful exam-taking hints. Take a look at what you’ll find in every chapter:
Every chapter begins with the Certification Objectives—what you need to know in
order to pass the section on the exam dealing with the chapter topic. The Certification
Objective headings identify the objectives within the chapter, so you’ll always know an
objective when you see it!
Exam Watch notes call attention to information about, and potential pitfalls in, the exam.
Because we were on the team that created these exams, we know what you’re about to go
through!
On the Job callouts discuss practical aspects of certification topics that might not
Another random document with
no related content on Scribd:
Sir William Berkeley, Governor of Virginia, had an especial interest
in the mountains and the country beyond. As agent in America for
the Hudson’s Bay Company he hoped to help break the French
monopoly on the hinterland trade by exploiting the western territory
from Virginia. As early as 1669 he sent out John Lederer, a German,
who ranged the eastern slopes of the Blue Ridge, north and south,
for many miles. Even before that, Abraham Wood and other traders
with commissions from the governor had bartered far to the
southwest among the headwaters of Carolina coastal rivers.
They transported their wares on pack horses, 150 to 200 pounds
on each animal, making twenty miles or more a day on their journeys
when forage was plentiful. With guns, powder and shot as prime
trade goods they visited tribes who had previously bartered with the
Spaniards of Florida. They took hatchets, kettles, iron tools, colorful
blankets and a variety of trinkets to villages never before visited by
white men. On these occasions the appearance of that strange
animal, the horse, strung with tinkling bells and packing unbelievable
wealth on his back, created more awe among the savages than the
bearded white man himself.
In 1671 the Virginians crossed the southerly ridges into the New
River valley, and in another two years young Gabriel Arthur opened
commerce with the Cherokees in the terminal hills of the
Appalachians. He and his partner, James Needham, had some
extraordinary experiences. Needham, a much older man of some
experience in the Indian trade, was murdered by the savages on this
venture. Arthur himself escaped burning only through the
intervention of a Cherokee chief who, during the midst of the torture,
adopted him into the tribe.
The Cherokee chief dressed and armed Arthur as a brave and
sent him out with raiding war parties. In the first such instance, the
Virginian seems to have joined willingly enough in a murderous
surprise attack on a Spanish mission settlement in West Florida. In
another, he helped slaughter some sleeping native villagers one
night in the vicinity of Port Royal, South Carolina, on the promise of
the Cherokees that no Englishmen in those parts would be harmed
during the raid. Arthur later said he could tell that one English family
was celebrating Christmas when his war party crept by their hut.
In still another instance, Arthur went all the way to the banks of the
Ohio with his Cherokee chief to attack a Shawnee village. There he
was badly wounded and captured, but released with some reverence
when he scrubbed himself and exhibited his white skin to the
amazed savages. After making his way back to the country of his
Cherokee friends, the young Virginian finally returned to his own kind
on the James River, richly laden with furs and trade treaties.
Henry Woodward, Carolina’s resourceful pioneer, found evidence
of the Virginians’ trade on the backside of Lord Ashley’s proprietary
in 1674. Woodward, who saved the fledgling colony at Charles
Towne from bankruptcy by developing a trade in pelts and skins with
the hinterland savages, visited the palisaded village of the Westoes
that year. There, high up the Savannah River, he found the natives
already “well provided with arms, ammunition, tradeing cloath &
other trade from ye northward for which at set times of ye year they
truck drest deare skins furrs & young Indian slaves.”
Governor Berkeley’s traders were indeed carrying on a highly
profitable commerce. So much so, that in the interests of those
profits, it was claimed, the governor permitted favored hinterland
tribes to pillage Virginia tobacco planters with impunity. In any case
Berkeley, who operated gainfully in his capacity as a British fur
factor, did not respond with enough enthusiasm to the planters’
demands for protection, and a civil war resulted in 1676 that set back
the colony’s economy by years. The rebellion was led by a fiery,
twenty-nine-year-old patriot named Nathaniel Bacon. Before he died
suddenly of a camp malady, Bacon chased the governor across the
Chesapeake Bay to the Eastern Shore and burned Jamestown, the
capital of Virginia, to the ground. With Bacon’s death the revolt
collapsed and twenty-three prominent insurgent leaders were
hanged by the governor in an orgy of personal revenge.
But, if Governor Berkeley had won the war over the fur trade, it
was a merchant at the Falls of the James River who prospered most.
There, at his store, William Byrd maintained a fine stock of calico,
red coats, beads, knives, guns and Barbadian brandy for the pack-
traders who sought out beaver pelts among remote Indian villages in
the interior. So successful was Byrd that by the early 1680’s he
dominated the hinterland trading paths of Virginia and Carolina.
From this commerce he created the fortune that bought enough
slaves and tobacco lands to promote his family to a position among
the wealthiest in the colony, while the great hogsheads of pelts that
he shipped yearly down the James River to England contributed in
no small way to the support of Britain’s growing empire.
Henry Woodward and his Carolinians driving straight west avoided
the trading paths of the Virginians, as well as the Appalachian
Mountains, to invade the preserves of Spanish Florida. This took
them to the headwaters of rivers emptying into the Gulf of Mexico, to
the villages of the Creeks, where the Spaniards had previously
monopolized the trade in deerskins and Indian slaves. The
Carolinians diverted much of this profitable commerce to newly
located Charleston. Thousands upon thousands of deerskins were
shipped yearly to England, to be manufactured into a variety of
articles. Hundreds of Indian slaves were supplied to New England
and Virginia, and to Barbados where the rate of mortality on the hot
sugar plantations insured a steady demand.
Spanish resistance in the south, the extinction of deer and the
elimination of whole tribes of Indians who succumbed to slavery,
kept the Charleston traders pushing ever toward the unknown west,
across the headwaters of the Chattahoochee and the Alabama and
into the valley of the Tennessee River. Before the turn of the century
they had reached the lands of the Chickasaw Indians bordering on
the Mississippi River, where their bright trade goods soon brought in
all the available deer in those parts. There, they were busily helping
the Chickasaws make war on their neighbors, the Choctaws, to
procure slaves in lieu of the skins, when the French arrived.
French forts and a French alliance with the Choctaws halted this
English advance into the lower valley of the Mississippi. Even so, the
Carolina traders had pushed the English frontier farther west, by
hundreds of miles, than any other colonials would do during the next
half century.
North of Virginia in the latter part of the seventeenth century the
two major areas of the fur trade among the English colonies were
New England and New York.
The New England trade, exhausting itself, was on the decline. It
had been blocked from expansion by national and political barriers in
the west and by the hostility of the French in the north. Raids and
counter raids, with the Indians used as allies on both sides, kept the
borders between the French and the New Englanders alive with
savage horrors. And, because of the prolonged hostilities in Europe
these conditions would continue into the next century, until 1763,
long after competition for pelts was no longer a controlling motive in
that area.
The main fur trade of the colonies in the north after the fall of New
Netherland was New York’s hinterland traffic, that which had been
inherited from the Dutch. All wilderness paths led to Albany, even
those made by the coureurs des bois and their copper-hued families
packing their illegal furs to the Hudson when they could not do
business with their own countrymen at Montreal. In 1679, it was said,
there were over 500 of these French renegades living among the
Indians. And to Albany, of course, came not only the beaver of the
Five Nations but the peltries of vassal tribes deep in the hinterland
for whom the Iroquois acted as middlemen.
The Five Nations were jealous enough of their trade and
sovereignty to visit swift vengeance on any vassals who tried to deal
direct with the white men, as happened to the Illinois in 1680 when
those distant natives sold their pelts to La Salle. For the same
reason they also tried to keep white pack traders from pushing
farther into the west, where they might exchange their wares direct
with the less sophisticated natives. It was a losing battle however.