When you call the String#getBytesmethod you get a new array, initialized with the length equals to the number of bytes needed to represent the string. Due to Java docs:
Encodes this String into a sequence of bytes using the given charset, storing the result into a new byte array.
In your case it's length equals to length the string (13 bytes) and it's less then 30 anyway. That is the reason you get this exception, while trying to get the 30th element.
If you need to initialize your buffer variable with an array you become from string, you need to use System#arraycopy method:
byte[] byteAr = s.getBytes();
System.arraycopy(byteAr, 0, buffer, 0, byteAr.length);
If you wish to know, what are values used to initialize an array by default, so it's a default velues for datatype your array consist of. In case of bytes, the default value is 0.