I'm making a guitar, and i found that the easiest way was to make the body, the neck and other few details separatly. But i don't know much about how that affects the render and all that, i think that i have to join them, but the problem is. If i ctrl+j and join them, would i need to join the two meshes by joining vertices or i can leave them like that and is all fine?. And example, here is the headstock of my guitar, i made the cylinders as an independent mesh and i find it difficult to join vertices. How that would affect the end result?
You don't have to join the objects if you don't want.
If you need them to move together you could just parent them.
If you decide to join them, you don't necessarily have to connect the different meshes to have common vertices.
Think of it this way: In real life those are different pieces made of different materials and they are assembled together. The tuning pegs are plastic or metal attached to the wood on the guitar head. In reality they share no vertices, edges or faces.