Sun公司在设计StringBuffer的时候,为什么没有实现Cloneable?根本原因是什么?

解决方案 »

  1.   

    理解Java的File,Socket为什么也没有clone的支持呢?
    想清楚这个,有助于理解StringBuffer不是 Memory的意思,而是操作Memory的“接口”。
      

  2.   

    这个问题比较强悍啊,你可以在java官网上提交个人想法~~~~
      

  3.   

    对于StringBuffer不清楚,但还是觉得跟环境有关。比如一个Socket对象、一个Thread对象、一个File对象,它本身带有一个上下文环境有关的东西,如果可以支持克隆的话,我把一个克隆对象传输到另一台机,周围的环境就不一样了,当然也就不能正常工作了。大概是出于这方面考虑吧
      

  4.   

    String在java中是不可变字符串,StringBuffer和StringBuilder是可变字符串,SUN公司在JVM中的堆栈里面实现以上三种字符规范
      

  5.   

    我后来想了想,是这样的:其实StringBuffer只是一个操作类而已,换句话说就是一个工具类而已。举个简单的例子,为什么Math没有实现cloneable接口呢?实现cloneable接口的通常是和memory相关的,正如楼上一位大牛说的一样。