go to previous page   go to home page   go to next page

public static String reverse( String data )
{
  String rev = new String();

  for ( int j=data.length()-1; j >= 0; j-- )
    rev += data.charAt(j);

  return rev;
}

How many objects does reverse() construct in this example?

Answer:

The length of the input String, plus one for the first empty string. For the example program, this would be 6 objects in total.


One New Object per Character

Each time the following statement executes, a new String is created:

rev += data.charAt(j);

Before the statement executes, rev refers to a String. The concatenation operator + creates a new String, the same as the previous one but with one more character on the end. The new String reference is then assigned to rev. The old String is now garbage.

This is fine for programs that do a moderate amount of character manipulation. But such abundant construction of objects will slow down a program that does a great deal of character manipulation. Examples of such programs include word processors, compilers, assemblers, data base management systems, and many others.


QUESTION 5:

Could an array of char be used to speed up this program?


go to previous page   go to home page   go to next page