I've been developping a 3D app for some time and I remember at some point I started to need to pass data arround in unrelated areas of the program, where it wouldn't make much sense to pass them through update functions (stuff like screen resolution or cursor position). My solution at the time was to implement a "Ressources" singleton class that would hold and manage all that data. But now looking back at my code I don't intuitively see the difference between a singleton and a static class. I'm tempted to switch to static implementation, since it would mean I wouldn't have to fetch the singleton eveytime I want to use it, but I'm curious what more experienced programmers have to say about this.
I did look a bit arround for other's opinions, but what's been surfacing is that the very minute differences used in very corner-cases implementations are emphasized everywhere and overall I can't find a general preference for one or the other. Add to that that Java coders tend to hate non-OOP programming and they tend to just say: global variables are bad, period. So I'm left a bit confused here.
Is there really an advantage to use one or the other in my general case, or is it just functionaly the same? Are there performance benefits? Are there code structure benefits?
Please enlighten me :)
P.S. I know this is a question better answered on StackOverflow, but they just keep banning me, so I came here instead.