Only partially. It's a combined measure of your knowledge and participation on the site.
> As a registered user, your reputation on the site is a part of your identity on the site. It reflects, to an extent, your familiarity with the site, the amount of subject matter expertise you have and the level of respect your peers have for you.
In addition to that, it is possible to write well written, but highly specialized answers that gain few upvotes, or relatively simple answers that accrue large number of upvotes simply because it is a common question. In this sense, reputation is a measure of how 'valuable' your contribution to the site is, which is often, but not always aligned with how knowledgeable you are. There are other outliers too, like answers that get featured on Proggit or HN, but those are far less common.
(It also used to be possible to gain large amount of reputation by simply being the first to reply to a poll with a popular answer, but those type of questions are no longer acceptable).
Nope. On SO at least there are lots of folks who amassed hundreds of thousands of reputation merely for being on the site early enough to be able to answer simple and common questions like "how I can remove an array member" and the like.
Sure there are a few questions with highly voted up answers because they are widely useful, but there is certainly the minority of high rep earners. Even the new people who are gaining lots of rep are doing it by answering hundreds of questions.
...and in a lot of cases, account age. I haven't participated in Stack Overflow for years, but there's still a steady trickle of points accumulating from my mediocre questions and answers of old.