Synchronization only comes in play when you have a multi-threaded program. Think of it this way:

Thread A and Thread B both have access to a ArrayList C. What happens if A tries to add something...