Today, we reviewed for tomorrow's exam.
The exam will be similar in form to the midterm exam, although there will be fewer "debugging" questions and more "explain the difference" questions. There are also a number of fill-in-the-blank questions, so make sure you understand the terminology, and not just Java syntax. There may be a question or two where you're asked to write a (very) short method or class. But nothing complicated.
(7/30 evening)I've added some links to the lecture notes for some of the information here.
Here's a list of terms that you should understand and be able to use. I've divided them up into categories depending on whether they apply to computing in general, to any object-oriented programming language, or specifically to Java.
Here is a list of Java keywords that you should know how to use and what they do. I've divided the list up into command flow keywords (that are used to change what code gets executed when, declaration modifiers (adjectives that are added to declarations of types, variables, and methods), declaration verbs (that are added as part of the declarations of classes or interfaces), and other keywords.
- if/else if/else
- for
- while
- do/while
- return
- break
- try/catch/finally
- throw
Here's a list of important Java types, classes, and interfaces that you should understand how to use (including their methods and member variables, or at least the ones that we've used in class). I've divided them up into primitive types, classes, interfaces, and generic types. (You'll notice that the generic types also appear as interfaces. Every generic type in Java is either a generic class or a generic interface, but all the ones we've seen have been generic interfaces.) This list is nowhere near comprehensive, but it includes the most important ones and the ones you'll be tested on.
- int
- long
- float
- double
- char
- boolean
- Integer
- Long
- Float
- Double
- Character
- Boolean
- String
- Stream
- InputStream
- OutputStream
- Scanner
- Throwable
- Error
- VirtualMachineError
- InternalError
- OutOfMemoryError
- StackOverflowError
- IOError
- Exception
- RuntimeException
- ArithmeticException
- IllegalArgumentException
- IndexOutOfBoundsException
- NullPointerException
- IOException
- FileNotFoundException
- MalformedURLException
- UnknownHostException
- ServletException
There are a lot of things that we talked about that are similar but not exactly the same, or that look similar but are very different. I may ask you to explain the difference between the two. Most of them show up in the lists above, but I figured I'd point out some of the more important ones here. You could be asked to explain the difference between any of these.
private
vs. public
vs. protected
vs. defaultthrow
vs. throws
int
vs. Integer
(or float
vs. Float
, etc.)char
s vs. a String
List
List
vs. Set
X == Y
) vs. equality (X.equals(Y)
)The exam will be in class tomorrow (Thursday, July 31st, 2014) at the usual time (9:30 - 10:25am) and in the usual place (Geology Building - room 226). It will be a written test, so bring a pencil. You won't be allowed to use any notes, books, or neighbors. No technology more advanced than a mechanical pencil will be permitted.