The first example creates a new constant QueryExpression in order to change the name from Jerry to Phil. This also requires a new instance of a comparison Query to use the new QueryExpression. The second example increases efficiency by creating just one Query object, and changing the value of the desired name in an Object array that is passed to the executeQuery method. This also lets you cache a Query in your internal application (above the query cache layer), and pass in varying parameter values at execution time.