Declaring a primitive data type is simple. Declaring a variable does not give it an initial value. First you state the type, then the variable name.
Assignment is to change the value of a variable. If you assign 2 to the int variable anInteger, you changed it's value to 2, you do not state the data type if you are assigning. To assign something you say the variable's name, then equals, the new value.
name = value;
anInteger = 2;
Initializing a variable is when you declare and assign at the same time. To initialize a variable you state the data type, the variable name, equals and then the value.
type name = value;
int anInteger = 2;
The scope of a variable refers to the locations in the program where a variable can be accessed. The scope for primitive data types is always within the conditional which contains it and any sub-conditional in that loop.