First off, there are syntax errors in the regex. The "&&" in the pattern should not be there. Likewise, the single quotes and parentheses should not be there.
The syntax corrections above are required, but not sufficient. \uD800 is a "magic" character. It combines with the next character to form a single 4-byte Unicode code point: https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates
The regex is interpreted using Unicode code points, not Java characters. \uD800\uDC00 is a single Unicode code point (0x10000), so the regex doesn't match. I think you probably want to exclude all Unicode code points outside the 16-bit range \u0000 - \uFFFF. So this is probably what you want:
System.out.println("\uD800\uDC00".replaceAll("[^\u0000-\uFFFF]", "x"));