Good software engineering practice is to declare any constants (with const) used within a class to be in the class to avoid any potential clashes with constants in other classes. The constants in this case are just numbers and not arrays or other more complicated data types.
While trying to reduce the memory footprint of my app I discovered that all const declared in a class take up memory in *every* instance of that class. It is reasonable that the const data is stored in memory as it may be more than a simple data type (or maybe the VM instruction set doesn't support immediate constants) but should only need to be stored once.
Simply moving the 4 const in a class to be outside of the class saved me about 1KB of memory in my app as this class is heavily instantiated.
On a slightly more academic note, if a class const is an array the array contents can still be changed (as documented in the SDK) but as each instance gets its own const array changes made to the const array contents will be private to that instance making the change and not shared across all instances. It is not a programming style I would every use but I would have expected the changes to be shared given the scope of where the const is declared.
It looks like const just marks the variable as immutable but other than that it is treated as a regular variable and no special use made of its immutable nature in optimising the code.
Dave.