Android 4.1 was jellybean. Also 4.2 and 4.3. And then, 4.4 emerged - as KitKat. After that, it bounced right up to 5.0 Lollipop! How does this 'versioning' system work? What makes a 'new version with the same name' like 4.1 and 4.2, and what makes a 'new version with a new name' like KitKat?
The names and numbers are decided by Google's marketing department. It's got nothing to do with the developers, who don't even know the name or number until shortly before it's announced: they use an internal name to talk about the release while they're working on it.
The numbers aren't real "major" and "minor" numbers like you get on most software. You'd expect minor releases to be compatible, but in fact they often introduce new features (for example, Bluetooth LE support was introduced in 4.3). Google supplies security updates on a monthly schedule, much more frequently than the marketing version changes.
Application compatibility is dealt with in an entirely different way: every time the Android API is changed, the API level changes. Each Android version (whether it's a new name or not; whether it's a new "major version" or not) has an API level. The Android developer site has some information on API level numbers and how they relate to the marketing names/numbers. It's not intended for end-users but it's quite readable.
The first digit denotes a major, milestone release. Typically this indicates new features or rewrites to filesystems, system applications, security/performance etc.
Minor releases, the digit behind the period, are patches to the major versions where things like bugfixes and security loopholes are fixed.
The Android versioning page on wikipedia has the full monty on the changes between each iteration.