Here is the difference at a glance:
Instance fields and methods belong to a specific object. Each object gets its own copy. You access them through an object reference: myCar.speed.
Static fields and methods belong to the class. One copy exists regardless of how many objects you create. You access them through the class name: Car.count.
A static method cannot use this or access instance fields because there is no object attached to the call. An instance method can access both instance and static members.
If you try to access an instance field from a static method, the compiler rejects it with a "non-static variable cannot be referenced from a static context" error.