What is the difference between creating a new object and dependency injection? Please explain in detail.
Of course both create objects. The difference is in who is responsible for the creation. Is it the class which needs its dependencies or a container like Spring for example, which wires the components dependencies. You configure the dependencies in a separate(typically XML) configuration file.
It is really a separation of concerns. The class says I need this, this and this component so I functionate properly. The class doesn't care how it gets its components. You plug in them into the class with a separate configuration file.
To give you an example lets consider having a shopping class which needs a payment module. You don't want to hardcode which payment module will be used. To achieve this you inverse the control. You can change the used payment module with a few keystrokes in the configuration file of the container. The power is that you aren't touching any Java code.