we need to create a plugin for the \Magento\Checkout\Block\Checkout\LayoutProcessor::process method.
so for create the plugin first we should make an entry in di.xml.
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/...
Above code is for the Shipping address. For the billing address, we had to add a check depending on the checkout configuration in admin about where to display the billing address, on the payment method or payment page, as then the array keys are different.
So the shipping address fields will be shown like below in checkout.
Check detailed information on ...
You can only set 1 default billing address within magento but you can add additional addresses to get the customers address's you can do this by using Magento\Customer\Api\Data\CustomerInterfaceFactory and with implimenting the below code
$customer = $this->_customerRepository->getById($customerId);
$addresses = $customer->getAddresses(); // ...