Reverse word by word efficiency
Ideas I had in mind were simply using char[] instead of strings being that strings are immutable and each time I concatenate the Strings, I am creating a new String object which is not efficient at all.


Yes, that will be faster. Go ahead and write it :-)
Instead of Strings like strResult and strBuffer you could use StringBuilders (although using char is probably faster). StringBuilder is mutable and would be faster than using Strings. StringBuilder also supports insert(offset, char) but also has a reverse method.
I'd rename  strResult to result (to avoid Hungarian notation) and strBuffer to the more descriptive currentWord.

if (str.charAt(i) != ' ') {
    ...
}
else if (str.charAt(i) == ' ') {
    ...
}



The following is the same, you don't need the second, inverted condition:

if (str.charAt(i) != ' ') {
    ...
} else {
    ...
}

You might want to use a more another check for spaces. Currently it handles tabs (\t) as normal characters and

"hi\tthere\tcow"


will be

"woc\tereht\tih"



Here is a slightly improved version with StringBuilders:

public static String reverseWord(String str) {
    int len = str.length();
    StringBuilder result = new StringBuilder();
    StringBuilder currentWord = new StringBuilder();
    for (int i = 0; i &lt; len; i++) {
        if (str.charAt(i) != ' ') {
            currentWord.insert(0, str.charAt(i));
        } else {
            result.append(currentWord).append(" ");
            currentWord.setLength(0);
        }
    }
    result.append(currentWord);
    return result.toString();
}