Why is there no infinite loop when loading GameObjects with scripts in the scene?

Hey, I’m new to Unity and I’m trying to understand how Unity is loading objects into a scene. Here’s an example:
public class A : MonoBehaviour {
[SerializeField]
private B b;
}
public class B : MonoBehaviour {
[SerializeField]
private A a;
}

So now in the Unity editor, I create 2 empty objects (A and B), and assign the script A to A and B to B. How is Unity loading them so it doesn’t crash in an infinite loop, since one requires the other?