В Java все, кроме примитивных типов, является ссылками.String
не считается примитивным типом, но char
является.Итак, AFAIK 'a' в вашем примере не является ссылкой.
Однако Java поддерживает autoboxing , поэтому, если вы попытаетесь использовать 'a' в качестве объекта, он, вероятно, будет работать нормально, как если бы это была ссылка.
Обновление : здесь могут помочь некоторые примеры:
char a = 'a';
char b = 'a';
System.out.println(a == b); // true
String c = "a";
String d = "a";
System.out.println(c == d); // Dunno; may be true if the compiler created a single object for c and d, otherwise it's false
String e = new String("a");
String f = new String("a");
System.out.println(e == f); // false