If you really need to know the difference you need to know the diff between ptr in C and ref in java
when you say in C: char str[10]; ==> you allocate a sequence 10 blocks in memory and every block's size is sizeof(char) and terminated by null so you can deal with strings with normal ptr operations.
java: when you say String str; ==> you create an object java.lang.String which inherit some methods which in the java.lang.String Class like compare(),equals(),contains(),charAt() and more.
C: to perform normal String manipulation you treat with ptrs or you using prepared function from header files which inside it deals with block of memory no more no less.
Ex: comparing 2 strings => strcmp(str1,str2);
java:as I said every thing in java is an object if you want to compare 2 string:
String str1;
String str2;
str1.equals(str2);
C: a String is must be NULL-Terminated to know when you should stop and if you try to read the block after the string no thing bad would happen (it will compile and wouldn't crash probably)
Java: as I said String is an object so you don't need to deal with memory if you try to access an element outside the String it will throw an indexOutOfBoundException and your program would crash unless you handle this Exception.