Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which one to use, int or Integer

I need to create a data transfer object, which I will use for storing the records retrieved from database. In this data transfer object, I need to declare a numeric field. For that which one is better - int or Integer

If I am defining the field as Integer, will there be any performance impact because of 'Integer' type if I am going to retrieve more than 2000 records from DB!?

Thanks in advance.

like image 343
Veera Avatar asked Jan 08 '09 09:01

Veera


People also ask

Is int faster than Integer?

Use int when possible, and use Integer when needed. Since int is a primitive, it will be faster.

Can you compare Integer and int?

In Java, int is a primitive data type while Integer is a Wrapper class. int, being a primitive data type has got less flexibility. We can only store the binary value of an integer in it. Since Integer is a wrapper class for int data type, it gives us more flexibility in storing, converting and manipulating an int data.

What is int Integer used for?

What Does Integer (INT) Mean? An integer, in the context of computer programming, is a data type used to represent real numbers that do not have fractional values.

What can I use instead of int?

You can use long, which will give you twice as many bits. If that's not big enough, you can move to BigInteger, which will give you as many as you want, however you won't be able to user operators (like div and mod) directly.


1 Answers

Integer is a better option, as it can handle null; for int, null would become 0, silently, if resultSet.getInt(..) is used. Otherwise, it might throw some exception, something like, "Unable to set null to a primitive property".

Performance is of little concern here.

  • if you choose int, you will end-up adding extra handling code; and that wouldn't benefit you much. Your code will not be clean and straight-forward, lot of boiler-plate code, and you wouldn't even gain performance.
  • let me make it clear, for databases, null is not same as zero. Sometimes you end-up entering 0, where null was intended. Imagine the case where user submitted a form, and doesn't supply any value for int. You will end up getting 0 by default. It makes sense, or does that really, when that field is not null in the database.
like image 83
Adeel Ansari Avatar answered Oct 17 '22 20:10

Adeel Ansari