They basically they didn't test the same thing,
They tested concatenating 1 byte, 10 byte and 1000 byte strings in memory and disk.
In java each time you append a string you allocate an new piece of memory and copy the old string into it. When you append do it on disk it will allocate the data in blocks. The the proper way of doing this type of operation in to use a StringBuffer or StringBuilder.
The string concatenation method is order n^2 where with pre -allocation and just appending it is order n. The whole thing about order is k*n^2 will always get slower than j*n, for a big enough value of n, no matter how much bigger j is than k.
So what they are saying is don't do really stupid stuff in memory or it could be slower than doing not so stupid stuff on disk. No shit.
Oh yes then they wrote the string out to disk in the memory test as well, effectively doing the same operation as disk only method. Just to be on the safe side so your operation in memory must be slower.
Either these "researchers" are stupid or just want to make the headlines.