Le paquetage java.lang fournit les classes fondamentales à la conception à de tout programme Java.

Les interfaces
CharSequence représente une séquence lisible de caractères.
Cloneable une classe implémente l'interface CloneAble pour indiquer à la méthode Objetc.clone() qu'il est légal pour cette méthode de faire une copie champ par champ de cette classe.
Comparable impose une disposition totale sur les objets de chaque classe qui l'implémente.
Runnable devrait être implémentée par n'importe quelle classe dont les instances sont destinées à être exécutées par un thread.

Les classes
Boolean constitue une classe wrapper destinée à englober une valeur du type primitif booléen dans un objet.
Byte constitue une classe wrapper destinée à englober une valeur du type primitif byte dans un objet.
Character constitue une classe wrapper destinée à englober une valeur du type primitif char dans un objet.
Character.Subset Les instances de cette classe représente des sous-ensembles particuliers du jeu de caractères Unicode.
Character.UnicodeBlock sonstitue une famille de sous-ensembles de caractères représentant des groupes dans les spécifications Unicode.
Class Les instances de cette classe représentent des classes et des interfaces dans une application en exécution.
ClassLoader est un objet qui est responsable du chargement des classes.
Compiler est prévu pour supporter les compilateurs Java-to-native-code (code natif vers Java) et les services associés.
Double constitue une classe wrapper destinée à englober une valeur du type primitif double dans un objet.
Float constitue une classe wrapper destinée à englober une valeur du type primitif float dans un objet.
InheritableThreadLocal héritant de la classe ThreadLocal, fournit l'héritage des valeurs à partir du thread parent vers le thread enfant : lorsqu'un thread enfant est créé, l'enfant reçoit les valeurs initiales pour toutes les variables du thread local transmis pour lesquelles le parent a des valeurs.
Integer constitue une classe wrapper destinée à englober une valeur du type primitif int dans un objet.
Long constitue une classe wrapper destinée à englober une valeur du type primitif long dans un objet.
Math contient les méthodes pour exécuter les opérations numériques basiques telles que les exponentielles, les logarthment les puissances, les racines, etc..
Number représente la superclasse des classes BigDecimal, BigInteger, Byte, Double, Float, Integer, Long, et Short.
Object constitue la classe racine de l'ensemble des classes Java.
Package contient les informations à propos de l'implémentation et des spécifications d'un paquetage Java.
Process Les méthodes Runtime.exec crée une exécution native et retourne une instance d'une sous-classe de Process qui peut être utilisée pour contrôer l'exécution et obtenir des informations à son propos.
Runtime Chaque application Java a une unique instance de la classe Runtime qui autorise l'application à se connecter avec l'environnement dans lequel l'application s'exécute.
RuntimePermission gère les permissions d'exécution.
SecurityManager est une classe qui autorise les applications à implémenter une politique de sécurité.
Short constitue une classe wrapper destinée à englober une valeur du type primitif short dans un objet.
StackTraceElement représente un élément dans une stack trace (suivi de la réalisation d'un programme phase après phase), retourné par Throwable.getStackTrace().
StrictMath contient les méthodes pour l'exécution d'opérations numériques de base.
String fournit des méthodes destinées à manipuler des chaînes de caractères immuables.
StringBuffer fournit des méthodes destinées à manipuler des chaînes de caractères mutables.
System contient plusieurs classes, champs et méthodes utiles telles que pour lancer le Garbage Collector, terminer l'exéution de la JVM, etc..
Thread fournit des outils pour gérer les unités d'exécution (threads) dans un programme.
ThreadGroup représente un jeu de threads.
ThreadLocal représente les variables d'un thread local.
Throwable représente le superclasse de toutes les erreurs et exceptions dans le langage Java.
Void est une classe qu'on ne peut instancier pour conserver une référence à la classe Object représentant le mot clé void.

Le exceptions
ArithmeticException Une condition arithmétique exceptionnelle s'est produite.
ArrayIndexOutOfBoundsException Un tableau a été accédé avec un index invalide.
ArrayStoreException Une tentative a été faite pour stocker un type d'objet erroné à l'intérieur d'un tableau d'objets.
ClassCastException Le code a tenté un transtypage d'un objet vers une sous-classe de laquelle elle n'est pas une instance.
ClassNotFoundException Un application essaie de charger dans une classe au moyen de son nom en utilisant la méthode forName dans une classe Class.
CloneNotSupportedException Une méthode clone dans une classe Object a été appelée à cloner un objet, mais que la classe de l'objet n'implémente pas l'interface Cloneable.
Exception La classe Exception et ses sous-classes sont une forme de classe Throwable qui indique les conditions qu'une application raisonnable peut vouloir attraper.
IllegalAccessException Une application essaie de créer réflectivement une instance (autre qu'un tableau), fixe ou obtient un champ ou invoque une méthode mais couramment l'exécution de la méthode n'a pas accès à la définition de la classe, champ, méthode ou constructeur spécifié.
IllegalArgumentException Une méthode a passé un argument illégal ou inapproprié.
IllegalMonitorStateException Un thread a tenté d'attendre sur un moniteur d'objet ou notifier d'autres threads attendant sur un moniteur d'objet sans posséder le moniteur spécifié.
IllegalStateException Une méthode a été invoquée à une période illégale ou inappropriée.
IllegalThreadStateException Un thread n'est pas dans un état approprié pour l'opération requise.
IndexOutOfBoundsException Un index d'une certaine catégorie est hors de l'intervalle pour un tableau, une chaîne de caractères ou un vecteur.
InstantiationException Une application essaie de créer une instance d'une classe utilisant la méthode newInstance dans la classe Class, mais la classe d'objet spécifiée ne peut être instanciée parcequ'il est une interface ou est une classe abstraite.
InterruptedException Un thread est en attente, en sommeil ou en pause pour une longue période et un autre thread interrompt son utilisation en utilisant la méthode interrupt dans la classe Thread.
NegativeArraySizeException Une application essaie de créer un tableau avec une taille négative.
NoSuchFieldException Une classe n'a pas un champ avec le nom spécifié.
NoSuchMethodException Une méthode particulière ne peut être trouvée.
NullPointerException Une application tente d'utiliser null dans un cas ou un objet est requis.
NumberFormatException Une application a tenté de convertir une chaîne de caractères vers un des types numériques, mais que la chaîne de caractères n'a pas un format approprié.
RuntimeException La classe RuntimeException est la superclasse de ces exceptions qui peut être lancée durant les opérations normales de la JVM (Java Virtual Machine).
SecurityException Le gestionnaire de sécurité indique une violation de sécurité.
StringIndexOutOfBoundsException Les méthodes de chaînes de caractères indique qu'un index est soit négatif, soit trop grand par rapport à la taille de la chaîne de caractères.
UnsupportedOperationException L'opération requise n'est pas supportée.

Les erreurs
AbstractMethodError Une application essaie d'apeler une méthode abstraite.
AssertionError Une assertion a échoué.
ClassCircularityError Une circularité a été détecté pendant l'initialisation d'une classe.
ClassFormatError La JVM tente de lire un fichier classe et détermine que ce dernier est malformé ou ne peut être interprété comme un fichier classe.
Error Une classe Error est une sous-classe de Throwable qui indique de sérieux problèmes qu'une application raisonnable devrait essayer d'attraper.
ExceptionInInitializerError Une exception inattendue s'est produite dans un initialisateur statique.
IllegalAccessError Une application tente d'accéder ou de modifier un champ ou d'appeler une méthode qu'elle ne peut accéder.
IncompatibleClassChangeError Une échange de classe incompatible s'est produit.
InstantiationError Une application essaie d'utiliser le constructeur Java new pour instancier une classe abstraite ou une interface.
InternalError Une certaine erreur interne inattendue s'est produite dans la JVM.
LinkageError Une classa a une certaine dépendance sur une autre classe; toutefois la seconde classe a fait une échange incompatible après la compilation de la classe précédente.
NoClassDefFoundError La JVM ou une instance de ClassLoader essaie de charger dans la définition d'une classe (comme une partie de l'appel d'une méthode normal ou de la création d'une nouvelle instance utilisant l'expression new) et non la définition de la classe instance qui pourra être trouvée.
NoSuchFieldError Une application essaie d'accéder ou de modifier un champ spécifié d'un objet et que ce dernier peu raisonnable a ce champ.
NoSuchMethodError Une application essaie d'appeler une méthode spécifée d'une classe (soit statique,sois une instance) et qu'une classe peu raisonnable a une définition de cette méthode.
OutOfMemoryError La JVM ne peut allouer un objet parcequ'elle est en dépassement de mémoire et aucune mémoire ne peut être rendu disponible par le Garbage Collector.
StackOverflowError Un débordement de mémoire (stack : tas) se produit parcequ'une application s'exécute récursivement trop profondément.
ThreadDeath Une instance de la classe ThreadDeath est lancée dans un thread victime lorsque la méthode stop avec aucun argument dans la classe Thread est applelé.
UnknownError Une exception sérieuse mais inconnue s'est produite dans la JVM.
UnsatisfiedLinkError La JVM ne peut pas trouver une définition de langage natif appropriée d'une méthode déclarée native.
UnsupportedClassVersionError La JVM tente de lire un fichier classe et détermine que les numéros de version majeur et mineur dans le fichier ne sont pas supportés.
VerifyError Le "vérificateur" détecte qu'un fichier classe pourtant bien formé, contient plusieurs sortes d'inconsistances internes ou de problèmes de sécurité.
VirtualMachineError La JVM est interrompue ou a exécuterdes ressources nécessaires pour qu'il continue l'opération.
Sommaire