I created a public synonym 'raja' on emp table in SYSTEM schema. And I am logged in another schema and create a table with 'raja'. when i am queried as 'select * from raja' i will get the table's output. So, why i am getting this tables data insteed of public synonyms data?
Correct - that is the way it is designed to work. If it didn't work that way someone could prevent you from accessing your own tables; that doesn't make much sense.
The 'Managing Object Name Resolution' section in the Database Administrator's Guide explains the reason
You posted in the wrong forum. As the forum title says this forum is for Sql Developer questions only; not for SQL or PL/SQL.
Mark this question ANSWERED. If you still need any additional help repost the question in the SQL and PL/SQL forum.