Question 68 of 481
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.
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, 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.
Last reviewed: Jun 25, 2026
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.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.