Can someone teach me Perlin Noise? for my 2d game?

Hello, I am making a 2d game like minicraft (2d) it is using 2d arrays to make the map, I want to make a nice random generation system but I have no idea how I have been told Perlin Noise is one of the best ways

Can somebody teach me this?
if you can add me on skype: tommohawkaction /// so i can easy share screens and source code with you
Thanks

Why dont you use google: https://www.google.com/search?sourceid=chrome-psyapi2&ion=1&espv=&ie=UTF-8&q=perlin%20noise%20java

Matheus has what looks like a good simplex noise implementation in his utils collection: https://github.com/matheus23/Utils

Roquen has a great tutorial post here on JGO.

SiVi is an open-source project of mine that uses Ken Perlin’s 3rd version of random noise (known as Simplex Noise). There is not a lot of explanation, but it does have examples of different outputs (including a topo map), and a hands-on interface where you can vary parameters and see what effect they have.

SiVi also has a pretty simple working code example in the “help” area with lots of comments, including some notes on how to make a topo map. You can download a jar and get immediate access to this via the following link. http://hexara.com/SiVi.jar

In the below image (not the greatest terrain example, I’ll admit), is an example of a mapping to a color bar with 256 increments (on the right) to get terrain. The number ranges and colors I choose are arbitrary. You can define your own for game purposes (e.g., 0 to 63 = water, 64 to 127 = forest, etc., and map to graphics used for those topo features, rather than to color gradients.

http://Hexara.com/Images/EarthMap.JPG

More SiVi info & examples, but will eventually expire:
http://www.java-gaming.org/topics/wip-reel/33731/msg/317526/view.html#msg317526
This post also has a link to an interesting slide show by Ken Perlin.

Since the project is open source, you can also sign up on github (http://github.com/philfrei/SiVi) and poke around the code that way.