Как научиться определять, что есть операнд, а что литерал и во всех ли языках они одинаковы?
Как я понял из гугла и других ответов, литерал - это буквальное представление объекта, то есть литерал в первую очередь является объектом и хранится в памяти. А операнд это то, к чему применяется операция.
И я для себя представляю что литералы это какая-то часть, например если написать String [] array = {1,2,3};
то здесь String - тип, [] - литерал объекта массив, array - имя переменной состоящий из символов ascii, = - оператор присваивания, {} - два литерала объекта, 1, 2, 3 - операнд и в то же время литерал числа.
А вот в этом примере:
array[1] - array уже является операндом и 1 тоже является операндом, а [] является операция.
А такие знаки как , . ""''\|{}; они как-то называются обобщенно?
А если взять такой пример class Person{ String name; int age}
То здесь class - ключевое слово, Person имя объекта, {String name; int age} - литерал объекта, name и age - имена переменных, String, int - тип, { } - литерал.
А если в коде существуют просто символы abcde которые вроде как и не строка, раз не обернуты в кавычки, или операторы < > - + = тогда как они представлены в среде разработки? Просто набор символов ascii? И хранятся ли они в памяти?
Letopisec, слишком глубоко копаешь то, что так глубоко копать не обязательно (а может и вовсе не стоит).
Как сказал DevMan: "прибегать к этому тогда, когда нужно в спеках"
Литерал - это явно записанное в коде значение переменной, т.е.
x = 1
obj = { a: "1"}
1 и { a: "1"} - это литералы.
Операнд - это то, к чему применяется операция, т.е. y = x + 1 + - это операция сложения, x и 1 - это операнды, причём 1 - это одновременно ещё и литерал.