How a UObject referenced by root set and how are Non-UObject types handled?

Hi everyone :

I was reading Introduction to C++ Programming in UE4.It says “What counts as a ‘reference’? Any UObject pointer stored in a UPROPERTY”

Does the “reference” mean referenced by the root set ? Or just referenced by the property’s parent and only the parent is referenced by the root set can the property be referenced by the root set?

This article only introduces how a Non-UObject add its UObject member a reference so the GC won’t delete this UObject.

But how is a Non-UObject member or a C++ build-in type(such as int,double…) member in an object(including UObject and Non-UObject) handled in GC?