A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 田磊阳   /  2013-4-18 10:41  /  73204 人查看  /  973 人回复  /   8 人收藏 转载请遵从CC协议 禁止商业使用本文

面试题总结:
Day02:看下面的程序是否有问题,如果有问题,请指出并说明理由。
        * 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了
Day02:面试题
        * byte b = 10;
        * b++;
        * b = b + 1;
        * 问哪句会报错,为什么
        //b = b + 1 会报错,因为b + 1 类型提升为int类型.
Day02:面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
        * short s=1;s = s+1;//有  s = (byte)(s +1);
        * short s=1;s+=1;//没有
Day03:面试题:
        * 请自己实现两个整数变量的交换
        //int  a = a^b;
        //int  b = a^b;
        //int  a = a^b;
        * 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。
Day03:面试题
        * byte可以作为switch的表达式吗?// 可以
        * long可以作为switch的表达式吗?// 不可以
        * String可以作为switch的表达式吗?// 可以
Day08:面试题
   A:看程序写结果  

                class Student {
                        static {
                                System.out.println("Student 静态代码块");
                        }
                        
                        {
                                System.out.println("Student 构造代码块");
                        }
                        
                        public Student() {
                                System.out.println("Student 构造方法");
                        }
                }
        
                class Demo2_Student {
                        static {
                                System.out.println("Demo2_Student静态代码块");
                        }
                        
                        public static void main(String[] args) {
                                System.out.println("我是main方法");
                                
                                Student s1 = new Student();
                                Student s2 = new Student();
                        }
                }
/*
          Demo2_Student静态代码块
          我是main方法
          Student 静态代码块
          Student 构造代码块
          Student 构造方法
          Student 构造代码块
          Student 构造方法
*/


看程序写结果1
                class Fu{
                        public int num = 10;
                        public Fu(){
                                System.out.println("fu");
                        }
                }
                class Zi extends Fu{
                        public int num = 20;
                        public Zi(){
                                System.out.println("zi");
                        }
                        public void show(){
                                int num = 30;
                                System.out.println(num);
                                System.out.println(this.num);
                                System.out.println(super.num);
                        }
                }
                class Test1_Extends {
                        public static void main(String[] args) {
                                Zi z = new Zi();
                                z.show();
                        }
                }
/* 答案:Fu
       zi
           30
           20
           10
*/
                看程序写结果2
                class Fu {
                        static {
                                System.out.println("静态代码块Fu");
                        }
        
                        {
                                System.out.println("构造代码块Fu");
                        }
        
                        public Fu() {
                                System.out.println("构造方法Fu");
                        }
                }
        
                class Zi extends Fu {
                        static {
                                System.out.println("静态代码块Zi");
                        }
        
                        {
                                System.out.println("构造代码块Zi");
                        }
        
                        public Zi() {
                                System.out.println("构造方法Zi");
                        }
                }
        
                Zi z = new Zi(); 请执行结果。
/*答:静态代码块Fu
   静态代码块Zi
   构造代码块Fu
   构造方法Fu
   构造代码块Zi
   构造方法Zi
*/
A:方法重写的面试题
        * Override和Overload的区别?Overload能改变返回值类型吗?
        /* overload可以改变返回值类型,只看参数列表
         方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致(或者是子父类)的
        
         方法重载:本类中出现的方法名一样,参数列表不同的方法。与返回值类型无关。

         子类对象调用方法的时候:
                 先找子类本身,再找父类。
                */
Day09 面试题
A:看下面程序是否有问题,如果没有,说出结果

                class Fu {
                        public void show() {
                                System.out.println("fu show");
                        }
                }
        
                class Zi extends Fu {
                        public void show() {
                                System.out.println("zi show");
                        }
        
                        public void method() {
                                System.out.println("zi method");
                        }
                }
        
                class Test1Demo {
                        public static void main(String[] args) {
                                Fu f = new Zi();
                                f.method();
                                f.show();
                        }
                }
//f.method() 编译失败
* B:看下面程序是否有问题,如果没有,说出结果
                class A {
                        public void show() {
                                show2();
                        }
                        public void show2() {
                                System.out.println("我");
                        }
                }
                class B extends A {
                        public void show2() {
                                System.out.println("爱");
                        }
                }
                class C extends B {
                        public void show() {
                                super.show();
                        }
                        public void show2() {
                                System.out.println("你");
                        }
                }
                public class Test2DuoTai {
                        public static void main(String[] args) {
                                A a = new B();
                                a.show();
                                B b = new C();
                                b.show();
                        }
                }

// 爱 你
A:面试题1
        * 一个抽象类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
        //可以
        // 这么做目的只有一个,就是不让其他类创建本类对象,交给子类完成
* B:面试题2
        * abstract不能和哪些关键字共存
        /* static  static 修饰可以直接类名.调用,不用创建对象,abstract必须由子类创建对象调用
           final   final 修饰的不可以重写,abstract修饰的强制让子类重写,矛盾
           private private 修饰的不可以被其他类访问,无法被子类重写
           */
回复 使用道具 举报
我来瞅瞅,学习下...
回复 使用道具 举报
{:3_46:}  好哦好
回复 使用道具 举报
谢谢楼主分享
回复 使用道具 举报
烦烦烦烦烦烦烦烦烦烦烦烦烦烦烦
回复 使用道具 举报
大神好吊
回复 使用道具 举报
我来看看,应该是好好的看一下才对的!
回复 使用道具 举报
三年前了,看看
回复 使用道具 举报
非常感谢你的分享!
回复 使用道具 举报
看看,最近要面试
回复 使用道具 举报
谢谢楼主分享
回复 使用道具 举报
学习一下
回复 使用道具 举报
看看分享,学习学习经验。
回复 使用道具 举报
好好 环境嗷嗷啊
回复 使用道具 举报
wentao201031 来自手机 初级黑马 2016-8-9 23:32:19
875#
还是很好的~~~给力
回复 使用道具 举报
lalalaallalalala
回复 使用道具 举报
1111111111111111
回复 使用道具 举报
革命尚未成功成功,同志仍需努力!!
回复 使用道具 举报
过来学习学习
回复 使用道具 举报
感谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马