Opacity affects the transparency of the object.
Display affects how the object is rendered in the web browser.
For example:
This text is here!
<div style="opacity:0">
This text will be invisible
</div>
this text will be here
this (to the user looking at it) will make it seem like "this text is here!" and "this text will be here" have a line break between them.
and this example:
This text is here!
<div style="display:none">
This text will be invisible
</div>
this text will be here
this (to the user) will make it seem like the two visible lines are directly on top of each other with no space in between.
In JQuery, a fade in or fade out will change the Display from "none" to "block" and visa versa for the other, respectively. It will also animate the opacity from 0 to 1 smoothly within the allotted time, again visa versa for the other.