Java - kiedy chcesz pisać aplikacje na samego androida
Xamarin (C#) - kiedy chcesz pisać aplikacje na Androida, WinPhone i IOS
Zaletą Xamarina jest to, że nie trzeba pisać tej samej logiki aplikacji kilka razy, w kilku językach, kiedy chcemy ją wydać na kilka platform.
Jego wadą jest duży rozmiar. Aplikacja która w Javie będzie ważyć 20MB, w Xamarinie będzie ważyć już ok 40MB.
(Mniej pracy kosztem większej wagi, w przypadku jednej platformy troche szkoda się męczyć, no chyba że perfekcyjnie znasz C#, a chcesz napisać tylko jedną prostą aplikacje, wtedy nie ma sensu uczenie się Javy)
Co do samych języków, nie ma większego znaczenia co wybierzesz, bo dość łatwo się przesiąść (ogólnie między językami obiektowymi bardzo łatwo można się przenosić)