Java literals are fixed or constant values in a program's source code. You can use any primitive type value as a literal e.g. boolean int, char and float. However, string is not a primitive type in Java yet we can use strings as literals. Later in this article string literals are discussed.
Integer literals in Java can be used in three flavors in a Java program those are decimal, octal (base 8), and hexadecimal (base 16).
Octal literals are specified in Java program by a leading zero e.g., 07 or 06 are valid octal values, while 09 or 08 are not because octal range lies between 0-7. If you try 08 as an octal literal for an experiment it will result into the error "The literal 08 of type int is out of range".
A hexadecimal literal starts with a leading zero and x (
0x) or zero and X (
0X). For example,
0XFF are valid hexadecimal literals.
Decimal integer literals neither start with a leading zero nor a
0X. Following piece of code shows all three variants of integer literals.
int octLit = 0400; //octal equivalent of decimal 256 int hexLit = 0x100; //hexadecimal equivalent of decimal 256 int decLit = 256; // decimal 256
Integer literals create an
int value, which in Java is a 32-bit integer value. Since Java is strongly typed, you might be wondering how it is possible to assign an integer literal to one of Java's other integer types, such as
long, without causing a type mismatch error. Fortunately, such situations are easily handled. When a literal value is assigned to a
short variable, no error is generated if the literal value is within the range of the target type. Also, an integer literal can always be assigned to a
long variable. However, to specify a
long literal, you will need to explicitly tell the compiler that the literal value is of type
long. You do this by appending an upper or lower-case letter L to the literal. For example,
9223372036854775807L is the largest long.
Floating-point literals in Java default to
double precision. To specify a float literal, you must append an
f to the constant. You can also explicitly specify a double literal by appending a
d. For example,
float f = 89.0; // Type mismatch: cannot convert from double to float float ff = 89.0f; //OK double dou = 89.0D; //OK double doub = 89.0d; //OK double doubl = 89.0; //OK, by default floating point literal is double
Boolean literals have only two possible values those are
boolean boolFalse = false; boolean boolTrue = true;
null might seem like keywords, but they are actually literals; you cannot use them as identifiers in your programs.
Character literals are enclosed in single quotes when they are used for example, 'a' or 'A'. Whereas string literals are enclosed in double quotes for example, "Coffea arabica".
char charLit = 'a'; String strLit = "String Literal";
A string literal consists of zero or more characters enclosed in double quotes. Characters may be represented by escape sequences. A string literal is always of type
String and a reference to an instance of class
String. A string literal always refers to the same instance of class
String. This is because string literals are interned so as to share unique instances, using the method
String.intern. It is a compile-time error for a line terminator to appear after the opening
" and before the closing matching
". A long string literal can always be broken up into shorter pieces and written as an expression using the string concatenation operator
Along with 8 built-in primitive data types; Java provides a rich set of readymade classes for general data structures and problems.
In this tutorial we discussed Java literals (integer, floating-point, boolean, character and string literals). Hope you have enjoyed reading this tutorial. Please do write us if you have any suggestion/comment or come across any error on this page. Thanks for reading!
A data breach affecting 57 million customers and drivers should not have been concealed, the information commissioner says.Android phones 'betray' user location to GooglePosted on Wednesday November 22, 2017
The devices send location data back to Google even when location services are switched off.Budget 2017: Funding for AI, 5G and digital skillsPosted on Wednesday November 22, 2017
The chancellor acknowledged the digital revolution would change the way people lived and worked.Courtesy BBC News