CMSC Midterm 2 Study UPDATED
ACTUAL Questions and CORRECT
Answers
What is meant by "the state" of an object? - CORRECT ANSWER - The data that the
object maintains.
What is meant by "the behavior" of an object? - CORRECT ANSWER - These are
"actions" that the object can perform (via methods).
How is the state of an object represented in the corresponding class definition? - CORRECT
ANSWER - Using instance variables.
How is the behavior of an object represented in the corresponding class definition? - CORRECT
ANSWER - Using instance methods.
What is a "reference" variable? - CORRECT ANSWER - A reference variable stores the
memory address of an object. We say that the variable "refers" to the object.
Given the code fragment String q = new String("Cat"); and the code fragment double x = 7.9; is
it correct to say that "q is a String object"? Is it correct to say that "q refers to a String object"? Is
it correct to say that "x is a double"? Is it correct to say that "x refers to a double"? - CORRECT
ANSWER - You should NOT say "q is a String". You SHOULD say "q refers to a
String". It is correct to say "x is a double", but you should NOT say "x refers to a double", since
x is not a reference variable.
Consider the assignment statement: x = y; - CORRECT ANSWER - If the variables are of
type "int", does the integer get copied? If the variables are of type "String", does the String get
copied?
For primitive types (like int), the data is copied. For reference variables (like a String reference),
the memory locations are copied, NOT the objects themselves.
,True/False: In order to run a static method, you must run it for a particular object (the current
object). - CORRECT ANSWER - False
True/False: In order to run an instance method, you must run it for a particular object (the current
object). - CORRECT ANSWER - True
True/False: An instance variable can be declared as "static". - CORRECT ANSWER -
False
True/False: The same class can contain some members that are static and some members that are
non-static. - CORRECT ANSWER - True
What is "the heap"? - CORRECT ANSWER - The heap is the region in memory where
Objects are stored. When objects are no longer being used, that memory is "recycled"
automatically so that it can be used by other Objects later.
Draw the memory map (including the "stack" and the "heap") for the following code fragment: -
CORRECT ANSWER - double x = 7.9;
double y = x;
String q = new String("Cat");
String r = q;
String s = new String(r);
The stack would have x with the value 7.9 and y with the value 7.9
and would also have q and r and s with references to String objects
on the heap.
The heap would have two String objects; one for "Cat" that q and r
reference and then another for "Cat" that s references.
, What is actually stored in the variable "q" in the previous question? - CORRECT
ANSWER - q effectively holds the memory location of where the String "Cat" is in RAM
Given the code fragment above, is it correct to say that "q is a String object"? Is it correct to say
that "q refers to a String object"? Is it correct to say that "x is a double"? Is it correct to say that
"x refers to a double"? - CORRECT ANSWER - You should NOT say "q is a String".
You SHOULD say "q refers to a String". It is correct to say "x is a double", but you should NOT
say "x refers to a double", since x is not a reference variable.
How many String objects are actually created (instantiated) in the code fragment above? -
CORRECT ANSWER - two
After the code fragment above has been executed, decide which of the following expressions are
true and which are false: - CORRECT ANSWER - x == y TRUE
q == r TRUE
r == s FALSE
q == s FALSE
q.equals(r) TRUE
r.equals(s) TRUE
q.equals(s) TRUE
What is aliasing? - CORRECT ANSWER - Aliasing is having more than one reference
variable that refer to the same object (for example, r and q in the previous question.)
What is meant by the term "garbage" in Java? Write a code fragment that creates garbage. -
CORRECT ANSWER - Any object that is on the heap, but no longer referred to by any
variable is called "garbage". Here is a short example:
String p = "hello";
p = "there";
(Now the String that contains "hello" is garbage.)
ACTUAL Questions and CORRECT
Answers
What is meant by "the state" of an object? - CORRECT ANSWER - The data that the
object maintains.
What is meant by "the behavior" of an object? - CORRECT ANSWER - These are
"actions" that the object can perform (via methods).
How is the state of an object represented in the corresponding class definition? - CORRECT
ANSWER - Using instance variables.
How is the behavior of an object represented in the corresponding class definition? - CORRECT
ANSWER - Using instance methods.
What is a "reference" variable? - CORRECT ANSWER - A reference variable stores the
memory address of an object. We say that the variable "refers" to the object.
Given the code fragment String q = new String("Cat"); and the code fragment double x = 7.9; is
it correct to say that "q is a String object"? Is it correct to say that "q refers to a String object"? Is
it correct to say that "x is a double"? Is it correct to say that "x refers to a double"? - CORRECT
ANSWER - You should NOT say "q is a String". You SHOULD say "q refers to a
String". It is correct to say "x is a double", but you should NOT say "x refers to a double", since
x is not a reference variable.
Consider the assignment statement: x = y; - CORRECT ANSWER - If the variables are of
type "int", does the integer get copied? If the variables are of type "String", does the String get
copied?
For primitive types (like int), the data is copied. For reference variables (like a String reference),
the memory locations are copied, NOT the objects themselves.
,True/False: In order to run a static method, you must run it for a particular object (the current
object). - CORRECT ANSWER - False
True/False: In order to run an instance method, you must run it for a particular object (the current
object). - CORRECT ANSWER - True
True/False: An instance variable can be declared as "static". - CORRECT ANSWER -
False
True/False: The same class can contain some members that are static and some members that are
non-static. - CORRECT ANSWER - True
What is "the heap"? - CORRECT ANSWER - The heap is the region in memory where
Objects are stored. When objects are no longer being used, that memory is "recycled"
automatically so that it can be used by other Objects later.
Draw the memory map (including the "stack" and the "heap") for the following code fragment: -
CORRECT ANSWER - double x = 7.9;
double y = x;
String q = new String("Cat");
String r = q;
String s = new String(r);
The stack would have x with the value 7.9 and y with the value 7.9
and would also have q and r and s with references to String objects
on the heap.
The heap would have two String objects; one for "Cat" that q and r
reference and then another for "Cat" that s references.
, What is actually stored in the variable "q" in the previous question? - CORRECT
ANSWER - q effectively holds the memory location of where the String "Cat" is in RAM
Given the code fragment above, is it correct to say that "q is a String object"? Is it correct to say
that "q refers to a String object"? Is it correct to say that "x is a double"? Is it correct to say that
"x refers to a double"? - CORRECT ANSWER - You should NOT say "q is a String".
You SHOULD say "q refers to a String". It is correct to say "x is a double", but you should NOT
say "x refers to a double", since x is not a reference variable.
How many String objects are actually created (instantiated) in the code fragment above? -
CORRECT ANSWER - two
After the code fragment above has been executed, decide which of the following expressions are
true and which are false: - CORRECT ANSWER - x == y TRUE
q == r TRUE
r == s FALSE
q == s FALSE
q.equals(r) TRUE
r.equals(s) TRUE
q.equals(s) TRUE
What is aliasing? - CORRECT ANSWER - Aliasing is having more than one reference
variable that refer to the same object (for example, r and q in the previous question.)
What is meant by the term "garbage" in Java? Write a code fragment that creates garbage. -
CORRECT ANSWER - Any object that is on the heap, but no longer referred to by any
variable is called "garbage". Here is a short example:
String p = "hello";
p = "there";
(Now the String that contains "hello" is garbage.)