Java: Summary - Data

Basic Java

Basic types to know: int, double, String, boolean, and char.

Primitive types


There are 8 primitive types: boolean (true and false); char (Unicode characters); byte, short, int, and long (integers); float and double (floating point). The most commonly used pre-defined object type is String. Primitive types have corresponding "wrapper" class whose objects are immutable (values can not be changed).

Autoboxing. Conversion between the primitive and the wrapper classes is largely automatic as of Java 5.

Integers - primitive types

Integer classes

The integer types byte, short, int, and long are stored as two's complement, signed binary integers. char, which is technically also an integer type, is stored as an unsigned binary number. Expressions are computed as ints, so a cast is needed to store in a smaller type.
Type BytesRange Literals
byte 1-128..+127 none
short2-32,768..+32,767 none
int 4-2,147,483,648..+2,147,483,64723, 0xAF
long 8-9,223,372,036,854,775,808.. 23L, 0xAFL
Operators: arithmetic, comparison, bitwise, assignment.
Wrapper classes Integer (not Int), Short, Byte, Long contain utility methods, eg, Integer.parseInt(s), MAX_VALUE, MIN_VALUE, ...

Math class has many useful utility methods.

java.math.BigInteger is useful for arithmetic on unbounded integers.

Several other integer classes have limited or special utility: Number, AtomicInteger, and AtomicLong.

Floating-point - primitive types

Floating-point classes

The floating-point types, float and double, are stored in IEEE-754 format. Calculations may produce NaN (Not a Number) or +/- infinity. Calculations are done as doubles, so a cast is needed to store in a float.
Type Bytes Range Accuracy Literals
float 4-3.4E38..+3.4E38 6-7 digits 3.14F 6.02e23F
double8-1.7E308..+1.7E30814-15 digits3.14 6.02e23
Operators: arithmetic, comparison, assignment.
Wrapper classes: Double and Float contain utility methods (eg, Double.parseDouble(s)), MAX_VALUE, MIN_VALUE, ...

Math class has many useful utility methods.

java.math.BigDecimal for arithmetic on unbounded floating-point numbers.

Special utility: Number.

boolean - primitive type

Boolean class

boolean has values true or false.
Operators: logical, ==, !=, assignment.
Boolean: wrapper class with little utility.

char - primitive types

Character, String, ... classes

char type is a Unicode character stored as an unsigned number in two bytes (range 0..65,535 or '\u0000'..'\uFFFF'). char is an integer type.
char literals
  • 'A' (single character)
  • Unicode '\uxxxx' where x is a hexadecimal digit. Eg '\u0041'
  • Octal '\nnn' where n is an octal digit.
  • Escape combinations: '\n' newline, '\\' backslash, '\'' single quote, '\"' double quote, '\r' carriage return, '\t' tab, '\b' backspace, '\f' form feed.
Character wrapper class contains useful methods for working with characters.

String immutable 0 or more characters.

java.util.StringBuilder (as of Java 5) and java.util.StringBuffer (slower than StringBuilder because it's synchronized) used for dynamically building or modifying strings.

java.util.regex.Pattern and java.util.regex.Matcher used for regular expression matching. java.util.StringTokenizer is earlier class to break strings into "tokens".

CharSequence is basic character interface.

2005 Fred Swartz