Мне лично нравится "эксклюзивный" оператор, когда он имеет смысл в контексте булевых проверок из-за его краткости. Я предпочитаю писать
if (boolean1 ^ boolean2)
{
//do it
}
чем
if((boolean1 && !boolean2) || (boolean2 && !boolean1))
{
//do it
}
но я часто получаю запутанные взгляды (от других опытных разработчиков Java, а не только от новичков), а иногда и от комментариев о том, как его следует использовать только для побитовых операций. Мне любопытно, как другие практики используют вокруг оператора "^".