If you're not familiar with the AND, OR or exclusive OR and NOT, this table will help you out. So given the two values of x and y, not x is the opposite of x, so true, true becomes false and false here, becomes a true. Now all the others are binary operators, so we need the y column as well. So x and y requires that they both be true. If either one is false, the result is false, whereas an OR only one of them needs to be true For the result to be true, in order to be false, they both must be false. Now exclusive OR is an interesting one, if one of them is true well, then it's true. If neither of them is true, it's false but the difference between exclusive OR and a regular OR is that if they're both true instead of being true. Exclusive OR says they're false its exclusive OR that's why both of them being true makes the result false. Now in general, we will use double ampersand and double pipe or symbol. And it refers to those as short-circuiting, because you're saying and well, if the left-hand side of an end is false. It doesn't matter what the right hand side is. So Java will not evaluate the right-hand side having already determined that the left-hand side is false. Likewise if the left hand side of an OR is true, What does it matter what the right hand side is the left hand side is true therefore it's true. So just like the double Ampersand will not evaluate the right hand side if the left hand side is false and it short circuits. The double OR will not evaluate the right-hand side if the left-hand side is true. If the left-hand side is true, doesn't matter what the right hand side is. In the end if the left hand side is false, it doesn't matter what the right side is. The single ampersand and pipe do not short circuit, and in general, we don't use them, for logical purposes, we use the short circuiting operators. Pretty much exclusively. Now when applied to numbers, these are Bitwise comparisons. Right? And, I mean, we said. Well, that they could be logical or they could be. Binary Well, these bitwise comparisons that's when it's their integer type values right bytes shorts in some Long's, it will be a bit wise comparison. Which means each individual bit will be set according to whether or not the seven bits in a byte for example if they're both true if the six bit in two bytes are they true? Right. So that's what we're talking about each bit. You line them up in columns and perform the operation, and each column will have its own result individually. So here's some examples. X is seven y is nine, is x, less than eight? Well, yes now this is an N so this is true. And that's an N so we got to keep on going. Right but they both have to be true to execute the the statement inside these braces. So x is less than seven, is less than eight, nine and is less than 10. Both statements are true. And therefore, we would execute whatever is inside the braces. Now here is a different notion. The result, this is a variable, a Boolean variable and we're assigning it to the result of this Boolean expression. So is x less than 8? Well, yes, 7 is less than 8 and this is an or so true or well, we don't care. So it will never even check to see if Y is less than three, because this is an or, and the left-hand side is true. Seven is less than eight and therefore B is set to true. Operator precedence and these are blocked into groups of equal precedence. So we have increment and decrement Pre and post. The associativity of these is from right to left. We have the unary pluses all of these considered at the same level of priority right to left Association. Then comes the multiply family. Left to right dissociation adds and subtracts the bitwise shifting. Comparisons and type identification. Look, we try to avoid type identification as much as possible, as we'll learn about when we get into object oriented programming with Java. And we understand what polymorphism is, and inheritance and interfaces. But there are some things we just can't avoid and occasionally when that happens. We may need to make sure that we are literally doing if you will, an apples to apples comparison. So we may be in a position where we're forced to take an object and make sure we know exactly what type it is. And that is what instance of will allow us to do. Next comes the check for equality or inequality, followed by the bitwise operators. The logical operators, the ternary operator, which we will cover momentarily. And then you'll notice now that we've got a whole bunch of the lowest priority. We have a whole bunch of assignment operators. You're familiar with the equals, you may not be familiar with the others. So we're going to take a quick look. At those these plus equals minus equals multiple equals. So the way in which you would understand them the basic idea of these operators,is that if X, op = y. Right? That's a shorthand. It is a shorthand that is equivalent to x =x op y. So for example, x + = 5 is saying x =x + 5. Here's a live example. I is set equal to 10, j is set equal to 12, i + = j and the result that we see live is 22.