The short answer: out of the box, no — Java and Bedrock are separate ecosystems. With one free tool on the right kind of server, yes — everyone joins the same world from any device. Here's how Minecraft crossplay actually works.
The two Minecrafts, in one paragraph
Bedrock Edition (phones, tablets, consoles, Windows from the Microsoft Store) crossplays with itself natively — a Switch player and an iPhone player join each other via the friends list with zero setup. Java Edition(the original PC version, where mods and most community servers live) only speaks to Java. The editions use different network protocols, which is why your Xbox friend can't see your Java world.
GeyserMC: the bridge between them
GeyserMCis an open-source translator that runs on a Java server and speaks Bedrock's protocol on a second port. When a Bedrock player connects, Geyser converts every packet both ways in real time — to the server, they look like a Java player. Its companion Floodgate lets those players sign in with their Microsoft/Xbox account instead of needing a Java license.
The practical meaning: one server, one address, and the friend group stops caring who owns which edition.
Setting it up yourself
On a self-hosted Paper server: download the Geyser and Floodgate plugins from GeyserMC, drop them in plugins/ (see the plugins guide), restart, and forward UDP 19132 in addition to TCP 25565 — Bedrock connects over UDP, so the usual port forwarding work doubles.
Or the one-click version
On Campfire, crossplay is a checkbox: tick "Enable crossplay (Java + Bedrock)" when creating a Paper, Fabric or NeoForge server and Geyser + Floodgate install and wire themselves — Java joins over TCP, Bedrock over UDP, same host, same port, no config files. Details on the crossplay hosting page.
What to expect in practice
Geyser translates almost everything; survival with friends is seamless. The honest caveats: a few Java-specific interactions (precise redstone quirks, custom item models from some mods) behave slightly differently for Bedrock players, and consoles need the BedrockTogether-app workaround to enter a custom address. Phones, tablets and PCs join directly.