Batch Apex is stateless by default. That means for each execution of your
execute method, you receive a fresh copy of your object. All fields of the class are initialized, static and instance. If your batch process needs information that is shared across transactions, one approach is to make the Batch Apex class itself stateful by implementing the
Stateful interface. This instructs Force.com to preserve the values of your static and instance variables between transactions.
To try a simple example of stateful Batch Apex, create a new Apex class with the code in Listing 9.4.
global class Listing9_4 implements Database.Batchable<SObject>, Database.Stateful ...