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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

day02
        1、下面的程序有问题吗,如果有,在哪里呢?
                        byte b1 = 3;
                        byte b2 = 4;
                        byte b3 = b1 + b2;
                        byte b4 = 3 + 4;
                输出b3会出现"可能损失精度",因为byte类型的b1加上byte类型的b2,会自动转换为int类型,用byte接收是不行的,要用int接收或者long啊这些的。

day03
        2、 short s1 = 1;
                s1 = s1 + 1;
               
                short s2 = 1;
                s2 += 1;
        请问上面的代码哪个有问题?
                第一个有问题,md还是一样的道理,可能损失精度,需要注意的是s2之所以可以执行,是因为他隐含了自动强制转换哦。
               
day04
        3、switch语句的表达式可以是byte吗?可以是long吗?可以是String吗?
                可以
                不可以
                JDK7以后可以
               
day08
        4、 A:Override和Overload的区别?Overload是否可以改变返回值类型?
                        override是重写的意思,方法重写也称方法覆盖,是指方法名和参数个数以及类型(包括返回值类型)都相同,子类继承自父类可以重写方法,也可以不重写。
                        overload是重载的意思,方法重载是指方法名相同,但具有不同的参数个数和参数类型(还有返回值类型),体现了多态性;
                B:this和super的区别和各自的作用?
                        this是指当前类的对象,而super是指当前类的父类的对象。
                       
day09
        5、A:局部变量
                        a:基本类型 值不能发生改变
                        b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的
                B:初始化时机
                        a:只能初始化一次。
                        b:常见的给值
                                定义的时候。(推荐)
                                构造方法中。
                               
day10
        6、填空
                class Outer {
                        public int num = 10;
                       
                        class Inner {
                                public int num = 20;
                               
                                public viod show() {
                                        int num  = 30;
                                       
                                        System.out.println(num);
                                        System.out.println(this.num);
                                        System.out.println(Outer.this.num);
                                }
                        }
                }
        //30                 //20            //10
       
        7、不齐代码
        匿名内部类的面试题(补齐代码)
                interface Inter {
                        void show();
                }
               
                class Outer {
                        //补齐代码
                        public static Inter method() {
                                return new Inter() {
                                        public void show() {
                                                System.out.println("HelloWorld");
                                        }       
                                };
                        }
                }
               
                class OuterDemo {
                        public static void main(String[] args) {
                                Outer.method().show(); //"HelloWorld"
                        }
                }
               
day11
        8、==和equals()的区别?
                A:==
                        基本类型:比较的是值是否相同
                        引用类型:比较的是地址值是否相同
                B:equals()
                        只能比较引用类型。默认情况下,比较的是地址值是否相同。
                        但是,我们可以根据自己的需要重写该方法。
       
day12
        9、字符串的面试题(看程序写结果)
                A:==和equals()
                        String s1 = new String("hello");
                        String s2 = new String("hello");
                        System.out.println(s1 == s2);
                        // false
                        System.out.println(s1.equals(s2));
                        // true,String类已经重写了equals()方法

                        String s3 = new String("hello");
                        String s4 = "hello";
                        System.out.println(s3 == s4);
                        // false
                        System.out.println(s3.equals(s4));
                        // true

                        String s5 = "hello";
                        String s6 = "hello";
                        System.out.println(s5 == s6);
                        // true
                        System.out.println(s5.equals(s6));
                        // true
                B:字符串的拼接
                        String s1 = "hello";
                        String s2 = "world";
                        String s3 = "helloworld";
                        System.out.println(s3 == s1 + s2);
                        // false
                        System.out.println(s3.equals((s1 + s2)));
                        // true

                        System.out.println(s3 == "hello" + "world");
                        // false 这个我们错了,应该是true
                        //字符串直接赋值的方式是先到字符串常量池里面去找,如果有就返回,没有,就创建并返回
                        System.out.println(s3.equals("hello" + "world"));
                        // true
                       

                       

               
       
       
       
       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马