<< Chapter < Page Chapter >> Page >

Back to Question 10

Answer 9

B. Runtime Error

Explanation 9

A setup

If you feel like you've been had, chances are you have been had. The purpose for Question 8 was to set you up for this question.

Division by zero for integer types

This program deals with the process of dividing by zero for int types. The code in the following fragment divides the int value 1 by the int value 0.

void doIt(){ System.out.println(1/0);}//end doIt()

Not the same as double divide by zero

However, unlike with type double , this process doesn't return a very large value and continue running. Rather, for type int , attempting to divide by zero will result in a runtime error of type ArithmeticException that looks something like the following under JDK 1.3:

java.lang.ArithmeticException: / by zero at Worker.doIt(Ap149.java:20)at Ap149.main(Ap149.java:14)

An exercise for the student

I won't attempt to explain the difference in behavior for essentially the same problem between type int and type double . As the old saying goes, I'll leave that as an exercise for the student.

Back to Question 9

Answer 8

C. Infinity

Explanation 8

A double divide by zero operation

This program deals with the process of dividing by zero for floating values of type double .

The following code fragment attempts to divide the double value 1.0 by the double value 0.

void doIt(){ System.out.println(1.0/0);}//end doIt()

The program runs successfully, producing the output Infinity .

What is Infinity?

Suffice it to say that Infinity is a very large number.

(Any value divided by zero is a very large number.)

At this point, I'm not going to explain it further. If you are interested in learning what you can do with Infinity , see the language specifications.

Back to Question 8

Answer 7

B. Runtime Error

Explanation 7

This program illustrates an IndexOutOfBounds exception.

Instantiate and populate an ArrayList object

By now, you will be familiar with the kind of container object that you get when you instantiate the ArrayList class.

The code in the following fragment instantiates such a container, having aninitial capacity of one element.

Then it adds two elements to the container. Each element is a reference to an object of the class String .

void doIt(){ ArrayList ref = null;ref = new ArrayList(1); ref.add("ABC ");ref.add("DEF ");

Increase capacity automatically

Because two elements were successfully added to a container having an initial capacity of only one element, the container was forced to increase its capacityautomatically.

Following execution of the code in the above fragment, String object references were stored at index locations 0 and 1 in the ArrayList object.

Get reference at index location 2

The next fragment attempts to use the get method to fetch an element from the container at index value 2.

Index values in an ArrayList object begin with zero. Therefore, since only two elements were added to the container in the earlierfragment, there is no element at index value 2.

System.out.println( (String)ref.get(0) +(String)ref.get(1) + (String)ref.get(2));

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask