(1)假如你写好一段源码,你编译成.class后你再进行反编译,那么得到的.java和你原来的.java有什么同异。
(2)我有一个字符串。2*x^2+2*(x+2)*(x+1)+3*(x-4)^2+(x+(x-6)^2)  当x的值确定时,如何把这个字符串计算出来得到一个数值。讨论一下吧

解决方案 »

  1.   

    2.随便找一本数据结构的书,当然java的最好,
    看看:栈,stack那一章,基本上都有这种实现。简单讲:
    1。将表达式翻译成后缀表达式,去掉所有的(),
    例如2+x*2*(7+x)的后缀表达式是2,x,2,*,7,x,+,*,+
    2。计算后缀表达式,这时将x的值代入,从左到右读,读到数字就压入栈中,读到+-*/就从栈顶拿出足够的数字计算,结果再压入栈中,读完时,栈中应该只有一个数字,就是结果。
    上例:设x=5:
    2,x,2,       *,7,x,+,*,+
    2,10,        7,x,+,*,+
    2,10,7,x,    +,*,+
    2,10,12,     *,+
    2,120,       +
    122
    这两步都要用栈。
    更高级一点,编译原理的书,我忘了,有一章专门讲表达式的翻译。