黑马程序员技术交流社区

标题: 基础班面试宝典~ [打印本页]

作者: 小哒哒    时间: 2016-3-30 23:11
标题: 基础班面试宝典~
A:案例演示
        * 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
        * byte b1 = 3;
        * byte b2 = 4;
        * byte b3 = b1 + b2;
                * 从两方面去回答这个题
                * b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
                * byte类型的变量在进行运算的时候,会自动类型提升为int类型
        * byte b4 = 3 + 4;
                * 3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了
* B:面试题
        * byte b = 10;
        * b++;
        * b = b + 1;
        * 问哪句会报错,为什么

* C:案例演示
        * 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
        * short s=1;s = s+1;
        * short s=1;s+=1;
* D:面试题
        * byte可以作为switch的表达式吗?
        * long可以作为switch的表达式吗?
        * String可以作为switch的表达式吗?
* E:面试题:
        * 请自己实现两个整数变量的交换
        * 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。
* F:案例演示 >>,>>>,<<的用法:
        *  <<:左移        左边最高位丢弃,右边补齐0,移位后的结果是原来结果的2的移的位数次幂倍。
        *  >>:右移        最高位是0,左边补齐0;最高为是1,左边补齐1
        *  >>>:无符号右移 无论最高位是0还是1,左边补齐0
        *  最有效率的算出2 * 8的结果
* G:练习1
                需求:键盘录入一个成绩,判断并输出成绩的等级。
                90-100 优
                80-89  良
                70-79  中
                60-69  及
                0-59   差
               
* H:练习2
                需求:
                * 键盘录入x的值,计算出y的并输出。
                * x>=3        y = 2 * x + 1;
                * -1<x<3        y = 2 * x;
                * x<=-1        y = 2 * x - 1;

* I:整数(给定一个值,输出对应星期几)

* J:总结switch语句和if语句的各自使用场景
        switch建议判断固定值的时候用
        if建议判断区间或范围的时候用

* K:案例演示
        * 分别用switch语句和if语句实现下列需求:
                * 键盘录入月份,输出对应的季节

* L:byte b1=3,b2=4,b;
                b=b1+b2;
                b=3+4;
                哪句是编译失败的呢?为什么呢?

* M:byte  by = 130;有没有问题?有问题如何解决?结果是多少呢?

* N:看程序写结果:请自己独立分析,先不要编译运行。
        第一题
        int x = 1,y = 1;

        if(x++==2 & ++y==2)
        {
                x =7;
        }
        System.out.println("x="+x+",y="+y);
      
        &:是逻辑与,符号两边都会执行,那也就也为之y的值会改变

        ---------------------------------------------------
        第二题
        int x = 1,y = 1;

        if(x++==2 && ++y==2)
        {
                x =7;
        }
        System.out.println("x="+x+",y="+y);

        ---------------------------------------------------
        第三题
        int x = 1,y = 1;

        if(x++==1 | ++y==1)
        {
                x =7;
        }
        System.out.println("x="+x+",y="+y);

        ---------------------------------------------------
        第四题
        int x = 1,y = 1;

        if(x++==1 || ++y==1)
        {
                x =7;
        }
        System.out.println("x="+x+",y="+y);

        ---------------------------------------------------
        第五题
        boolean b = true;

        if(b==false)
                System.out.println("a");
        else if(b)
                System.out.println("b");
        else if(!b)
                System.out.println("c");
        else
                System.out.println("d");

* O:编写代码实现如下内容:if语句实现
        考试成绩分等级。
                90~100        A等。
                80-89        B等。
                70-79        C等。
                60-69        D等。
                60以下        E等。
        请根据给定成绩,输出对应的等级。

* P:看程序,分析下面程序的结果:
        int x = 2,y=3;

        switch(x)
        {
                default:
                        y++;
                case 3:
                        y++;
                        break;
                case 4:
                        y++;
        }

        System.out.println("y="+y);



        int sum = 0;
        for(int i = 0;i<=100; i++){
                        sum+=i;
        }
        sop(sum);
        sop(i);//这句话会报错,是因为i在for循环中定义,循环完毕后,会自动释放。编译时会报错,未定义变量i。
               
作者: 2016coco    时间: 2016-3-30 23:38
谢谢分享   总结的很详细




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2