大致的想法如下:1.String是不可变类,所以不能直接修改其内容。
2.>>和>>>
3.4.不知道。请高手解释。
5.RTTI运算符,效率低,不应在程序中大量出现。
6.不太明白题目的意思。应该是由Java类型规范决定的吧。
7.protected对子类可见,属于导出api的一部分,应得到后续支持。默认为包级私有。
8.对final字段,编译器可能进行常量优化;对final方法,则不需要后期绑定。
9.抽象类一般作为继承体系中的实体抽象,借口一般用来添加修饰属性。
10.不一定。如Cloneable, Serializable。
11.不懂。应该是超类——〉子类
12.类的方法是该类的所有实例的共有属性,因此不需要产生代码的多份实例。实例的状态由字段体现。不清楚Java里的对象模型是怎样的,Java的访问控制是在编译期实现的还是在运行期实现的?
13.gc运行的时候。不包括代码空间。一旦一个类被ClassLoader调入,在程序的生命期内就是存活的。
14.很有意思的问题,我的看法是,Java里的引用与C++得指针更为相似,而与C++的引用貌合神离。一点意见,供大家讨论:)

解决方案 »

  1.   

    new 放在左边当然要右结合了
      

  2.   

    3. 如何理解new是从右至左的运算?
    BallWorld world = new BallWorld(Color.red);
    首先用new来创建一个BallWorld类的对象world,然后调用BallWorld类的构造器BallWorld(Color.red)对该对象进行初始化
    看看能否帮助你理解呢
      

  3.   

    补充:
    String 其实提供的a+="abc";也是先转化为StringBuffer 来做的我认为参数的计算顺序应该是从左往右 ,不然怎么产生短路操作计算精度Java有默认值,不过你也可以自己控制推荐使用接口,尽量少的使用抽象类
      

  4.   

    1. 请分析String或StringBuffer的特点,以及在 连接操作时,为什么String的性能次于StringBuffer?
    String是固有对象,不可变长,在连接时的变化是个假象,其实每次连接都是返回新String对象
    2. 在java中,如何实现算数移位和逻辑移位? 
    >>,<<等运算符
    3. 如何理解new是从右至左的运算?
    想想吧,赋值当然是把等号右边的给左边的啊
    4. Java函数参数计算顺序是什么?
    推荐的是,不管是何顺序,都有()来体现,程序更可读 
    5. instanceof是属于哪种运算类型?其效率如何?
    RTTI运算符,效率低,不应在程序中大量出现
    6. 表达式计算结果的精度如何确定?
    如果想要最好的精度,就有BigDecimal
    7. 请说出“protected”和“缺省”的能见度规则的区别是什么?(即从信息隐藏角度看其关注的焦点分别是什么?)
    protected仅子类可见,缺省的仅包内可见
    8. 为什么使用final后会提高程序的性能?在什么情况下使用final?
    final杜绝了继承,无需后期绑定,不能滥用容易导致bug
    9. 在什么情况下使用接口或抽象类?
    在需要RTTI的时候 
    11.在继承链中,实例化对象时构造函数的调用顺序和用引用调用方法的查找顺序分别是什么?
    构造顺序是从最初的超类开始,另一个没看懂你的意思
    13.对象何时被释放?释放的空间包括代码区吗?
    一般情况下在GC启动时被清除,这与不同的JVM采用的不同垃圾回收机制相关
    14.对象引用与C++中的指针的异同是?
    同是传址