IF e operador ternário

o operador ternário é mais rápido ou só muda a maneira de escrever ?

int a;

if(condicao) { a = 1; } else { a = 1; }

ou

a = condicao ? 1 : 2;

num fim das contas vai dar tudo no mesmo , num vai ficar mais rapido nem de um jeito de outro.

Só muda a forma de escrever!

hmmm, sera mesmo?
vejamos:

class tst
{
	int t;
	int foo()
	{
		int x = t == 0 ? 10 : 20;
		return x;
	}

	int foo2()
	{
		int x;
		if(t == 0)
			x = 10;
		else
			x = 20;
		return x;
	}
}

>javac tst.java
compilou

>javap -c tst

Method int foo()
   0 aload_0
   1 getfield #2 <Field int t>
   4 ifne 12
   7 bipush 10
   9 goto 14
  12 bipush 20
  14 istore_1
  15 iload_1
  16 ireturn

Method int foo2()
   0 aload_0
   1 getfield #2 <Field int t>
   4 ifne 13
   7 bipush 10
   9 istore_1
  10 goto 16
  13 bipush 20
  15 istore_1
  16 iload_1
  17 ireturn

O codigo gerado é diferente, porem ambos vao executar o mesmo numero de instrucoes.
Compilando com -O -g:none o resultado não muda.

Ou seja, usar operador ternario ou if é pura questão de gosto ate onde tudo indica…