When you need performance on data that don't need to be up to date to the very second, materialized views are better, but your data will be older than in a standard view.
While creating Materialized view
Oracle creates two objects, a table where the results are actually materialized and a materialized view that has all the metadata (the query, the attributes, etc.).
But while creating View
Oracle creates only one object, which has all the metadata(the query, the attributes, etc.)