Saturday, 30 November 2013

Data-types in Java

Lets have a look at primitive datatypes in Java with their sizes and ranges.

S. No.Data-typeSizeRange
1byte8-bit-128 to 127
2short16-bit-32,768 to 32,767
3integer32-bit-2147483648 to 2147483647
4long64-bit-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
5float32-bit- Floating point integer -
6double64-bit- Floating point integer -
Apart from these primitive data types, java.lang.String provides a data-type String.

Now lets look at the examples to learn how to use these in our programs. We'll be initializing these data-types and printing them to see how they look like...




Each data-type has its benefits and limitations. A good programmer exploits the benefits and avoids the limitation. Let us take the following case...

Assume we have a huge array of 10000000000 indices. And the value that we wish to store against each index is between 0 to 5. (Like in case of movie ratings!). So here, instead of using integer we can use byte to save space because we are certain that the value will never be greater than 5.

But at times we might tend to go over-board with this and encounter errors in our programs! Like if we wish to store radius of curvature of a rocket in flight, we would want to use a data-type that can hold huge and precise values rather than something like byte or short!

So its all about striking a good balance :)
| Advertisement |

Thursday, 14 November 2013

Random integers between two values (a range) in java

Refer to : http://mycodedock.blogspot.in/2013/11/random-integers-in-java.html

Before we go to it, look at the code below. It generates 100 random numbers between 0 and 50 using randomObject.nextInt(int x) function.



Note that the the range of numbers generated is inclusive of 0 but exclusive of 50 (upper limit).

Now, let us modify this program to generate random numbers between two values. What if we want to generate numbers between two ranges? Let us say range is from 100 to 1000.

We will use something like x = MINVAL + RandomObj.nextInt(MAXVAL - MINVAL)

Analyze this code:



Note that all numbers are between 100(inclusive) and 1000(exclusive). This is pretty much what we wished to achieve.

| Advertisement |