I would say it's the luxury tax, the robust cap floor, and the various exceptions whereby re-signing your own guys sort of "doesn't count" or counts for less.
The NBA cap system is ridiculously convoluted and you could write volumes on it, but suffice to say not every player counts exactly the same dollar for dollar like in the NHL. So for example, when we extended Zibanejad, since he played for the Rangers and we were re-signing him, a large part of his new AAV (up to 175% of his previous salary) wouldn't count towards the cap.
My favorite thing is the floor. The cap floor is 90% of the cap ceiling. If you buy a basketball team, the league literally forces you to spend money on the team. It removes the zombie franchises that go through their whole existence being shit like in MLB, and it creates a lot of rebuilding teams that are just looking to take your bad contracts. When the Celtics made their big moves this summer, they sent salary they didn't want all over the league to make space. It's like the Arizona meme but a dozen teams are Arizona.