最重要区别
1
symbol存入内存后,始终存在,如果不进行垃圾收集,可能导致内存泄漏。
String只会存在于某个创建它的作用域内。即有生命周期的。
2.唯一性。
\\进入控制台
>"asd".object_id
>"asd".object_id
\\上面的string的object_id不同,证明上面2个字符串是储存在不同内存位置的2个独立的字符串。
>:asd.object_id
>:asd.object_id
\\上面的:asd的object_id相同,:asd是唯一的。
3 Symbol是一个符号,它不能像string一样合并。