Assuming you can't make the array a String[] rather than an Object[] ...
If you will loop through once but then use each element many times, I'd write something like ...
for (int x=0; x<whatever.length; ++x)
{
String whatever1=(String)whatever[x];
Then use whatever1 throughout the body of the loop. This means you do the array lookup and the cast only once rather than repeatedly.
(The same applies if you are not really looping through but using some other means to find the desired entry, but are still using each entry generally only once.)
If you have to process each element of the array many times interspersed with using other elements, it might be beneficial to copy the Object[] to a String[], like:
String[] sWhatever=new String[oWhatever.length];
for (int x=oWhatever.length-1; x>=0; --x)
sWhatever[x]=(String)oWhatever[x];
(Can you write "System.arraycopy(oWhatever, 0, sWhatever, 0, oWhatever.length)" ? I think that would work, though I haven't tried it.)
Whether the copy would take longer than the casts would depend on how often you have to cast each element. My guess is it would rarely be worth it, but it's possible.