Is there any benefit to declaring the objects as static?
Not really, no.
Certainly, there is no performance benefit. This is because statics are actually stored in (hidden) static frame objects that live in the heap. Ultimately, the JIT will generate native code for fetching a static variable that is no faster than an object variable fetch.
You could argue that it is more convenient to use a static to share some data structure "globally" within an application. But that convenience has some significant disadvantages. The biggest ones are that statics make testing harder, and they make code reuse harder.
However, you shouldn't confuse the general case with the specific case where the static holds or refers to an immutable value or data structure; e.g. like a String constant or a constant mapping. These can be justified on both design and practical grounds; e.g.
public static final String THE_ANSWER = "Forty two";
private static final Map<String, Integer> SCORES;
static {
Map<String, Integer> map = new HashMap<>();
tmp.put("perfect", 100);
tmp.put("average", 50);
tmp.put("fail", 20);
SCORE = Collections.unmodifiableMap(map);
}
This is fine ... so long as there is no possibility that different (current or future) use-cases require different values / mappings / whatever. If that is a possibility, then static
could be harmful.