Field watchpoints are a very useful type of breakpoint that allow you to pause a debugging session whenever the target field is just about to be modified or accessed anywhere in your program. You will be able to then view the field's current value and the value it is about to be if it to be modified.
You set watchpoints for both static and non-static fields of any visibility (private, public, etc) as long as the field is not a constant (ie. is not both static and final).
When you create a field watchpoint you will always be watching field modifications. You also have the option to also watch field accesses (a modification is not regarded as a field access). The debug session will be paused at the section of code that is doing the modifying or accessing.
Not all VMs support field watchpoints (for instance the HotSpot engine). You can tell that field watchpoints are not support if they appear disabled in the Breakpoints dialog (View | Breakpoints) when you start a debugging session.