String Manipulation
- Discuss the basic usage of the following classes:
- java.lang.String
- java.lang.StringBuffer
- java.util.StringTokenizer
- java.lang.StringBuilder
- java.util.Scanner
- Discuss that the StringTokenizer class is a legacy class that is retained for compatibility reasons although its use is discouraged in new code and instead split() method or the Scanner class should be used.
- Develop code that uses the methods String.substring() and split().
- Use the Scanner class with simple regular expressions to parse a text.
- Explain the legal casts between the different wrapper classes.
- Write code that uses Autoboxing/Unboxing.
- Use the convenience methods in Character, Integer and Long (e.g. toHexString() and isLetter()).
The basic knowledge about Internationalization is covered in the Sun Tutorial and Java Internationalization Homepage.
- Work with the following classes to handle dates, time, locales, timezones and currencies:
- java.util.Date
- java.sql.Date
- java.sql.Time
- java.sql.Timestamp
- java.util.Calendar
- java.util.GregorianCalendar
- java.util.TimeZone
- java.util.SimpleTimeZone
- java.util.Locale
- java.util.Currency
- Explain the difference between Time and Timestamp.
- Create Calendar objects and manipulate them with set(), add(), and roll().
- Create code that compares Calendar objects by using the methods before(), after(), and compareTo().
- Discuss and use lenient and non-lenient Calendar objects.
- Use of ISO Language Code (lower-case two-letter words) and ISO Country Code (upper-case two-letter words) to create a Locale.
- Identify code that displays content for different Locale.
- Explain what Internationalization and Localization is.
- Develop code that gets the ISO currency identifier and symbol for a given Locale.
Not covered: All valid ISO Language Codes and/or ISO Country Codes.
Format- Identify the abstract and concrete classes of the following list:
- Format
- DateFormat
- MessageFormat
- NumberFormat
- SimpleDateFormat
- DecimalFormat
- ChoiceFormat.
- Create code that use MessageFormat together with ChoiceFormat.
- Explain the connection between printf() and java.util.Formatter.
- Create code that shows the basic use of printf() and make use of conversions(only d,f for numbers and D,F,c for dates) and flags (only '0' and ',').
Not covered: Synchronized problems with Format. All Date/Time Conversions, other Conversions, and flags for printf().
Math- Identify valid methods of the Math class.
- Discuss the appropriate use of BigDecimal and BigInteger.
- Explain the difference between Math and StrictMath.
- Identify the constant values NaN, NEGATIVE_INFINITY, POSITIVE_INFINITY (from java.lang.Double and java.lang.Float).
Not covered: Special things about sin, cos, tan, log, ...
Logging- Create code that makes simple use of the java.util.logging package (e.g. Simple Logging Example).
- Identify the different log levels and explain the appropriate use of them.
- Write code that uses java.util.zip to create and read ZIP files. (A sample could be found here.)
- Create code that uses Deflater and Inflater to compress and uncompress data.
- Use the java.util.jar package to create and read JAR files.
Not covered: The jar command line tool, this is covered in the Tools exam. The Pack200 class.
System- Use some of the methods in java.lang.System (like gc(), exit(), getEnv(), and getProperties()).
- Explain the connection between java.lang.System and java.lang.Runtime.
- Write code that uses the standard input, standard output, and standard error streams.
- Create code that changes the standard input, standard output, and standard error streams by using setIn(), setOut(), and setErr() and discuss why a SecurityException could be thrown.
- Use a regular expression to scan for a telephone number.
- Write code to match a valid email address.