I have an simple answer to your second question. pardon me if am wrong.
you are concatenating a string and an integer. the integer will be casted to string in this case.
If we want to the result of the concatenating ( string + int ) in a variable, then the variable should be of string data type ( it cant be of int datatype ).
String s = "Record count";
int i = 10;
String Count = s + i; // correct
int Count = s + i; // error
Hope you understand. Correct me if am wrong.