Meat is the best food in the game, hands down- cake is difficult to get together and can only be carried in stacks of one cake, aside from not affecting how slowly your hunger bar empties- and fruits and bread simply don’t fill you as much or keep you full as long.
In Minecraft, there are four meats (five if you count Rotten Flesh, which only fills two meat sticks and has a good chance of poisoning you- so avoid eating that), each of which has two forms- uncooked, and cooked.
The least of the meats is fish. Obtained using a fishing rod, raw fish fills a single meatstick on your hunger bar, and doesn’t keep you full long at all. This can be remedied slightly by cooking it- cooked fish will refill two and a half meatsticks, and is as filling as bread. Not the best or most efficient of foods- your fish should be saved for use with cats if you are playing Minecraft 1.2 or later.
Chicken is somewhat better than fish, but only cooked- raw chicken fills a single meatstick and has a 30% chance of poisoning you, causing you to take damage over time until you are reduced to a half a heart or the poison runs out. Cooked, on the other hand, chicken is more filling than bread, restoring three entire meatsticks to your hunger bar and keeping you full a bit longer than bread will.
Pork and beef, from pigs and cows respectively, are tied for best food- and, strangely are identical. This makes cows a much more valuable animal than pigs- since pigs provide only pork, and cows provide beef, milk, and leather. Both pork and beef fill one and a half meatsticks when raw and have no chance of poisoning you. Their real value is found when you have them cooked, though. A cooked porkchop or steak will restore four meatsticks to your hunger meter- and keep you full longer than any other food in the game.
Interestingly, aside from fish there are two ways to cook meat. The first and more obvious is to put it in the top slot of a furnace and fill the bottom with some form of fuel. The less evident way is to set a chicken, cow, or pig on fire. If one of these animals dies from being on fire, it will not drop other items it might have (feathers on chickens, leather on cows), but any meat it drops will be already cooked. While this is rather inefficient (especially since you will need to set a pig or cow on fire twice to kill it), it can be used as an emergency measure if you have no coal or furnace available at the time, and is kind of entertaining to just do (since animals run randomly when on fire, and it’s a really bizarre way to get cooked food).