API Contents QuizJ8 Home « API Contents Quiz
The questions in this Java quiz are on the topics covered in the java - API Contents section of the site. The table below lists the lessons, a description of the lesson content and the quiz question number range.
Lesson Summary
Click on a lesson in the table to go to that lesson for a refresher on the topics for that lesson.
API Contents Lessons | Description | Question Range |
---|---|---|
Lesson 1 - The String Class | We begin our studies of of the java API by looking at the predefined String object and some of the methods available for use with this class. | 1 - 7 |
Lesson 2 - The StringBuilder Class | In this lesson we learn about the predefined StringBuilder object and some of the methods available for use with this class. | 8 - 12 |
Lesson 3 - Packages | We take a closer look at how Java stores predefined classes into namespaces, which Java calls packages, and how we can import these packages into our programs. | 13 - 18 |
Lesson 4 - Dates, Numbers & Currencies | In this lesson we look at the Date , Calendar , Locale , DateFormat and NumberFormat classes that allow us to create and manipulate dates, times, numbers and
currencies for different regions of the world. | 37 - 42 |
Lesson 5 - Regular Expressions | For this lesson we look at regular expressions and how we can use regular expression patterns for matching data. | 43 - 48 |
Lesson 6 - Formatting & Tokenizing | In our final lesson of the API Contents section we look at formatting and tokenizing our data. | 49 - 55 |
Java Quiz
The quiz below tests your knowledge of the material learnt in the java - API Contents section of the site.
Question 1 : What do we mean when we say a
String
object is immutable. - Once a <code>String</code> object has been constructed its contents can never be changed, so it is in essence a constant.
Question 2 : What is the special area of memory within The Heap where string literal objects are held.
- The special area of memory within <i>The Heap</em> where string literal objects are heldis called the <i>string constant pool</em>.
Question 3 : Assuming no objects exist in the pool how many objects would be created from the following statement snippet?
String str1 = new String("123");
- Two objects would be created. One on <i>The Heap</em> and one in the <i>string constant pool</em>.
Question 4 : Assuming no objects exist in the pool how many objects would be created from the following statement snippets?
String str1 = new String("123");
String str2 = "123";
String str3 = "123";
- Two objects would be created. One on <i>The Heap</em> and one in the <i>string constant pool</em>. Reference variables <code>str2</code> and
<code>str3</code> will just be pointed to the object in the <i>string constant pool</em> created with the first statement.
Question 5 : The
equals()
method of the String
class only returns true
when two references refer to the same object? - The <code>equals()</code> method of the <code>String</code> class returns <code>true</code> if the invoking string has the the same character sequence as the argument string.
Question 6 : Which method of the
String
class is useful as the condition in loop statements? - The <code>length()</code> method is useful as the condition in loop statements as it will always equal the number of characters in the string.
Question 7 : We need to override the
toString()
method of the String
class to get meaningful output? - The <code>toString()</code> method of the <code>String</code> class already <i>overrides</em> the <code>Object toString()</code> method.
Question 8 : Which string utility class has thread-safe methods?
- The <code>StringBuffer</code> utility class has thread-safe methods.
Question 9 : What is the main advantage of using the
StringBuilder
class instead of the String
class. - When doing a lot of string manipulation using the <code>StringBuilder</code> class is a lot more efficient than using the <code>String</code> class.
Question 10 : What method do we use to concatenate strings together in the
StringBuilder
class? - We use the <code>append()</code> method to concatenate strings together in the <code>StringBuilder</code> class.
Question 11 : The
String
and StringBuilder
replace()
methods are the same apart from immutability? - The <code>replace()</code> methods of the <code>String</code> and <code>StringBuilder</code> methods work in different ways and have different parameter lists aside from the immutability difference.
Question 12 : The
String
and StringBuilder
substring()
methods are the same apart from immutability? - The <code>substring()</code> methods of the <code>String</code> and <code>StringBuilder</code> methods both return an immutable <code>String</code> object and so
regardless of input do exactly the same thing.
Question 13 : What are libraries of related classes known as in Java?
- Libraries of related classes are known as <i>packages</em> in Java.
Question 14 : What does the
protected
access modifier allow access to? - The <code>protected</code> <i>access modifier</em> allowa access to subclasses outside the package.
Question 15 : Every class written in Java exists within a package?
- Every class written in Java exists within a package. When no package statements are present within a class, then the default package is used which has no name.
Question 16 : How do we use unqualified classes that are in packages?
- We use unqualified classes that are in packages by importing them using the <code>import</code> keyword.
Question 17 : How can we use unqualified static members of a package within our classes?
- We use unqualified static members of a package within our classes by using the <code>import static</code> keywords.
Question 18 : Where do package statements appear in a source file?
- <i>package</em> statements appear at the start of a source file.
Question 19 : What are the two types of I/O streams supported by Java?
- Java supports byte and character streams.
Question 20 : What is the abstract superclass of character input streams called?
- The <i>abstract superclass</em> of character input streams is called <code>Reader</code>.
Question 21 : We can check that a
File
object has a file present on a hard disk and if not create that file? - We can use the <code>exists()</code> method to check if a file phsically exists and if it doesn't we can create the file using the <code>createNewFile()</code> method.
Question 22 : What package(s) contain the byte and characters streams?
- The byte and characters streams are all held within the <code>Java.io</code> package.
Question 23 : What is the abstract superclass of character output streams called?
- The <i>abstract superclass</em> of character output streams is called <code>Writer</code>.
Question 24 : What does a
File
object represent? - A <code>File</code> object represents the name and path of a physical file or directory.
Question 25 : How can we write primitive data types to a file?
- We write primitive data types to a file using the <code>DataOutputStream</code>.
Question 26 : What is the abstract superclass of byte input streams called?
- The <i>abstract superclass</em> of byte input streams is called <code>InputStream</code>.
Question 27 : How can we persist object state?
- We can persist <i>object state</em> using the <code>ObjectOutputStream</code> class.
Question 28 : Which class implements all the methods of
InputStream
with versions that pass all requests to the contained input stream? - The <code>FilterinputStream</code> implements all the methods of <code>InputStream</code> with versions that pass all requests to the contained input stream.
Question 29 : We can use the
read()
method of which class to read character input from the keyboard? - We can use the <code>InputStream</code> class via <code>System.in.read()</code>.
Question 30 : Can we use more than one stream when outputting data to storage?
- We can use more than one stream when outputting data to storage; in fact it's often the case that we want to 'mix and match' our streams.
Question 31 : Character streams operate directly on ASCII characters ?
- Character streams operate on <i>Unicode</em> characters which incorporate <i>ASCII</em> characters.
Question 32 : What is the abstract superclass of character output streams called?
- The <i>abstract superclass</em> of character output streams is called <code>Writer</code>.
Question 33 : Which character output stream allows us to write output to the console?
- The <code>PrintWriter</code> class allows us to write output to the console.
Question 34 : We create a
Writer
object to output character streams to? - The <code>Writer</code> object is the <i>abstract superclass</em> of character output streams so we can't instantiate this class.
Question 35 : What is the abstract superclass of character input streams called?
- The <i>abstract superclass</em> of character input streams is called <code>Reader</code>.
Question 36 : Why would we use a stream that buffers input or output?
- We would use a stream that buffers input or output for efficiency.
Question 37 : What is a
java.util.Date
object meant to represent? - A <code>java.util.Date</code> object is meant to represent a specific instant in time.
Question 38 : We can convert a
Date
object to a Calendar
and vice versa? - Yes which is very handy because we need a <code>Date</code> object for formatting dates when using the <code>DateFormat</code> class.
Question 39 : What method do we use to convert
Date
objects to Calendar
objects? - We use the <code>setTime()</code> method which allows us to convert <code>Date</code> objects to <code>Calendar</code> objects.
Question 40 : What information does the
Locale
class contain? - The <code>Locale</code> class contains information about countries, such as name and ISO codes and which language is spoken in that country.
Question 41 :
SHORT
, MEDIUM
, LONG
, are three of the styles options you can pass to a DateFormat
static factory method. What is the fourth? - The fourth option we can use is <code>FULL</code> which is also the most descriptive style we can pass to a <code>DateFormat</code> static factory method.
Question 42 : The
NumberFormat
class allows us to format numbers and? - The <code>NumberFormat</code> class allows us to format numbers and currencies.
Question 43 : Which method of the
Matcher
class allows us to look for subsequences of a pattern? - The <code>find()</code> method of the <code>Matcher</code> class allows us to look for subsequences of a pattern. The
<code>lookingAt</code> method tries to match the prefix of the <i>region</em> and the <code>matches</code> method tries to match the full <i>region</em>.
Question 44 : Which metacharacter do we use for whitespaces?
- We use the <code>\s</code> <i>metacharacter</em> for whitespaces. Think of <code>\s</code> for spaces and <code>\w</code> for word characters to remember the difference.
Question 45 : Which convenience method of the
Pattern
class allows us to compile and match a pattern to a character sequence in one statement? - The <code>matches()</code> method of the <code>Pattern</code> class allows us to compile and match a pattern to a character sequence in one statement. The
other two methods reside in the <code>Matcher</code> class.
Question 46 : Which symbol do we use to represent any character in a regex expression?
- We use the <code>.</code> (dot) symbol to represent any character in a <i>regex</em> expression.
Question 47 : What do we enclose character sets in?
- we enclose character sets in <code>[]</code> (brackets).
Question 48 : Which quantifier do we use to get zero or one occurrences?
- We would use the <code>?</code> <i>quantifier</em> to get zero or one occurrences.
Question 49 : A format string may contain fixed text as well as one or more what?
- A format string may contain fixed text as well as one or more format specifiers.
Question 50 : Which letter do we use to prefix date/time conversions?
- We use the letter <code>t</code> to prefix date/time conversions.
Question 51 : We can format output for specific locales?
- All the formatting methods allow us to format output for specific locales.
Question 52 : Which static method of the
String
class do we use for formatting? - We use the <code>format()</code> method of the <code>String</code> class for formatting.
Question 53 : What would be output from the following code snippet?
import java.io.PrintStream;
class TestStringf {
public static void main(String[] args) {
int a = 1234;
System.out.printf("%1$d", a);
}
}
- The output is <code>1234</code> as we didn't use a <code>,</code> flag to separate thousands ie. <code>%1$,d</code>
Question 54 : Objects of the
java.util.Scanner
class use a delimiter to break input into what? - Objects of the <code>java.util.Scanner</code> class use a delimiter to break input into tokens.
Question 55 : What is used as the delimiter to the
split()
method? - We use a <code>regular expression</code> as the delimiter to the <code>split()</code> method.
Quiz Progress Bar Please select an answer
What's Next?
The next quiz is all about concurrency.