Deepen the essential APIs of Java development
Programme
Advanced syntax
- Intern and anonymous classes
- Constructors
- Initialization blocks
- Generic types
- Syntax of lambdas (Java 8)
- Syntax of method references (Java 8)
java.lang package
- Object class
- Comparable interface: equality and comparison
- Clonable interface: object copy
- Wrappers and autoboxing: type conversions
- Strings: String, CharSequence, Appendable, StringBuffer, StringBuilder, …
- Syntax extensions: Iterable, AutoCloseable
- Enumerations: Enum class
- Mathematical operations: Math and StrictMath
- Standard annotations (@Deprecated, @Override, …)
- Exceptions: Throwable, Exception, Error, RuntimeException, …
- Utility classes: System, Runtime, Process and ProcessBuilder
- Basics of parallelism: Runnable, Thread, …
- Introspection: Class, Package, ClassLoader, …
- Other elements of the java.lang package
java.math package
- Real numbers and rounding errors
- Extended numbers: BigInteger, BigDecimal
- Rounding management: MathContext and RoundingMode
java.util package
- Collections: Collection, List, Queue, Set, Map, …
- Iterating on collections: Enumeration and Iteration
- Collection implementation classes
- Utility classes: Collections and Arrays
- Time management: Date, Calendar, …
- Currency representation: Currency
- Parameterization: Properties
- Internationalization: Locale, ResourceBundle, Formatter, …
- Utility classes: Scanner, StringTokenizer, Random, …
- Other elements of the java.util package : Observer, Observable, ServiceLoader, …
java.text package
- String comparison: Collator, RuleBasedCollator
- Text formatting: Format, MessageFormat, NumberFormat, DateFormat, …
java.io package
- File management: File, FileFilter, FilenameFilter, …
- Binary flow management: InputStream, OutputStream, …
- Text flow management: Reader, Writer, …
- Object flow management: Serializable, Externalizable, …
- Utility classes: Console, StreamTokenizer, RandomAccessFile
java.nio package
- “New” file management: FileStore, FileSystem, Path, FileSystems, Files, Paths, PathMatcher, WatchService, …
- Data transfers: Buffer, Channel, Channels, …
java.net package
- Network access: URL, URLConnection, URLEncoder, URLDecoder
- TCP and UDP protocols: InetAddress, NetworkInterface, Socket, ServerSocket, …
java.sql package
- JDBC framework : DriverManager, Connection, Statement, PreparedStatement, ResultSet, …
java.util.concurrent package
- Advanced parallelism (Future, Executor, ExecutorService, Executors, …)
- Synchronized collections: BlockingQueue, ConcurrentMap, …
- java.util.concurrent.atomic package: thread-safe containers
- java.util.concurrent.locks package: the explicit management of locks
java.time package (Java 8)
- new temporal classes: Instant, Duration, LocalDate, LocalTime, Period, YearMonth, Temporal, …
java.util.function and java.util.stream packages (Java 8)
- Functional Interfaces: Consumer, Predicate, Function, Supplier, …
- Stream interfaces: BaseStream, Stream, Collector, …
- Stream builder: stream(), paralleleStream(), iterate(), generate(), …
- Aggregate functions: forEach, filter, sorted, map, collect, …
Overview of some other packages
- java.util.logging package: tracing
- java.util.prefs package: user preferences management
- java.util.jar package: jars management
- java.util.zip package: zip management
- java.util.regex package: regular expressions
- java.awt package: native graphical interfaces
- javax.swing package: rich graphical interfaces