今天分享一些JavaSE的一些基础练习题,虽然不难,但很有意义,有了基础,才会熟悉更深的操作与进一步学习;

1.以下说法正确的是:()
A:构造方法必须是public方法 B:main方法必须是public方法
C:Java应用程序的文件名可以是任意的 D:构造方法应该声明为void类型

  • 正确答案:B
    解析:
    A:错误,举例:单例模式中,构造方法用private修饰
    C:错误,文件名应该与主类名保持一致
    D:错误,构造方法没有类型声明

2.设int x=1,float y=2,则表达式 x / y的值是:( )
A.0 B.1 C.2 D.以上都不是

  • 正确答案:D
    解析:
    我再写这道题时,认为float y = 2这条语句就会报错,后面一想才发现,后面2是整型,float类型范围比int型大,不用强转,要是小数,才必须写:float y = 2.0F;
    这道题答案应为 0.5 ,x/y结果为float型;

3.以下有关构造方法的说法,正确的是:( )
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用
D.构造方法可以和类同名,也可以和类名不同

  • 答案:A
    解析:
    B:构造方法在创建对象的时候被调用,即new的时候
    C:显然错误,总结到一个知识点:本类中的普通方法不能调用构造方法,而构造方法可以调用普通方法,重载的构造方法可以调用另一个构造方法
    D:构造方法必须和类同名

4.[多选]String与StringBuffer的区别( )
A:String是不可变的对象,StringBuffer是可以再编辑的
B:字符串是常量,StringBuffer是变量
C:String是可变的对象,StringBuffer是不可以再编辑的
D:以上说法都不正确

  • 答案:AB

5.[多选]以下说法正确的是( )
A.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。
B.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;
C.非静态内部类的非静态成员可以访问外部类的非静态变量
D.内部类和外部类都可以访问彼此的私有成员

  • 答案:AB
    无解析?

下面这段代码输出什么:

class Person {
    public void fun() {
        this.print();
    }
    
    private void print() {
        System.out.println("1.**********");
    }
}
class Student extends Person {
    public void print() {
        System.out.println("2.##########");
    }
}
public class Exer {
    public static void main(String[] args) {
        new Student().fun();
    }
}

答案:1.**********
解析:父类中的print方法的权限是private,所以这是私有的,只有在Person类中才可见,所以子类的print方法并没有覆写父类的print方法

下面看这段代码以及它的输出:

package www.baidu.java;
class Person {
    public void fun() {
        this.print();
    }

    private void print() {
        System.out.println("1.**********");
    }
}
class Student extends Person {
    public void print() {
        System.out.println("2.##########");
    }
}
public class Test {
    public static void main(String[] args) {
        new Student().fun();
        new Student().print();
    }
}

输出是:

1.**********
2.##########