Byte Addition Type Promotion
Given: byte b = 10; b = b + 1; Which statement is true?
Quick Answer
The answer is a compilation error because byte cannot be assigned int. When Java evaluates `b + 1`, it performs byte addition type promotion, widening the `byte` operand to an `int` before the addition occurs. The resulting value is an `int`, and attempting to store it back into a `byte` variable without an explicit cast triggers an "incompatible types: possible lossy conversion from int to byte" error. On the Oracle Java Foundations 1Z0-811 exam, this question tests your understanding of binary numeric promotion and implicit narrowing, a classic trap where candidates forget that arithmetic operations on `byte`, `short`, or `char` always promote to `int`. A reliable memory tip: "Byte math becomes int; you must cast to fit it back."
⚠ Common exam trap
The trap here is that candidates often forget that arithmetic operations on `byte` (or `short` or `char`) automatically promote the result to `int`, and they mistakenly assume the assignment is valid without a cast.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Compilation error because byte cannot be assigned int.
In Java, the expression `b + 1` performs binary numeric promotion, widening the `byte` operand to `int` before addition. The result is an `int` (11), which cannot be implicitly assigned back to a `byte` variable without a cast. Therefore, `b = b + 1;` causes a compilation error: 'incompatible types: possible lossy conversion from int to byte'. Option C correctly identifies this error.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
The value of b becomes 11.
Why it's wrong here
Does not compile.
- ✗
b is automatically widened to int then assigned back without error.
Why it's wrong here
No implicit narrowing.
- ✓
Compilation error because byte cannot be assigned int.
Why this is correct
b+1 is int, needs explicit cast.
- ✗
The expression b+1 results in a byte.
Why it's wrong here
Result is int.
Go deeper
Related to this question
About these practice questions
One of 481 original 1Z0-811 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
Same concept, more angles
1 more way this is tested on 1Z0-811
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. Given: byte b = 10; b = b + 1; What is the result?
hard- A.Runtime exception
- B.b becomes 10
- ✓ C.Compilation error
- D.b becomes 11
Why C: In Java, arithmetic operations on byte promote the result to int. Assigning an int to a byte without a cast causes a compilation error.
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This 1Z0-811 practice question is part of Courseiva's free Oracle certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the 1Z0-811 exam.