<apex:inputText/> : It always renders a normal text field. It can be bound to an SObject field or a regular variable of any data type that can be coerced into text, including numbers. It can be bound to an SObject field or a regular variable of any data type that can be coerced into text, including numbers.
<apex:inputField/>: It can’t be used on non-SObject variables and automatically renders the correct control based on the field’s definition. If the user cannot edit that field because of FLS, then the inputfield instead renders as a read-only outputField.