Когато говорим за приоритет в Java, операторът е на първо място. Има определени правила, дефинирани в Java за определяне на реда, в който се оценяват операторите в израза. Приоритет на оператора е концепция за определяне на групата термини в израз. Приоритетът на оператора е отговорен за оценката на изразите. в Java , скоби() и Долен индекс на масива[] имат най-висок приоритет в Java. Например, събирането и изваждането имат по-висок приоритет от операторите за ляво и дясно преместване.
По-долу е дефинирана таблица, в която операторът с най-нисък приоритет се показва в горната й част.
Предимство | Оператор | Тип | Асоциативност |
---|---|---|---|
1) | = += -= *= /= %= | Възлагане Задание за добавяне Задаване с изваждане Задача за умножение Задаване на разделяне Задаване на модул | От дясно на ляво |
2) | ? : | Троичен условен | От дясно на ляво |
3) | || | Логическо ИЛИ | Отляво надясно |
4) | && | Логично И | Отляво надясно |
5) | | | Побитово включващо ИЛИ | Отляво надясно |
6) | ^ | Побитово изключително ИЛИ | Отляво надясно |
7) | и | Побитово И | Отляво надясно |
8) | != == | Релационният не е равен на Релационно е равно на | Отляво надясно |
9) | < <= > >= instanceof=> | Релационно по-малко от Релационно по-малко или равно Релационно по-голямо от Релационно по-голямо или равно Сравнение на типове (само обекти) | Отляво надясно |
10) | >> << >>> | Побитово изместване надясно със знаково разширение Побитово изместване наляво Побитово изместване надясно с нулево разширение | Отляво надясно |
единадесет) | - + | Изваждане Допълнение | Отляво надясно |
12) | * / % | Умножение дивизия Модул | Отляво надясно |
13) | - + ~ ! ( Тип) | Унарен минус Унарен плюс Унарно побитово допълнение Унарно логическо отрицание Унарен тип | От дясно на ляво |
14) | ++ -- | Унарен постинкремент Унарен постдекремент | От дясно на ляво |
петнадесет) | · () [] | Оператор точка Скоби Долен индекс на масив | Отляво надясно |
Ред на предимство
Когато два оператора споделят един операнд, операторът с най-висок приоритет е първи. Например x + y * z се третира като x + (y * z), докато x * y + z се третира като (x * y) + z, тъй като операторът * има най-висок приоритет в сравнение с оператора +.
как да надстроя java
Асоциативност
Асоциативността е концепция, свързана с операторите, прилагани, когато два оператора с еднакъв приоритет влизат в израз. Концепцията за асоциативност е много полезна за излизане от тази ситуация. Да предположим, че имаме израз a + b - c (операторите + и - имат еднакъв приоритет) и този израз ще се третира като (a + (b - c)) защото тези оператори са асоциативни от дясно на ляво. От друга страна, a+++--b+c++ ще се третира като ((a++)+((--b)+(c++))) защото унарните оператори за пост-инкремент и декремент са асоциативни от дясно към ляво.
По-долу е дефиниран пример, за да разберете как един израз се оценява с помощта на приоритетен ред и асоциативност?
Израз: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3
Решение:
1) В горния израз операторът с най-висок приоритет е () . И така, скобите са първи и първо изчисляват.
x = 4 / 2 + 8 * 4 - 7 % 3
2) Сега, /, * и % операторите имат същия приоритет и най-висок от + и - Тук използваме концепцията за асоциативност, за да ги разрешим. Асоциациите на тези оператори са отляво надясно. Така, / операторът отива първо и след това * и % едновременно.
numpy сумиране
x = 2 + 8 * 4 - 7 % 3
х = 2 + 32 - 7 % 3
х = 2 + 32 - 1
3) Сега, + и - и двата оператора имат еднакъв приоритет и асоциативността на тези оператори най-отдясно. Така, + операторът ще отиде първи, а след това - ще отида.
х = 34 - 1
х = 33
хибернация диалект
HighestPrecedence.java
//import classes import java.util.*; //creating HighestPrecedence class to evaluate the expression public class HighestPrecedence { //main() method starts public static void main(String[] args) { //initialize variables with default values int x = 2; int y = 5; int z = 12; //calculating exp1, exp2, and exp3 int exp1 = x +(z/x+(z%y)*(z-x)^2); int exp2 = z/x+y*x-(y+x)%z; int exp3 = 4/2+8*4-(5+2)%3; //printing the result System.out.println(exp1); System.out.println(exp2); System.out.println(exp3); } }
Изход