>>789
byte[] binary = "亜".getBytes("Shift_JIS");
int ch = ((binary[0] & 0xff) << 8) | (binary[0] & 0xff);
if (0x889E <= ch && ch <= 0x9872) {
}

>>791
JITだろうが普通にコピーしたら遅いだろ。
ループでぐるぐるまわしてたら毎回範囲チェックせにゃならん。
中で何やってるかまで見て最適化なんて厳しいだろうし。