牛客笔试题整理(3)

1.类方法

类方法指的就是被static修饰的方法,有如下选择题:

下列说法错误的有( )
A. 在类方法中可用this来调用本类的类方法
B. 在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D. 在类方法中绝对不能调用实例方法

A. static方法是属于类的,而不是属于某一个对象,所以没有this指针。
在这里插入图片描述
B.一个类方法中可以直接调用另一个类方法
在这里插入图片描述
C.一个类方法中可以通过 类名+方法 来调用另一个类的类方法
D.只需要在类中新建一个实例就可以调用实例方法

2.Integer的缓存

Integer a = 1;
Integer b = 1;
Integer c = 500;
Integer d = 500;
System.out.print(a == b);
System.out.print(c == d);

上述代码返回结果为: true false

这是因为Integer类型在**[-128,127]范围之间是被缓存了的**,也就是每个对象的内存地址是相同的,赋值就直接从缓存中取,不会有新的对象产生,而大于这个范围,将会重新创建一个Integer对象,也就是new一个对象出来,当然地址就不同了,也就!=;

3.String 练习题

public class SendValue{
    public String str="6";
    public static void main(String[] args) {
        SendValue sv=new SendValue();
        sv.change(sv.str);
        System.out.println(sv.str);
    }
    public void change(String str) {
        str="10";
    }
}

输出结果为? 6

由于String的不可修改性,所以即使是引用传递,修改的也只是形参的值。也就是首先调用函数change(),让形参str指向6,后来又让它指向10,但是this.str的指向始终是10。
而数组则不同,数组里的值是可变的,所以可以直接进行修改而不是改变指向,所以方法中改变数组会实际的改变数组值。

4.super

super就是指向父类的一个指针,所以可以用来访问父类的非私有成员变量,用来调用父类中被重写的方法,用来调用父类的构造函数

public class TestSuper {
    protected String father = "father";
    public TestSuper() {
    }
    public void print(){
        System.out.println("我是爸爸");
    }
    public static void main(String[] args) {
        Child child = new Child();
        child.print();
        child.fatherPrint();
        child.printFather();
    }
}
class Child extends TestSuper{
    /**
     * 调用父类的构造方法
     */
    public Child() {
        super();
    }
    @Override
    public void print() {
        System.out.println("我是儿子");
    }
    /**
     * 调用父类的被重写方法
     */
    public void fatherPrint(){
        super.print();
    }
    /**
     * 访问父类非私有变量
     */
    public void printFather(){
        System.out.println(super.father);
    }
}

5.final练习题

class Foo {
    final int i;
    int j;
    public void doSomething() {
        System.out.println(++j + i);
    }
}

会报错,因为final类型的成员变量在使用之前一定要初始化。有两种选择:

  1. 在构造函数中赋值
  2. 初始化赋值

在这里插入图片描述

发布了60 篇原创文章 · 获赞 6 · 访问量 1217

猜你喜欢

转载自blog.csdn.net/DLC990319/article/details/104961981