Truthfully, it doesn't matter. Lots companies use one another, some or even all (depending on the size of the organization). You'll find work no matter which one you pick.
if I plan to become a freelance web
developer is it worth learning C# or
Java
Sure, it's always good to know at least a little about it, especially if you are going to be a contractor. You never know when something might come up.
The real truth is that you'll get work eventually based on who you are and not what languages you know (although that can help). You'll start to get a reputation and people will seek that out.
Heck you want to talk about learning obsolete languages. Sometimes those are the people who get paid the most, because no one else knows them, and will never be out of work in the foreseeable future. I'm not saying this is true all the time, but I know several people who are experts in "legacy technologies" and make a killing because the several consulting firms (not saying all) hire people just out of college who think knowing C means they got one on there last term paper in college. For the record I don't mean that C is by any means obsolete. I just needed something to make a joke on :)