Primitive datentype

ich habe 2 primitive datentypen
int ivalue = 3
long lvalue = 301
was ist der typ und werte von lvalue+ivalue ?
ist der Antwort long und 301 weil long größere zahlen behandelt als int ?
kann man sie überhaupt addieren ?
danke

Ich zitiere aus http://openbook.galileocomputing.de/javainsel8/javai…

Werte der Datentypen byte und short werden bei
Rechenoperationen automatisch in den Datentyp int
umgewandelt. Ist ein Operand vom Datentyp long, dann 
werden alle Operanden auf long erweitert. Wird aber 
short oder byte als Ergebnis verlangt, dann ist dieses 
durch einen expliziten Typecast anzugeben, und nur die 
niederwertigen Bits des Ergebniswerts werden übergeben.