In my understanding (correct me if I am wrong please), if someone make only 1 transaction and send 1 bitcoin to your wallet, it will generate one UTXO (unspent transaction output) that can be spent with one of your private key.
yes, this is correct.
If you want to transfer 0.1 bitcoin associated with that private key to another address, this would result in a Change address for the remaining 0.9 btc, otherwise the difference between the inputs and the outputs would return to the miners as a fee. Is it correct?
Yes, that is if you do not specify an output for the change address -- there is no field in a bitcoin transaction for the fees; they are implied as the difference between the inputs and outputs.
However you can use the "from" address as the change address.
So if you're spending 0.1 BTC of a UTXO of 1BTC, you can have two outputs: output 1 is the destination address 1Destination and you can use the same "from" address to receive the change (1FromAddress)
But why I don't see a lot of change addresses when I make my transactions? I saw this change address only once, when I made a conversion using shapeshift. Usually if I have 1 btc and I make a transfer of 0.1 btc to another wallet, this operation does not create a change address.
What am I missing?
I don't understand what you mean.
Perhaps you're using just one address and the change address is being sent back to the original address (terrible for privacy)
Can you post a sample TX ID?
For example,
this transaction the change goes back to the "from" address.