If int is enough for a field, and if I use long for some reason, would that cost me more memory?
If int is enough for a field, and if I use long for some
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
In Java, yes, a long is 8 bytes wide and an integer is 4 bytes wide. This Java tutorial goes over the primitive data types. If you multiply the number of allocations by a certain amount (say, if you’re allocating five million of these variables), the difference becomes more than negligible. For the average usage, however, it doesn’t matter as much.
(You’re already using Java, memory’s kind of all over the place anyway.)
In native languages, there’s a performance consideration; a 32-bit value can be held in a single register on a 32-bit architecture but not a 64-bit value; on 64-bit architectures, obviously, it can. I’m not sure what kind of optimization Java does on its native integers, but this might be true in its runtime as well. There’s alignment issues to worry about, as well — you see this more with using shorts and bytes, though.
Best practice would be to use the type you need. If the value will never be over 2^31, don’t use a long.