The whole point of using the abstraction of virtual addresses (which is to say, giving every process the illusion that it has all the memory reserved for itself) is to free the application software from the concerns of managing the physical memory and isolate processes from each other.
The specifics involve a number of engineering tradeoffs, but this is facilitated through some kind of mapping that is maintained by the system software. This mapping is updated as processes start executing and terminate, and as the application code executes. For instance, malloc
establishes a page file as a backing store. Something like mmap
allows processes to explicitly map file bytes (loaded one page at a time). The applications use memory addresses in the virtual address space, which are translated by the operating system into physical addresses.

This diagram illustrates the address translation process that the system software would execute. The mapping of a virtual address to a physical address is first checked in the TLB (translation lookaside buffer), which is an associative cache of recently-used mappings. TLB misses, in turn, look for the mapping in the page table. If a mapping is found, it is stored in the TLB. A page table miss - either because there is no translation available, or because the existing one is invalid (a segmentation fault), or simply because the page is not in physical memory and has been swapped out to make room for other pages - triggers a page fault. In the latter case (swapping out), the page is read from the swap file/swap partition and written to both the page table and the TLB (a write through).

When the physical memory is full, the page replacement policy kicks in and decides which page to evict to make room for the incoming page. Most of the page replacement algorithms that you're likely to encounter (unless you go super deep into this stuff) are approximations of LRU (least recently used), which, as the name suggests, evicts the least recently used page.
The theoretical optimal replacement policy would be to evict the page that will be accessed farthest in the future, which, evidently from the phrasing, requires (for lack of better wording) a bit of auguring. As it happens, though, we're in luck - LRU happens to be a good approximation - asymptotically close, in fact, but I digress.
What do physical addresses look like? They're not really different from logical addresses.

Whether or not you have a valid translation only changes whether the physical page number is read from the TLB, the page table, or the swap partition/file. The addresses themselves are structured similarly - a (virtual page number + offset) maps to a (physical page number + offset), where the offset isn't translated but simply read from the virtual address.