Java Terminology

·       Variable, Constant, Identifier, Reserved word, Scope, Case sensitive

·       Operator, Precedence, Cast

·       Array

·       Primitive data, Object, Reference, Alias

·       Class, Object, Inheritance, Polymorphism

·       Assignment, Widening conversion, Narrowing conversion

·       Constructor, Destructor (finalize()), Garbage collection

·       Static methods and variables vs. instance methods and variables

·       Private, Public, Protected

·       Method signature, Overloaded method, Formal and Actual parameters, this, super

·       String, Concatenation, Escape sequence, white space

·       Byte code, Interpreter, Compiler

·       Pre-test, Post-test, and Counter controlled loops

·       Boolean, Block statement, condition

Java Concepts

·       Using the Java API classes and interfaces, e.g. Random, StringTokenizer, System, DecimalFormat, Math, Comparable

·       Operators (++,--,+,-,*,/,==,=,%,?,+=,*=)

·       Primitive types versus object types:

o   String compare, initialization, and concatenation.

o   Aliases, null pointers,

o   Methods equals() and compareTo()

·       Control constructs:

o   if (<exp>) <statement> [else <statement>]

o   while (<exp>) <statement>

o   do <statement> while (<exp>);

o   for (<exp>; <exp>; <exp>) <statement>

·       Methods: signature, body, parameter passing.

·       Declaring arrays, Initialization list

·       Classes: Inheritance (extends), Polymorphism via subclasses and interfaces, abstract classes

·       Built in interfaces (Comparable, Iterator)

 

Good Programming Conventions

·       Syntactical conventions

o   When and how much to indent

o   Reasonable identifier names

o   Single purpose methods without side-effects and reasonable size

o   Limit the scope of variables

·       Common programming pitfalls

o   Comparing objects without equals() or compareTo()

o   Implicit type conversions (System.out.println(“ “+3+2);)

o   Exceeding maximum numbers

·       Debugging techniques

o   Be structured, change one thing at a time

o   Don’t make changes without being sure why

o   Utilize available debugging tools (breakpoints, variable values, step)