\n
[*] There are two ways to pass scjp, you can remember lot of tips about how things are in java Or You can learn the concept and understand why things are like that. Once you understand the gist of it, you dont need to bear in mind these tips. Any question thrown at you can be answered. I have given these tips only to kick start your thought process.
[] Appendix A explains when and how a Java class is loaded
[] See chapter 6 (Garbage Collection)
[§] See references
[**] Simply put, the science of naming things is called taxonomy. Specifically it is the science for classifying plants and animals into species and logical groups of species.
[] See chapter 1 for the Java syntax of extending a class
[] Polymorphism is much more about code reuse than about many forms of method. Therefore it is not only about method overriding and overloading. It is also about abstraction of the behavior so that the behavior can be used without worrying about the type (or the class). Java has fantastic feature called interfaces that do just that. We have discussed declaration syntax of interfaces in chapter 1.
[§§] See chapter 11.
[***] See chapter 11.
[] Similar to pure virtual functions in c++
[] Java allows an object to have member objects defined within it. See Composition
[§§§] See chapter 1 for the Java syntax of extending a class
[****] ( see Chapter 4 for nested classes)
[] Top-level class is a class that is not defined inside the body of another class. In other words it is class that is not nested inside another class.
[] (default) is not a modifier, it is just a name used to specify the access level if no modifier is specified.
[§§§§] See chapter 2 and 11 for more information on encapsulation.
[*****] Since nested classes are declared within a class, they can access the private members of their top-level class. See for nested classes
[] Encapsulation is discussed in chapter 2 and 11.
[] The subclasses of Cat that are defined outside com.example.pets (BobCat in the figure) can access only inherited protected members
[§§§§§] See part 1 that discusses life cycle of Java object.
[******] Here integrity means correctness of data. In multi-threaded application, when multiple threads are modifying a common variable, it is possible that the variable will hold inconsistent (different) value each time such application is executed depending on which thread got to access it(thread scheduling). To ensure the integrity of such variable means to ensure that it will be accessed in a predictable manner.
[] See chapter 1 for variable initialization
[] Native libraries mean the reusable libraries that are usually written in platform-dependent code which typically in other programming languages than Java such as C, C++ or assembly language. For example, you may find libraries written in C language on UNIX platforms. Since platform-specific languages are used, native libraries are usually very efficient to perform.
[§§§§§§] We will see exactly which variables and methods of enclosing class can be accessed by inner class later in this chapter.
[*******] Instances of the class Class represent classes and interfaces in a running Java application. The forName(className) method returns a Class object associated with the class or interface with the given className.
[] See section 4.2.3
[] You may feel that the value of variable choice is known at compile-time. Though it is true for this particular code, it not always true. If you choose to read the value of this variable before the switch statement, say for example, int choice = readChoiceFromUserz(); then it wont be a constant value, hence variable choice is not allowed in case expression.
[§§§§§§§] For example, with two bits you can have 4 different combinations (00, 01, 10, 11) representing 4 different values. Here you need to have little knowledge of binary representation of numbers and the number systems.
[********] Classes java.lang.Float and java.lang.Double define these constant values
[] ASCII - The American Standard Code for Information Interchange is a standard seven-bit code that was proposed by ANSI (http://www.ansi.org/). Since computers can only understand numbers, characters need to be mapped to the numerical representations. ASCII specifies one way of doing this with 7 bit representation for the characters.
[] Hexadecimal is a number system like other number systems such as binary number system, decimal number system. It is based on 16 numbers (0 to 9 and A to F) as opposed to the decimal system which has 10 numbers (0 to 9).
[§§§§§§§§] Since one Java Source file can have multiple class declarations, it can produce multiple class files after compilation.
[*********] Natural means alphabetic, numeric, or programmer-defined, whichever applies.