"I've been programming for 3 years now, doing Java, Android, iOS, HTML & CSS, .NET, JavaScript and libraries" so 3 years you only learnt stuff but you never bothered applying it, you never worked on a project, you didn't produce a single thing. In the eyes of an employer that translates into "I haven't done anything at all but this is all I can write in my CV". You have better chances of getting a job if you tell them you hack facebook passwords...
If you actually know all that you said you should have no problem renting a server and a domain, coding a website using JSP with a java backend and creating client apps for android and iOS. Give it a nice name and put it as a web app project in your CV and you will have 100% hire rate. If you can't do this, then you are right to feel that you don't know shit, hope for their mercy and maybe next time you will apply for a job/internship you will be better prepared.
PS: working on projects that use frameworks are very much appreciated in a CV, Spring and Hibernate experience will get you any java developer job. Don't forget these don't have to be large commercial projects, they don't have to be official, they don't even have to involve a team, they just have to exist, even if it's a simple 100 line program it's better than listing your programming skills.