Hainan is a lovely place with fresh air and beautiful beaches. There's also beautiful mountains in the interior, although few tourists visit there.
I'm a foreigner who has been living in Hainan for over a year now, and I have found it to be a safe as anywhere else in China. I've never had a problem.
If you go to Sanya, I recommend staying in Dadonghai rather than Yalongwan. The hotels and restaurants are cheaper and there's a convenient bus going back and forth into the town of Sanya. I usually stay in the Dadonghai Hotel, where I can get a room for around 100 yuan (perhaps 120 during Spring Festival). It's on the beach and the rooms are fairly nice. They also have a seafood restaurant with fair prices. (The front desk staff is much disorganized, however. And they will try to cheat you on the room deposit, so make sure you have an accurate receipt!) Dadonghai has free entertainment on the beach every night -- dancing and singing by local people, which I enjoy a lot.
One annoying thing in Sanya is the prostitutes. They call the hotel room at all hours of the night. But most hotels have some way of blocking the calls if you ask.
If you visit the tourist sites in Sanya, be prepared to pay a high price. Most places charge at least 50 yuan or more for entrance fees.
I would also recommend a side trip to Wuzhishan mountain (Tongzha). You can get there by the local bus from Sanya in about 2 hours. The hotels in Wuzhishan are cheap -- around 50 to 80 yuan. And if you like hiking, the mountain is great for that. There's also a village of the minority Li people at the base of the mountain.
Many tourists come to Haikou in the tour groups. I think you can save money this way, but the groups always seem to be in a hurry -- rushing from place to place. It doesn't seem like they have enough time to relax and enjoy the beaches and such.
If you go to Haikou, make a side trip to Dongjiao Yelin (Coconut Grove). It's a beautiful beach with coconut trees and you don't have to pay anything to relax in the hammocks or lounge chairs.
I would also recommend a side trip to Wuzhishan mountain (Tongzha). You can get there by the local bus from Sanya in about 2 hours. The hotels in Wuzhishan are cheap -- around 50 to 80 yuan. And if you like hiking, the mountain is great for that. There's also a village of the minority Li people at the base of the mountain.
In Sanya, I would skip the temple that has the big statue of the female Buddha out in the ocean. It's a LONG drive from Sanya -- about 1/2 hour, and when you get there you have to pay 55 yuan for entrance fee, and then another 15 yuan for the train, and then another 20 yuan to see the more beautiful temples. There's a pretty garden, but the temples are all new and uninteresting, in my opinion.
Everyone always feels like they have to go to Tianya Haijou (where the big rocks are out in the ocean). Well, you have to pay around 50 yuan to get into that place too, just to get your photo taken by a rock. That might have some special meaning to the Chinese, but it didn't do a whole lot for me.
Yalongwan has a very wide sandy beach. Dadonghai has a fairly nice sand beach in one area, (where there's a roped off swimming area), but it's rather rocky further away, where fewer people are. It is quite lovely, however, with the mountains coming right down to the sea. Both areas are good for swimming.
At Dadonghai you have to pay around 10-15 yuan for a lounge chair with an umbrella. At Yalongwan, unless you're a guest of the hotel where the chairs are located, you have to pay 100 yuan (at least that's what one guy told me). There really isn't any shade at all in Yalongwan; there's some trees in Dadonghai that offer shade depending on the angle of the sun.
The busiest area of Dadonghai is a little annoying because the Muslim ladies are constantly trying to vend their cheap pearls, fruit, sunglasses, and so forth. They really don't take no for an answer. What I have finally done is tell them that if they leave me alone, I will come out on the last day and buy some things from them (and of course, I do buy a few little trinkets and such). Also, the Chinese tourists sometimes ask you to pose for a photo with them. In Yalongwan, everyone pretty much leaves you alone.
In Dadonghai, you can ride a horse on the beach -- that's pretty cool. It costs around 20 yuan, as I recall.
About the food....
....the seafood is fresh and wonderful. The Hainan people prefer to steam everything -- but they will prepare it another way if you ask. You can go right into the kitchen and show them what you
want if you have a language problem (not all the Hainan people speak Putonghua). But in Sanya, a lot of the restaurant keepers are from Sichuan or other places in the mainland.
Don't bother with the Wenchang Chicken unless you can go to the village of Tanniu (located between Haikou and Wenchang) and get the real thing. No one else does it right, and it will be a huge disappointment.
Try the "Ka Fei Nai" -- it's this really strong, thick coffee (local Hainan grown) that is served with sweetened condensed milk. I'm addicted!