Oracle shared memory exception ORA-04031 I'm trying to establish an Oracle database connection. It throws the following exception:

ORA-04031: unable to allocate 4048 bytes of shared memory 
  ("shared pool","unknown object","sga heap(1,0)","kglsim heap")


I have tried connecting the database through JDBC as well as  SQL Developer, however it throws the exception in both case.

How can I fix this?
Oracle 10g or earlier? Probably you already restarted the database. Then you can check SQL Area:
    SELECT sql_text, parsing_schema_name, executions FROM v$sqlarea ORDER BY executions desc;
If there are tens of thousands SQLs with 1 execution - you are having shared pool fragmentation. To avoid future exceptions either rewrite SQLs (usually not using binding variables causes SQL area bloat) or upgrade to 11g. It better handles shared pool fragmentation.