各位好,我是小饼干,一个编程界的小学生,每天都希望学习一点点编程相关。最近在CSDN上看到好多的小伙伴都在学java,今天我分享一些习题供大家巩固一下知识,,有些题附上我自己的一些见解,感谢各位的驻足,笔芯♥。
2、下列关于面向对象的说法中,错误的是( )
A、面向对象思想编程,不仅增强代码了复用性,提供了开发效率,而且为程序的修改补充提供了便利。
B、面向对象就是分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候一个一个依次调用。
C、面向对象是把解决的问题按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。
D、面向对象虽然使程序的开发效率提高了,但是程序的处理效率相对面向过程程序要低。
3、“隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征( )
A、封装
B、继承
C、多态
D、以上都不是
1、以下关于成员属性与成员方法的描述中,错误的是( )
A、成员属性我们也叫成员变量,它就是描述对象的特征。它可以定义在类中,也可以定义在方法中
B、成员方法用于描述对象的行为
C、在类中定义的变量,我们称为成员变量
D、在类中定义的方法,我们称变成员方法
出现在类体中,方法之外的就是成员属性
类中可以定义成员变量和成员方法,其中成员变量用于描述对象的特征,也被称作属性,成员方法用于描述对象的行为,可简称为方法。定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。
2、以下关于类的描述中,错误的是( )
A、在面向对象的思想中最核心就是对象,为了在程序中创建对象,首先需要定义一个类
B、定义类的关键字是Interface
C、类中的方法叫成员方法,成员方法又分为实例方法与类方法
D、类中的属性叫成员属性,成员属性又分为实例属性与类属性
3、下列关于类和对象的描述,错误的是( )
A、对象是类的实例
B、一个类只能有一个实例化对象
C、类是对象的抽象
D、类用于描述一组对象的共同特征和行为
1、阅读下面的代码
public class Example{
public static void main(String[] args) {
String s1=new String("abc");
String s2=s1.intern();
String s3="abc";
System.out.println(s1==s2);
System.out.println(s2==s3);
System.out.println(s1==s3);
}
}
程序的输出结果是()
A、
false
true
false
B、
false
true
true
C、
false
false
true
D、
true
true
false
详细内容
inrern详解
3、阅读下面的代码:
class Person{
void say(){
System.out.println("hello");
}
}
class Example{
public static void main(String[] args){
Person p1 = new Person();
Person p2 = new Person();
p2.say();
p1.say();
p2=null;
p2.say();
}
}
下列选项中,哪个是程序的输出结果?()
A、hello
B、
hello
hello
C、hello
hello
hello
D、
hello
hello
抛出异常
1、如果类的成员被( )访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问。
A、private
B、default
C、protected
D、public
2、下列关于protected的说法中,正确的是()
A、protected修饰的方法,只能给子类使用
B、protected修饰的类,类中的所有方法只能给子类使用
C、如果一个类的成员被protected修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问。
D、以上都不对
1、Java提供了4种访问级别,以下控制级别由小到大依次列出正确的是()
A、private、default、protected public
B、default、private、protected public
C、protected、default、private、public
D、protected、private、default、public
1、下列关于构造方法定义的描述中,错误的是( )
A、方法名与类名相同
B、在方法名的前面没有返回值类型的声明
C、当定义了有参构造方法,系统默认的无参构造方法依然存在
D、在方法中不能使用return语句返回一个值
1、下列关于构造方法的描述中,错误的是( )
A、构造方法的方法名必须和类名一致
B、构造方法不能写返回值类型
C、构造方法可以重载
D、构造方法的访问权限必须和类的访问权限一致
2、下列关于父类方法重写的描述中,错误的是()
A、如果父类方法的访问权限是public,子类重写父类该方法时的访问权限不能是private
B、子类重写父类方法时,重写的方法名、参数列表以及返回值类型必须和父类保持一致
C、如果父类的方法被final修饰,那么该方法不能被子类重写
D、子类继承父类后,可以重写父类定义的所有方法
Java中的类被finel关键字修饰 后,该类将不可以被继承,也就是不能够派生子类。
3、阅读下面的代码
class Demo{
Demo(){}
}
下列构造方法中,哪个构造方法可以存在上述Demo类中?( )
A、public Demo(){};
B、private Demo(){};
C、Demo(int age){};
D、String name(){};
1、下列关于多线程中的静态同步方法说法中,正确的是( )
A、静态同步方法的锁不是this,而是该方法所在类的class对象。
B、静态同步方法的锁既可以是this,也可以是该方法所在类的class对象。
C、一个类中的多个静态同步方法可以同时被多个线程执行。
D、不同类的静态同步方法被多线程访问时,线程间需要等待。
如果需要同步的方法是静态方法,静态方法不需要创建对象就可以直接使用类名.方法名()的方式访问调用,这是因为静态同步方法的锁是该方法所在类的class对象,该对象可以直接使用类名.class的方式获取。一个类的同步静态方法,同一时间只能被一个线程执行。不同类的静态同步方法,线程不需要等待。
2、下面关于重载的描述,错误的是()
A、构造方法不能重载
B、重载要求方法名相同,参数列表不同
C、方法重载发生在一个类的内部
D、方法的返回值类型不是区分方法重载的条件
3、下面关于this关键字的描述中,错误的是()
A、如果类的成员变量与方法中的局部变量名相同,那么可以在方法中通过this关键字调用成员变量
B、只能在构造方法中使用this调用其他的构造方法
C、在构造方法中使用this调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次
D、可以在一个类的两个构造方法中使用this互相调用
1、下面关于静态变量的描述,正确的是( )
A、静态变量可以定义在类中的任意位置
B、静态变量一但被赋值不能被修改
C、静态变量可以被类直接调用,因此可以说静态变量的生命周期与实例无关
D、以上都不对
2、请阅读下面的程序,选择正确的运行结果。()
class Demo{
private static int x ;
public static void main(String[] args){
System.out.println(x++);
}
}
A、0
B、1
C、无结果
D、编译失败
3、下列关于静态变量的描述中,错误的是( )
A、静态变量指的是被static修饰的变量
B、静态变量是随着类的加载而加载
C、静态变量可以被所有的实例对象共享
D、静态变量同成员变量一样,都需要通过实例对象来调用
1、静态方法运行时,在哪个内存区域中( )
A、栈内存
B、堆内存
C、方法区
D、寄存器
2、
下列程序的运行结果是
class Demo{
private String name;
Demo(String name){
this.name = name;
}
private static void show(){
System.out.println(name);
}
public static void main(String[] args){
Demo d = new Demo("lisa");
d.show();
}
}
A、输出lisa
B、输出null
C、输出name
D、编译失败,无法从静态上下文中引用非静态变量name
3、下列关于静态方法的描述中,错误的是( )
A、静态方法指的是被static关键字修饰的方法
B、静态方法不占用对象的内存空间,而非静态方法占有对象的内容空间
C、静态方法内可以使用this关键字
D、静态方法内部只能访问被static修饰的成员
1、阅读下列的程序
class Person{
static{
System.out.println("static");
}
Person(){
System.out.println("构造");
}
}
class Demo{
public static void main(String[] args){
Person p = new Person();
}
}
下列选项中,程序的运行结果是()
A、构造
B、
static
构造
C、static
D、没有输出结果