TweetFollow Us on Twitter

Review-Core Java

Volume Number: 15 (1999)
Issue Number: 5
Column Tag: Programmer's Bookshelf

Review: Core Java, Fundamentals

by Paul E. Sevinç, Switzerland

4th edition covering Java 2

About This Article...

This article reviews volume 1 of the 4th edition of Core Java [Horstmann and Cornell 1999].

Core Java is a two-volume book-set written by Cay Horstmann and Gary Cornell, and published by Sun Microsystems Press and Prentice Hall. Volume 1, subtitled Fundamentals, has been available since December 1998. Volume 2, subtitled Advanced Topics, will be available some time in 1999.

For simplicity, the 4th edition of the 1st volume of Core Java will be referred to only as Core Java in the remainder of this review.

About The Book...

Core Java is an introduction to Java 2 Platform -formerly named JDK 1.2- by Sun Microsystems. (Note: The first printing still refers to it as JDK 1.2.)

According to the authors, Core Java has been written for experienced programmers, i.e. programmers with experience in at least one procedural programming language (e.g., C or Pascal). I'll let you know who I personally think this book is well suited for at the end of the article.

Core Java consists of 12 chapters and 3 appendices as well as an accompanying CD. The major topics are: object-oriented programming (OOP), graphical user interfaces (GUIs), programming for the WWW, exception handling, and input/output (I/O). The CD contains all of the book's source code and freeware & shareware tools in Solaris and Windows (no Mac OS) versions.

Throughout the book, when appropriate, the authors compare Java to Visual Basic and C++. Not being a Windows developer, the Visual Basic notes were of no use to me. The C++ notes, on the other hand, ease the transition from C++ to Java. Here is a simple example: after the integer types have been introduced, a C++ programmer is told that there are no unsigned integers in Java.

Also, when a new standard Java class is introduced, it is followed by an abbreviated version of its interface which allows for a quick overview of its most important methods. Reprinting all of them in alphabetical order at the end of the book would have been a nice thing.

Introducing Java

The first chapter, An Introduction to Java, is about Java in general: Java's history, how Java relates to the Internet, misconceptions about Java, etc. What I really liked about this chapter is that the authors don't mislead the beginner by blindly following the Java hype. Instead, they state that Java is a good programming language but could have been better, and they also point out that some of the concepts Java is famous for have been around for decades (e.g., Niklaus Wirth made platform-independent compilation popular in the seventies).

Chapter 2, The Java Programming Environment, is Windows specific and can be skipped by Mac-only developers.

Java & OOP

Chapter 3, Fundamental Programming Structures in Java, is the chapter that relies most strongly on former experience in procedural programming (e.g., it explains how variables are declared, not what variables are). It covers data types (primitive data types and strings) and their operators, constants and variables, arrays, flow control (conditional statements and loops), and basic console I/O. In Horstmann's and Cornell's opinion, C++ programmers can skim through this chapter; I don't think so. The differences between Java and C++ are big (or rather subtle) enough to cause annoyances. By investing a little time in carefully reading this material, most of them can be avoided. Programmers with a different background (Pascal, say) probably need to read certain paragraphs -or even the whole chapter- more than once, but they shouldn't have any serious problems either. I missed two things only in this chapter: a short explanation of the difference between do-while and repeat-until loops, and that a simple statement can also act as the body of a loop.

The 4th, 5th, and 6th chapters, Objects and Classes, Inheritance, and Interfaces and Inner Classes, are an introduction to the OOP paradigm and how it is supported by Java. Chapter 4 shows how abstract data types (ADTs) are implemented in Java. But first, some OOP vocabulary is introduced and illustrated using clear analogies. (By the way, the authors also recommend two books on object-oriented design and the Unified Modeling Language; the best introduction to OOP I know is [Mössenböck 1998] which, alas, is not available in English at the time of this writing.) Finally, Java's package concept is explained.

Chapter 5 is likely going to split the Core Java readers into two groups. Those in the first group have some basic experience with OOP and love how fast Horstmann and Cornell get to the point. Those in the second group don't have any OOP knowledge prior to reading Core Java and are confused when done with Chapter 5. So should you forget about Core Java if you're going to be in the second group? Not necessarily; just skip the last two paragraphs about run-time type identification (RTTI) and reflection (these are topics I would rather have expected in volume 2). Matters should become clearer when you see object orientation in action.

Chapter 6 is a short chapter on interfaces (Java's construct for multiple inheritance), inner classes, and cloning (deep copying). In the inner-classes sections, the reader also learns about some compilation techniques and possible bytecode security risks.


Despite its importance, the first third of the book isn't very exciting - after all, we do not use PowerMacs because we're fond of console I/O. And even though the core language isn't fully covered yet (exception handling is still missing), a really cool topic is the content of the next three chapters: how to design and implement GUIs.

Chapter 7, Graphics Programming, answers fundamental questions regarding GUIs: What are windows in Java? How can different fonts be used when showing text? Etc. What's important to know is that when there is a choice between a Swing class and an AWT class (UI classes where the former replace the latter which were the only ones in Java 1), the Swing class is used. This future-oriented approach is good unless you have to maintain old Java code. The chapter ends with some simple drawing routines.

Chapter 8, Event Handling, covers the Java event model. As a Mac OS programmer, you're already used to event-driven programming, but Java's events are comparatively high-level (objects vs. constants). Horstmann and Cornell make the whole process of learning about broadcasters, listeners, and multicasting so painless that at the end of the chapter, these concepts almost look trivial.

The 9th chapter, User Interface Components With Swing, is by far the biggest, with more than 150 pages. Every UI element I could spontaneously think of is covered: radio buttons, menus, dialogs, text areas, and many more. (Note: volume 2 will cover some components, such as toolbars, too.) At the beginning of the chapter, the model-view-controller (MVC) pattern is introduced (design patterns are to OOP what algorithms & data structures are to procedural programming [Mössenböck 1998]). Knowledge of MVC is especially necessary for some advanced modifications (i.e., subclasses) of the elements. But these advanced sections can safely be skipped and the authors also say so.

More Core

Chapter 10, Applets, shows what changes are necessary in order to turn an application into an applet - that's the easy part. The tedious part is how to make the applet behave properly on different platforms using different browsers. It's not the authors' fault that this is tedious; actually, they do a pretty good job of showing the possibilities one has with the Java plug-in or with older versions of Java.

Chapter 11, Exceptions and Debugging, could -from a purely technical point of view- directly follow Chapter 6 in order to cover the whole language before the Java classes. But from a pedagogical point of view it was smarter to arrange the chapters the way they are; more so because, oddly enough, exceptions are hardly an issue before Chapter 12. After Java's strict rules concerning exceptions and exception syntax and use have been covered, some debug advice is given. Its essence is: either make no mistakes when coding (...) or get a commercial debugger.

The 12th and last chapter, Streams and Files, is mainly about storing information in files. Again, some of the more technical issues (e.g., how does object serialization work in detail) can be skipped. Some security issues are discussed, too. What's going to be useful beyond file manipulation are the sections about streams, but how they relate to network programming is another topic to be found in volume 2.


Core Java is a book that evolved with Java, throwing away text of older editions to replace it with up-to-date information. It is well suited for self-study (beware: there are no exercices), but if most of your books end with "for Dummies", don't even think about buying this one. The examples are very illustrative, even though I would still consider them toy examples.

Programmers with some OOP experience will find it most useful; for those familiar with Java 1.1 it's overkill. Beginners with little practical programming experience might be overwhelmed unless learning procedural programming was no challenge.

If Core Java: Fundamentals is not the best book about this topic, it is still one of the better. And I am certainly going to take a look at Core Java: Advanced Topics. What about you?


  • [Horstmann and Cornell 1999] HORSTMANN, Cay, CORNELL, Gary. Core Java: Fundamentals. Sun Microsystems Press / Prentice Hall, 4th edition 1999.
  • [Mössenböck 1998] MÖSSENBÖCK, Hanspeter. Objektorientierte Programmierung in Oberon-2. Springer, 3rd edition 1998.

Paul E. Sevinç is an EE student at the Swiss Federal Institute of Technology Zurich (ETHZ) -where he recently designed and implemented a C++ framework for multiobjective optimization with genetic algorithms- and a student member of the IEEE. He is very interested in Compiler Construction, Operating Systems, and Cryptology, but he also likes working as a swimming coach. You can reach him at


Community Search:
MacTech Search:

Software Updates via MacUpdate

Planet Diver guide - How to survive long...
Planet Diver is an endless arcade game about diving through planets while dodging lava, killing bats, and collecting Starstuff. Here are some tips to help you go the distance. [Read more] | Read more »
KORG iDS-10 (Music)
KORG iDS-10 1.0.0 Device: iOS iPhone Category: Music Price: $9.99, Version: 1.0.0 (iTunes) Description: ** Debut Discount: 50% OFF! Sale Price US$9.99 (Regular price US$19.99). Other all Korg apps are also 50% OFF until Dec 28! **... | Read more »
World of Tanks Generals guide - Tips and...
World of Tanks Generals is a brand new card game by the developer behind the World of Tanks shooter franchise. It plays like a cross between chess and your typical card game. You have to keep in consideration where you place your tanks on the board... | Read more »
TruckSimulation 16 guide: How to succeed...
Remember those strangely enjoyable truck missions in Grand Theft Auto V whereit was a disturbing amount of fun to deliver cargo? TruckSimulation 16 is reminiscent of that, and has you play the role of a truck driver who has to deliver various... | Read more »
The best GIF making apps
Animated GIFs have exploded in popularity recently which is likely thanks to a combination of Tumblr, our shorter attention spans, and the simple fact they’re a lot of fun. [Read more] | Read more »
The best remote desktop apps for iOS
We've been sifting through the App Store to find the best ways to do computer tasks on a tablet. That gave us a thought - what if we could just do computer tasks from our tablets? Here's a list of the best remote desktop apps to help you use your... | Read more »
Warhammer 40,000: Freeblade guide - How...
Warhammer 40,000: Freebladejust launched in the App Store and it lets you live your childhood dream of blowing up and slashing a bunch of enemies as a massive, hulking Space Marine. It's not easy being a Space Marine though - and particularly if... | Read more »
Gopogo guide - How to bounce like the be...
Nitrome just launched a new game and, as to be expected, it's a lot of addictive fun. It's called Gopogo, and it challenges you to hoparound a bunch of platforms, avoiding enemies and picking up shiny stuff. It's not easy though - just like the... | Read more »
Sago Mini Superhero (Education)
Sago Mini Superhero 1.0 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0 (iTunes) Description: KAPOW! Jack the rabbit bursts into the sky as the Sago Mini Superhero! Fly with Jack as he lifts impossible weights,... | Read more »
Star Wars: Galaxy of Heroes guide - How...
Star Wars: Galaxy of Heroes is all about collecting heroes, powering them up, and using them together to defeat your foes. It's pretty straightforward stuff for the most part, but increasing your characters' stats can be a bit confusing because it... | Read more »

Price Scanner via

World’s First USB-C Adapter For MacBook Suppo...
Innergie, a brand of Delta Electronics, has announced its official release of the world’s first USB-C adapter supporting four DC output voltages, the PowerGear USB-C 45. This true Type C adapter... Read more
13-inch and 11-inch MacBook Airs on sale for...
B&H Photo has 13″ and 11″ MacBook Airs on sale for up to $120 off MSRP as part of their Holiday sale including free shipping plus NY sales tax only: - 11″ 1.6GHz/128GB MacBook Air: $819 $90 off... Read more
13-inch MacBook Pros on sale for up to $150 o...
Take up to $150 off MSRP on the price of a new 13″ MacBook Pro at B&H Photo today as part of their Holiday sale. Shipping is free, and B&H charges NY tax only. These prices are currently the... Read more
13-inch 128GB MacBook Air now on sale for $79...
Best Buy has just lowered their price on the 2015 13″ 1.6GHz/128GB MacBook Air to $799.99 on their online store for Cyber Monday. Choose free shipping or free local store pickup (if available). Sale... Read more
Best Buy lowers 13-inch MacBook Pro prices, n...
Best Buy has lowered prices on select 13″ MacBook Pros this afternoon. Now save up to $200 off MSRP for Cyber Monday on the following models. Choose free shipping or free local store pickup (if... Read more
Cyber Monday: Apple MacBooks on sale for up t...
Apple resellers have MacBook Pros, MacBook Airs, and MacBooks on sale for up to $250 off MSRP for Cyber Monday 2015. The following is a roundup of the lowest prices available for new models from any... Read more
Cyber Monday: Apple Watch on sale for up to $...
B&H Photo has the Apple Watch on sale for Cyber Monday for $50-$100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - Apple Watch Sport: $50 off - Apple Watch: $50-$100 off B... Read more
Cyber Monday: 15% off Apple products, and sto...
Use code CYBER15 on Cyber Monday only to take 15% on Apple products at Target, and store-wide. Choose free shipping or free local store pickup (if available). Sale prices for online orders only, in-... Read more
iPad Air 2 And iPad mini Among Top Five Black...
Adobe has released its 2015 online shopping data for Black Friday and Thanksgiving Day. The five best selling electronic products on Black Friday were Samsung 4K TVs, Apple iPad Air 2, Microsoft Xbox... Read more
All-in-one PC Shipments Projected To Drop Ove...
Digitimes’ Aaron Lee and Joseph Tsai report that all-in-one (AIO) PC shipments may drop a double-digit percentage on-year in 2015 due to weaker-than-expected demand, although second-largest AIO make... Read more

Jobs Board

*Apple* New Products Tester Needed - Apple (...
…we therefore look forward to put out products to quality test for durability. Apple leads the digital music revolution with its iPods and iTunes online store, continues Read more
Software Engineer, *Apple* Watch - Apple (U...
# Software Engineer, Apple Watch Job Number: 33362459 Santa Clara Valley, Califo ia, United States Posted: Jul. 28, 2015 Weekly Hours: 40.00 **Job Summary** Join the Read more
SW Engineer - *Apple* Music - Apple (United...
# SW Engineer - Apple Music Job Number: 40899104 San Francisco, Califo ia, United States Posted: Aug. 18, 2015 Weekly Hours: 40.00 **Job Summary** Join the Android Read more
Sr Software Engineer *Apple* Pay - Apple (U...
# Sr Software Engineer Apple Pay Job Number: 44003019 Santa Clara Valley, Califo ia, United States Posted: Nov. 13, 2015 Weekly Hours: 40.00 **Job Summary** Apple Read more
*Apple* Site Security Manager - Apple (Unite...
# Apple Site Security Manager Job Number: 42975010 Culver City, Califo ia, United States Posted: Oct. 2, 2015 Weekly Hours: 40.00 **Job Summary** The Apple Site Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.