Courseiva
Primitives, Strings and OperatorshardMultiple ChoiceObjective-mapped

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

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 →

How Courseiva writes practice questions · Editorial policy

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.