Explore Courses Blog Tutorials Interview Questions
0 votes
1 view
in Java by (20.3k points)

Until today, I thought that for example:

i += j;

Was just a shortcut for:

i = i + j;

But if we try this:

int i = 5;

long j = 8;

Then i = i + j; will not compile but i += j; will compile fine.

Does it mean that in fact i += j; is a shortcut for something like this i = (type of i) (i + j)?

1 Answer

0 votes
by (40.4k points)
edited by

In Java whenever you are trying to add higher data type object to lower data type object, the lower data type object is casted to higher data type object and the end result is always summation of higher data type object. You can’t implicitly cast the higher data type object to lower data type object. It’ll cause incompatible type casting.

In this code, 

int i=5, long j=8; i+=j;

 // Here “+=” does type casting this way i.e. by compiler implicitly uppercasting is done in this manner

 i=(int)((long) i+j);

Whereas, in case of i=i+j; you need to cast explicitly long into int in this way:


Are you interested in learning Java from scratch! Refer to this video on Java provided by Intellipaat:

So, ideally in Java, type conversion is done to the type of the right variable from the type of left variable as shown below.

Byte-> Short->Int->Long->float->Double

Related questions

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

28.4k questions

29.7k answers


94.1k users

Browse Categories