java.lang

Overview | Package | Class | Use | Tree | Deprecated | Index | Help

PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

## Package java.lang

Provides classes that are fundamental to the design of the Java programming language.

See:
Description

Interface Summary
CharSequence | A `CharSequence` is a readable sequence of characters.
Cloneable | A class implements the `Cloneable` interface to indicate to the `Object.clone()` method that it is legal for that method to make a field-for-field copy of instances of that class.
Comparable | This interface imposes a total ordering on the objects of each class that implements it.
Runnable | The `Runnable` interface should be implemented by any class whose instances are intended to be executed by a thread.

Class Summary
Boolean | The Boolean class wraps a value of the primitive type `boolean` in an object.
Byte | The `Byte` class wraps a value of primitive type `byte` in an object.
Character | The `Character` class wraps a value of the primitive type `char` in an object.
Character.Subset | Instances of this class represent particular subsets of the Unicode character set.
Character.UnicodeBlock | A family of character subsets representing the character blocks in the Unicode specification.
Class | Instances of the class `Class` represent classes and interfaces in a running Java application.
ClassLoader | A class loader is an object that is responsible for loading classes.
Compiler | The `Compiler` class is provided to support Java-to-native-code compilers and related services.
Double | The `Double` class wraps a value of the primitive type `double` in an object.
Float | The `Float` class wraps a value of primitive type `float` in an object.
InheritableThreadLocal | This class extends `ThreadLocal` to provide inheritance of values from parent thread to child thread: when a child thread is created, the child receives initial values for all inheritable thread-local variables for which the parent has values.
Integer | The `Integer` class wraps a value of the primitive type `int` in an object.
Long | The `Long` class wraps a value of the primitive type `long` in an object.
Math | The class `Math` contains methods for performing basic numeric operations such as the elementary exponential, logarithm, square root, and trigonometric functions.
Number | The abstract class `Number` is the superclass of classes `BigDecimal`, `BigInteger`, `Byte`, `Double`, `Float`, `Integer`, `Long`, and `Short`.
Object | Class `Object` is the root of the class hierarchy.
Package | `Package` objects contain version information about the implementation and specification of a Java package.
Process | The `Runtime.exec` methods create a native process and return an instance of a subclass of `Process` that can be used to control the process and obtain information about it.
Runtime | Every Java application has a single instance of class `Runtime` that allows the application to interface with the environment in which the application is running.
RuntimePermission | This class is for runtime permissions.
SecurityManager | The security manager is a class that allows applications to implement a security policy.
Short | The `Short` class wraps a value of primitive type `short` in an object.
StackTraceElement | An element in a stack trace, as returned by `Throwable.getStackTrace()`.
StrictMath | The class `StrictMath` contains methods for performing basic numeric operations such as the elementary exponential, logarithm, square root, and trigonometric functions.
String | The `String` class represents character strings.
StringBuffer | A string buffer implements a mutable sequence of characters.
System | The `System` class contains several useful class fields and methods.
Thread | A thread is a thread of execution in a program.
ThreadGroup | A thread group represents a set of threads.
ThreadLocal | This class provides thread-local variables.
Throwable | The `Throwable` class is the superclass of all errors and exceptions in the Java language.
Void | The Void class is an uninstantiable placeholder class to hold a reference to the Class object representing the Java keyword void.

Exception Summary
ArithmeticException | Thrown when an exceptional arithmetic condition has occurred.
ArrayIndexOutOfBoundsException | Thrown to indicate that an array has been accessed with an illegal index.
ArrayStoreException | Thrown to indicate that an attempt has been made to store the wrong type of object into an array of objects.
ClassCastException | Thrown to indicate that the code has attempted to cast an object to a subclass of which it is not an instance.
ClassNotFoundException | Thrown when an application tries to load in a class through its string name using: The `forName` method in class `Class`.
CloneNotSupportedException | Thrown to indicate that the `clone` method in class `Object` has been called to clone an object, but that the object's class does not implement the `Cloneable` interface.
Exception | The class `Exception` and its subclasses are a form of `Throwable` that indicates conditions that a reasonable application might want to catch.
IllegalAccessException | An IllegalAccessException is thrown when an application tries to reflectively create an instance (other than an array), set or get a field, or invoke a method, but the currently executing method does not have access to the definition of the specified class, field, method or constructor.
IllegalArgumentException | Thrown to indicate that a method has been passed an illegal or inappropriate argument.
IllegalMonitorStateException | Thrown to indicate that a thread has attempted to wait on an object's monitor or to notify other threads waiting on an object's monitor without owning the specified monitor.
IllegalStateException | Signals that a method has been invoked at an illegal or inappropriate time.
IllegalThreadStateException | Thrown to indicate that a thread is not in an appropriate state for the requested operation.
IndexOutOfBoundsException | Thrown to indicate that an index of some sort (such as to an array, to a string, or to a vector) is out of range.
InstantiationException | Thrown when an application tries to create an instance of a class using the `newInstance` method in class `Class`, but the specified class object cannot be instantiated because it is an interface or is an abstract class.
InterruptedException | Thrown when a thread is waiting, sleeping, or otherwise paused for a long time and another thread interrupts it using the `interrupt` method in class `Thread`.
NegativeArraySizeException | Thrown if an application tries to create an array with negative size.
NoSuchFieldException | Signals that the class doesn't have a field of a specified name.
NoSuchMethodException | Thrown when a particular method cannot be found.
NullPointerException | Thrown when an application attempts to use `null` in a case where an object is required.
NumberFormatException | Thrown to indicate that the application has attempted to convert a string to one of the numeric types, but that the string does not have the appropriate format.
RuntimeException | `RuntimeException` is the superclass of those exceptions that can be thrown during the normal operation of the Java Virtual Machine.
SecurityException | Thrown by the security manager to indicate a security violation.
StringIndexOutOfBoundsException | Thrown by `String` methods to indicate that an index is either negative or greater than the size of the string.
UnsupportedOperationException | Thrown to indicate that the requested operation is not supported.

Error Summary
AbstractMethodError | Thrown when an application tries to call an abstract method.
AssertionError | Thrown to indicate that an assertion has failed.
ClassCircularityError | Thrown when a circularity has been detected while initializing a class.
ClassFormatError | Thrown when the Java Virtual Machine attempts to read a class file and determines that the file is malformed or otherwise cannot be interpreted as a class file.
Error | An `Error` is a subclass of `Throwable` that indicates serious problems that a reasonable application should not try to catch.
ExceptionInInitializerError | Signals that an unexpected exception has occurred in a static initializer.
IllegalAccessError | Thrown if an application attempts to access or modify a field, or to call a method that it does not have access to.
IncompatibleClassChangeError | Thrown when an incompatible class change has occurred to some class definition.
InstantiationError | Thrown when an application tries to use the Java `new` construct to instantiate an abstract class or an interface.
InternalError | Thrown to indicate some unexpected internal error has occurred in the Java Virtual Machine.
LinkageError | Subclasses of `LinkageError` indicate that a class has some dependency on another class; however, the latter class has incompatibly changed after the compilation of the former class.
NoClassDefFoundError | Thrown if the Java Virtual Machine or a `ClassLoader` instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the `new` expression) and no definition of the class could be found.
NoSuchFieldError | Thrown if an application tries to access or modify a specified field of an object, and that object no longer has that field.
NoSuchMethodError | Thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method.
OutOfMemoryError | Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector.
StackOverflowError | Thrown when a stack overflow occurs because an application recurses too deeply.
ThreadDeath | An instance of `ThreadDeath` is thrown in the victim thread when the `stop` method with zero arguments in class `Thread` is called.
UnknownError | Thrown when an unknown but serious exception has occurred in the Java Virtual Machine.
UnsatisfiedLinkError | Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared `native`.
UnsupportedClassVersionError | Thrown when the Java Virtual Machine attempts to read a class file and determines that the major and minor version numbers in the file are not supported.
VerifyError | Thrown when the "verifier" detects that a class file, though well formed, contains some sort of internal inconsistency or security problem.
VirtualMachineError | Thrown to indicate that the Java Virtual Machine is broken or has run out of resources necessary for it to continue operating.

## Package java.lang Description

Provides classes that are fundamental to the design of the Java programming language. The most important classes are `Object`, which is the root of the class hierarchy, and `Class`, instances of which represent classes at run time.

Frequently it is necessary to represent a value of primitive type as if it were an object. The wrapper classes `Boolean`, `Character`, `Integer`, `Long`, `Float`, and `Double` serve this purpose. An object of type `Double`, for example, contains a field whose type is double, representing that value in such a way that a reference to it can be stored in a variable of reference type. These classes also provide a number of methods for converting among primitive values, as well as supporting such standard methods as equals and hashCode. The `Void` class is a non-instantiable class that holds a reference to a `Class` object represening the primitive type void.

The class `Math` provides commonly used mathematical functions such as sine, cosine, and square root. The classes `String` and `StringBuffer` similarly provide commonly used operations on character strings.

Classes `ClassLoader`, `Process`, `Runtime`, `SecurityManager`, and `System` provide "system operations" that manage the dynamic loading of classes, creation of external processes, host environment inquiries such as the time of day, and enforcement of security policies.

Class `Throwable` encompasses objects that may be thrown by the throw statement (§14.16). Subclasses of `Throwable` represent errors and exceptions.

## Package Specification

### Character Encodings

Various constructors and methods in the `java.lang` and `java.io` packages accept string arguments that specify the character encoding to be used when converting between raw eight-bit bytes and sixteen-bit Unicode characters. Such encodings are named by strings composed of the following characters:

- The uppercase letters `'A'` through `'Z'` (`'\u0041'` through `'\u005a'`),
- The lowercase letters `'a'` through `'z'` (`'\u0061'` through `'\u007a'`),
- The digits `'0'` through `'9'` (`'\u0030'` through `'\u0039'`),
- The dash character `'-'` (`'\u002d'`, HYPHEN-MINUS),
- The colon character `':'` (`'\u003a'`, COLON), and
- The underscore character `'_'` (`'\u005f'`, LOW LINE).

An encoding name must begin with either a letter or a digit. The empty string is not a legal encoding name.

An encoding may have more than one name. One of an encoding's names is considered to be its canonical name. The canonical name of an encoding is the name returned by the `getEncoding` methods of the `InputStreamReader` and `OutputStreamWriter` classes.

Encoding names generally follow the conventions documented in RFC2278: IANA Charset Registration Procedures. If an encoding listed in the IANA Charset Registry is supported by an implementation of the Java platform then one of its names must be the name listed in the registry. Many encodings are given more than one name in the registry, in which case the registry identifies one of the names as MIME-preferred. An implementation of the Java platform must support the MIME-preferred registry name for a supported encoding if there is one; for convenience it may additionally support other registry names. The IANA MIME-preferred name of an encoding, if there is one, is often, but not necessarily, its canonical name. Following IANA convention, the mapping from IANA registry names to encodings is not case-sensitive.

Every implementation of the Java platform is required to support the following character encodings. Consult the release documentation for your implementation to see if any other encodings are supported.

> `US-ASCII` | Seven-bit ASCII, a.k.a. `ISO646-US`, a.k.a. the Basic Latin block of the Unicode character set
> `ISO-8859-1` | ISO Latin Alphabet No. 1, a.k.a. `ISO-LATIN-1`
> `UTF-8` | Eight-bit Unicode Transformation Format
> `UTF-16BE` | Sixteen-bit Unicode Transformation Format, big-endian byte order
> `UTF-16LE` | Sixteen-bit Unicode Transformation Format, little-endian byte order
> `UTF-16` | Sixteen-bit Unicode Transformation Format, byte order specified by a mandatory initial byte-order mark (either order accepted on input, big-endian used on output)

The various Unicode Transformation Formats are described in detail in The Unicode Standard and in the Unicode FAQ.

Every instance of the Java virtual machine has a default character encoding. The default encoding is determined during virtual-machine startup and typically depends upon the locale and encoding being used by the underlying operating system.

Since:
  JDK1.0

Overview | Package | Class | Use | Tree | Deprecated | Index | Help

PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES