I use byte in the context of Input/OutputStreams, which operate on bytes. Ideally this will be wrapped in something that determines the encoding -- preferably one maintained by somebody other than me -- but I'm aware that serialization to disk or network ends up being a stream of bytes.
I've occasionally used short in similar contexts. I wrote a JVM library, and the JVM specification uses a bunch of short values -- though ironically, a lot of them are really unsigned values, so a short is inappropriate.
But for the most part, use of short or byte to save memory is very rare for me. I write Java knowing that it's pretty flagrant with machine cycles and memory, and also knowing that computers have lots of memory and users care more about the difference between 10 vs 20 days to write a feature than about the difference between 10 vs 20 msec to reply to a click. I write Java because it lets me work faster, rather than for economy.