Franta má 1024 Kč, Pepa má také 1024 Kč. Pepa je Franta.
No jenže pokud ale mají oba pouze 50 Kč, pak opravdu jo:
public class HelloWorld
{
public static void main(String[] args)
{
Integer a = 50;
Integer b = 50;
System.out.print(a == b); // true
}
}
Nemá smysl se vrtat v těchle profláklejch kravinkách. Každej jazyk a platforma co má něco za sebou obsahuje takovýhle věci, protože co se zdálo dobré tenkrát se za 10 - 20 let ukáže jako špatné rozhodnutí. Java si tím prošla několikrát a už má nasbíráno pěknou řádku kostlivců, na druhou stranu pořád to není tak hrozný právě kvůli její jednoduchosti. Podívej se na specifikaci rovnosti v javascriptu, pochybuju, že řadový JS programátor by to dal dohromady. Podívej se na chytáky v C#, tam to chvíli trvalo, než třeba lambdy udělali blbuvzdorný.
Na jednu stranu můžeme jakožto líní programátoři žádat, aby byl jazyk jednoduchý a bez nástrah, na druhou stranu to vždy bude něco za něco a holt by zatím člověk neměl otevřít editor dokud si nenačte jak se chová rovnost, spojování stringů, přetypování na bool, hashe a equals apod. To jsou věci, který jsou snad v každym jazyku jinak a dost často nějak blbě.