I don't recall ever seeing any notion of reference variable types in Java bytecode. I know a bit about type erasure, but this term seems tightly linked to generics, whereas my question is about object reference variables in general. 
Do Java object reference variable types survive compilation ? Or do variable types merely serve the role of helping the compiler help the developer check that the code makes sense ?
If reference variable types survive compilation, where do they appear in bytecode ?

EDIT:
Allow me thank you here for all your valuable contributions. In order to narrow in a bit more on what I had in mind, I would like to add an example :

```
Object o = "foo";

```

In bytecode, will the variable o and its type (Object) be represented anywhere AND be read at runtime ?