The crypto package contains classes that work with key derivation algorithms like scrypt (passwords to AES keys), BIP 32 hierarchies (chains of keys from a root seed), X.509 utilities for the payment protocol and other general cryptography tasks.
High level wrapper APIs around the bitcoinj building blocks.
Classes handling low level network management using either NIO (async io) or older style blocking sockets (useful for using SOCKS proxies, Tor, SSL etc).
Classes that know how to discover peers in the P2P network using DNS or HTTP.
Network parameters encapsulate some of the differences between different Bitcoin networks such as the main network, the testnet, regtest mode, unit testing params and so on.
Micropayment channels allow for rapid tiny payments to be made to a third party once a channel has been set up, using some of the advanced features of the Bitcoin protocol.
The BIP70 payment protocol wraps Bitcoin transactions and adds various useful features like memos, refund addresses and authentication.
Classes for working with and executing Bitcoin script programs, as embedded in inputs and outputs.
Transaction signers know how to calculate signatures over transactions in different contexts, for example, using local private keys or fetching them from remote servers.
Block stores persist blockchain data downloaded from remote peers.
Parsing and handling of bitcoin: textual URIs as found in qr codes and web links.
Formatting monetary amounts, representing exchange rates, a program for loading Bitcoin Core saved block files, a class to control how bitcoinj uses threads and misc other utility classes that don't fit anywhere else.
Classes that support the