1 写出执行代码结果!
abstract class Actor {
abstract void draw(); Actor() {
System.out.println("Actor before draw");
draw();
System.out.println("Actor after draw");
}
}class Hero extends Actor {
int hp = 1; Hero(int i) {
hp = i;
System.out.println("Hero.Hero(),hp=" + hp);
} void draw() {
System.out.println("Hero.draw(),hp=" + hp);
}}public class test_98 {
public static void main(String[] args) {
new Hero(5); }
} 2 用JAVA表示一个矩形,并写一个函数计算俩个矩形的交集。
3 有哪些调式程序的手段和技巧。
4 写一个函数将俩个字节拼成一个短整型。例如,当low = 0x90, high = 0x57,函数返回0x5790 short combind(byte high,byte low)
5 heap 和 stack 内存有哪些区别?
二 写出结果
1 int expr = -3>>7;2 int expr =(12 ^ (0x10))<<(8 & ~3);
3 String func(String s){
   return s.lengh() >0?func(s.substring(1))+s.charAt(0):"";
 }
   String expr = func("Gameloft");4 int a(int b){
   int c= 1;
   int d=2;
   b=c+=d+=b+++b;
   return d+=b;
 }
 int expr =a(5); 5  对数组求和的函数补充完整
 int SUM (int a[],int n)
 { return n>0?__________________;
 }6 输入俩个字符串 输出字符串的字符交集!
当时做的并不理想!发出来给大家看看!希望对么找道工作的有帮助。

解决方案 »

  1.   

    Actor before draw
    Hero.draw(),hp=0
    Actor after draw
    Hero.Hero(),hp=5
    第一题的答案,我跑的程序。
    为什么Hero(int i) 会调用Actor() ?
      

  2.   

    怎么那么多人在继承方面有那么多问题,第一题是再简单不过的问题(我刚学JAVA 不久),为什么Hero(int i) 会调用Actor() ?问这个问题的朋友上课一定是在睡觉.因为你在调用Hero(int i)这个有参构造方法的时候,Hero(int i)构造方法里面的第一条语句是super();语句,你要是问我为什么会有,我只能告诉你这句是系统默认加上去的,因为什么,因为继承!当Actor类里面要是没有无参构造方法,那么就这个程序就会出问题.不信你试试...Hero.draw(),hp=0 ,为什么这里会输出0,也是因为Hero(int i)里的第一条语句是super(),他会去调用父类的构造方法了,没来的及把5赋给hp,接着在父类里面又调用了draw();就回到子类来调用draw();了,这时候里面的ph的值还是你new的时候的初始化的值,当然是0了.为什么下面又会输出ph = 5,知道了吗?
    这时候的5已赋给了ph嘛,就这么简单!
      

  3.   

    一看到i+++b这种句子就知道这个公司的rp不怎么样。
      

  4.   

    定义一个矩形的话,那么写一个类即可:public class Rect { 
    protected long width; 
    protected long height; public Rect() { 
    this.width = 10; 
    this.height = 10; 
    } public Rect(long width,long height) { 
    this.width = width; 
    this.height = height; 

    }如果,需要两个矩形的交集的话,那么需要两个矩形在平面内的坐标,再知道两个矩形的长和高,剩下就是数学算法了
      

  5.   

    第一题运行结果是:Actor before draw
    Hero.draw(),hp=0
    Actor after draw
    Hero.Hero(),hp=5具体原因就不说了,看书。
      

  6.   

    3 有哪些调式程序的手段和技巧。 我一般都是 System.out 来调试,不仅仅是java 还有js等
      

  7.   

    int a(int b){ 
      int c= 1; 
      int d=2; 
      b=c+=d+=b+++b; 
      return d+=b; 

    int expr =a(5); 
    27
      

  8.   

    3 String func(String s){ 
      return s.lengh() >0?func(s.substring(1))+s.charAt(0):""; 

      String expr = func("Gameloft"); 典型的递归颠倒字符顺序了,输出结果:tfolemaG
    顺便看了下 楼主s.lengh()打错了。
      

  9.   

    5  对数组求和的函数补充完整 
    int SUM (int a[],int n) 
    { return n>0?a[--n]+SUM(a,n):0;
    } 题目出的很好~
    MARK了~
      

  10.   

    public class test_20{
    public static void main(String args[]){
    int[] a={1,5,9,4,6};
    int[] b={5,4,2,1,2};

    /* int[] a={'a','b','d'};
    int[] b={'a','b','d','f'};*/    我这数组中要是字母 最后返回得怎么转换? 

    int[] c= intersect(a,b);
    System.out.println(Arrays.toString(c));

        }
        public static int[] intersect(int[] a,int[] b){
         int index=0;
            int [] returnValue = new int[Math.max(a.length,b.length)];
           for(int i=0;i<a.length;i++){
             for(int j=0;j<b.length;j++){
              if (a[i]==b[j]){
              returnValue[index]=a[i];
              index++;
              }
             }
             
           }
           int [] copy = new int[index];
           System.arraycopy(returnValue,0,copy,0,index);
           return copy;    
        }
    }
      

  11.   


    有点问题,是n>0?a[--n]+SUM(a,n):a[0]
      

  12.   

    这个是怎么回事啊?(b++)+b和b+(++b)是一样的结果?
      

  13.   

    什么鸟JB题?
    java还搞位操作.
    出得些什么题上来?
    位操作,byte占多少位?
      

  14.   

    第四题的答案:
    static short combind(byte ihighgh, byte low) {
    short retVal = (short) (ihighgh << 8);
    retVal |= (low & 0x000000FF);
    return retVal;
    }我真的不相应有人可以用笔写得出来.
    这里要转几个弯:
    为什么要左移8位?
    在进行或操作前先要进行与操作?什么鸟JB题?搞硬件的人出来的,
    还是学C背景的人出的?