what is the difference between a link local address verses, one that is for private use.
Link-local addresses are allocated automatically when a computer has not been configured with a static IP-address and cannot find a DHCP server.
Private addresses are allocated administratively (that is, by a local network administrator, either statically, or automatically allocated at a single point by a suitably configured DHCP server).
Many routers are supplied pre-configured with DHCP service for a commonly used private address range such as 192.168.0.0/16. If a LAN does not have such a router present, the PCs will use link-local addresses (that is a zero-configuration peer-peer arrangement rather than a client-server arrangement as with DHCP)
In prior millenia, large blocks of public IP-addresses were allocated to ordinary businesses for internal use. A shortage of IPV4 addresses led to the discontinuation of this and to the development of NAT, and private ranges. link-local addresess are a development inspired by the increasing deployment of multi-computer LANs by people without any network training - who therefore need "zero-configuration" facilities built-in to their operating systems to make this possible for people lacking the knowledge previously assumed.
according to wikipedia, let me know if this is right.
link local ex = 169.254.0.1
private address space ex = 192.168.0.1
private address space ex = 10.0.0.1
private address space ex = 172.16.0.1
That information is correct in that those are examples of individual addresses in in the three IPV4 private address spaces 192.168.0.0/16, 10.0.0.0/8 and 172.16.0.0/12
Also why do we need a separate space for link local
So that the link-local addresses cannot possibly conflict with those allocated by a local but temporarily unavailable DHCP server.
and how are they handled by routers and gateways.
They are not routed. This is so that lots of private LANs can use the same addresses without any routing conflicts arising. Such LANs must use Network Address Translation (NAT) to hide their many private addresses behind one (or a few) public addresses.