javascript
Brief description  about Online courses   join in Online courses
View Vikram V Prabhu 's Profile

Primitive Datatypes

Hi Sir,
Please Explain me casting of Data Types.Then Explain me Byte Data Type with any sample program.Along with this please provide sample assignments for us to cross check our alredy finished assignments.
Asked by Vikram V Prabhu | Aug 1, 2013 |  Reply now
Replies (1)
View java teacher 's Profile
Data Type Casting (Type Conversion)

Java supports two types of castings –

primitive data type casting and
reference type casting.


Reference type casting is nothing but assigning one Java object to another object.
It comes with very strict rules and is explained clearly in Object Casting.


Now let us go for data type casting.

Java data type casting comes with 3 flavours.


Implicit casting
Explicit casting
Boolean casting.


1. Implicit casting (widening conversion)

A data type of lower size (occupying less memory) is assigned to a data type of higher size.

This is done implicitly by the JVM. The lower size is widened to higher size.
This is also named as automatic type conversion.



Examples:

int x = 10; // occupies 4 bytes
double y = x; // occupies 8 bytes
System.out.println(y); // prints 10.0


In the above code 4 bytes integer value is assigned to 8 bytes double value.


2. Explicit casting (narrowing conversion)


A data type of higher size (occupying more memory) cannot be assigned to a data type of lower size.
This is not done implicitly by the JVM and requires explicit casting; a casting operation to be performed by the programmer.
The higher size is narrowed to lower size.

double x = 10.5; // 8 bytes
int y = x; // 4 bytes ; raises compilation error

In the above code, 8 bytes double value is narrowed to 4 bytes int value. It raises error. Let us explicitly type cast it.

double x = 10.5;
int y = (int) x;

The double x is explicitly converted to int y. The thumb rule is, on both sides, the same data type should exist.


3. Boolean casting

A boolean value cannot be assigned to any other data type. Except boolean, all the remaining 7 data types can be
assigned to one another either implicitly or explicitly; but boolean cannot.

We say, boolean is incompatible for conversion. Maximum we can assign a boolean value to another boolean.

Following raises error.

boolean x = true;
int y = x; // error


byte –> short –> int –> long –> float –> double


In the above statement, left to right can be assigned implicitly and right to left requires explicit casting.
That is, byte can be assigned to short implicitly but short to byte requires explicit casting.


Following char operations are possible.

public class Demo
{
public static void main(String args[])
{
char ch1 = 'A';
double d1 = ch1;

System.out.println(d1); // prints 65.0
System.out.println(ch1 * ch1);// prints 4225 ,65*65

double d2 = 66.0;
char ch2 = (char) d2;
System.out.println(ch2); // prints B
}
}


Object casting (reference casting) discusses casting between objects of different classes involved in inheritance.


Aug 5, 2013