After reading Kevin Clark 's recent post on Ruby symbols made me want to learn more about this mysterious part of the Ruby language. After writing some unit tests to ensure that a symbol really is the same object as any other with the same name, I have come to the following conclusion: symbols are immutable string objects, same named symbols share the same object and therefore the same object_id . Kevin's example points out that they make great keys for hashs, and other indicators of what action to take ( :get , :post , etc.) Coming from a Java background, symbols have made me hit my head a number of times, this rather helpful post from Rob Sanheim helped clear things up a lot for me. Why the lucky stiff also has a good explaination , he suggests: Symbols Symbols are words that look just like variables. Again, they may contain letters, digits, or underscores. But they start with a colon. :a, :b, or :ponce_de_leon are examples. Symbols are lightweight strings. Usually,