Currently, I'm learning arrays in JAVA. when I was trying to print reference variable of Primitive and non-primitive data types, I was getting usual results (as I have thought I will get) but when I tried to print the reference variable of 'Char' Datatype, I got characters back as a string result. can someone please explain why does it work like that? and plus if you know why the reference variable of string data type also gives different output as compared to others?
int[] arr1 = {1,2,3,4,5};
System.out.println(arr1); // Output : [I@e9e54c2
char[] arr2 = {'a','b','c','d','e'};
System.out.println(arr2); // Output : abcde
String[] arr3 = {"Luke", "Phill","Alex"};
System.out.println(arr3); // Output : [Ljava.lang.String;@6d311334