Object references in programming are variables that store the memory address of an object rather than the object itself, allowing multiple variables to point to the same data. This enables efficient memory usage and manipulation of complex data structures, but requires careful management to avoid issues like memory leaks and unintended data modification.