Ok here we go!
Stands for Axis Aligned Bounding Box and is used for collision detection. Why? Its a very simple and, one could day, fast algorithm because it only deals with boxes that have no rotation. If you want rotation in your game, consider using the Separating Axis Theorem!
AABB collision detection basically works like this:
Check to see if the "x" of this box is greater than the "x" of that box. Repeat for the "y" axis. Then check to see if the "x" position is less than the "x + width" of the box you're checking against, repeat for the "y" axis. And because that made little sense, here's the math:
if x > other.x
If y > other.y
If x < other.x + other.width
If y < other.y + other.height
Very simple right? Now there are other ways to do it, but that's the easiest way.
As for your question about tiles. There are many many ways to store and use tile objects, I personally use a static based byte id system, but that's over your head. What you should do is create a Tile class that contains common methods that every tile will use. One of those should be an "isSolid" method. The method will simply return a boolean based on whether or not the player can move through it.
Hopefully that helped, sorry I can't exactly walk you through the A* algorithm!
Here's a great article that explains A* very thoroughly:http://www.policyalmanac.org/games/aStarTutorial.htm