Data and Expressions in Java

Data Types and Variables

Primitive data types in Java include the following:

integers byte, short, int, long
floating-point numbers float, double
boolean boolean
character char

Other than primitive data types, one can define composite data types (object types) using classes. For example, String is a class defined in the standard Java library; it is used to represent a sequence of characters.

A variable is a name for a memory location holding a data value. We can declare a variable by specifying its type and name, and assign values to variables.

int count;
count = 0;
count = count + 1;
int a, b = 10;
String title = "Theory";
double pi = 3.14159;

Arithmetic Expressions

An arithmetic expression combines arithmetic operators with numeric operands and produces a numeric result. Arithmetic operators include: addition +, subtraction -, multiplication *, division /, and remainder %.

The following are examples of using arithmetic expressions.

int a = 10, b = 3, c, d;
c = a / b;          // c is 3
d = a % b;          // d is 1

Note that, integer division will discard any fractional part of the result; for example, the result of 10/3 is an integer 3. To get floating-point numbers we have to use explicit conversion: 10/3.0 or 10/((double) 3).

Expressions are evaluated according to the operator precedence.

  • *, /, %  have the same precedence
  • +, –  have the same precedence
  • *, /, %  have higher precedence than  +, –
  • Operators with the same precedence are evaluated from left to right
  • Parentheses force precedence

The increment operator (++) adds one to the numeric variable. The decrement operator (–) subtracts one.

int count;
count++; // count = count + 1;
count--; // count = count - 1;

Assignment operators combine an arithmetic operator with assignment (+=, -=, *=, /=, %=).

int count;
count += 5; // count = count + 5;
count -= 5; // count = count - 5;
count /= 5; // count = count / 5;
count %= 5; // count = count % 5;

Type Conversion

Java is a strongly typed language. Every data value in Java is associated with a data type. Type conversions sometimes are necessary, especially between integers and float point numbers.

Assignment conversion occurs when we assign a value of one type to a variable of another type. For example,

int a = 20;
double d = a; // d will be 20.0

Certain operators may automatically convert its operands to maintain the consistency of the types of operands.

int a = 20;
double b = 3.0;
double d = a / b; // left operand is first converted to 20.0

Conversion can be explicitly done using a cast. A cast is specified by a type name within parentheses.

int a = 20;
int b = 3;
double c = (double) a; // c will be 20.0
double d = (double) a / b; // same as: ((double) a) / b, and
// b will be converted to 3.0 before the division

Note that the casting operation has higher precedence than arithmetic operations.

Comments

comments