I have a simple test-component with no logic. I render this component. Why is the DoCheck hook called twice?
So far I understand, DoCheck is called for every change detection. But there is no change. I just render the component and DoCheck is already called two times. Also ngAfterContentChecked and ngAfterViewChecked.

The reason is already described on angular life cycle documentation https://angular.io/guide/lifecycle-hooks#docheck
Normally
Use this method to detect a change that Angular overlooked.Most of these initial checks are triggered by Angular's first rendering of unrelated data elsewhere on the page. Mere mousing into another triggers a call. Relatively few calls reveal actual changes to pertinent data. Clearly our implementation must be very lightweight or the user experience suffers.