Не совсем корректный подход, как мне кажется.
Если я правильно понял контекст вопроса, то Вы — студент, заканчивающий обучение, не имеющий опыта коммерческого программирования, выбираете, что изучать для дальнейшего трудоустройства.
Конторы, которые будут Вас нанимать, скорее всего, иллюзий питать не будут. Вы — джуниор, спрос — соответствующий. Глубокое знание конкретного языка не потребуется, а если будет написано в резюме — не поверят. Зато должны спросить, чем отличается List от Vector, что в каких случаях быстрее работает, Какая хеш-функция Вам кажется хорошей, как работает Map, что такое функция сложности, чем отличается, на Ваш взгляд, хороший код от плохого и тому подобные вещи.
В таком случае, Вам нет смысла изучать «Swing, JSP, JSF, AXIS, JDBC» — максимум, Вам понадобится понимание того, что это такое и зачем используется. Общие идеи и концепции.
Есть и другая проблема: Обычно, требуется «опыт от года». Вопрос, где взять первый год — за кадром. Так что сначала надо устроиться и начать набирать опыт. В процессе Вы сами поймете, что Вам ближе.
Если исходить из вышеуказанной логики, то изучать Вам надо и то, и другое — для расширения кругозора. Глубокого понимания Вы не сможете достичь тупо по причине недостатка опыта в реальных ситуациях, зато Вы сможете прособеседоваться на более широкий набор должностей(и ява, и шарп) — быстрее начнете набирать реальный опыт.
Ну и чтобы ответить хоть на что-то из того, что спрашивалось. :)
Ява — в большинстве своем back-end некоей «бизнес-логики» в самом широком смысле. Начиная от движка интернет-магазина и заканчивая сервером ММОG.
Шарп — Либо UI, под винду, back-end к ISS, если уж случилась такая неприятность, что сайт работает на нем.
PS. VS — эпическое убожество, средой разработки ее можно назвать с натяжкой, а использовать можно только по причине того, что на C++ писать тупо не на чем больше(ну мы же не будем всерьез рассматривать Eclipse, правда?)