Java static 关键字专项测试题(含详细答案解析)_第1页
Java static 关键字专项测试题(含详细答案解析)_第2页
Java static 关键字专项测试题(含详细答案解析)_第3页
Java static 关键字专项测试题(含详细答案解析)_第4页
Java static 关键字专项测试题(含详细答案解析)_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Javastatic关键字专项测试题(含详细答案解析)适用范围:Java基础入门、期末考核、面试基础刷题考试时长:40分钟满分:100分一、单项选择题(共10题,每题4分,共40分)1.以下关于static关键字的描述,正确的是()A.static修饰的变量,属于对象,不属于类B.static修饰的方法,可以直接通过类名调用C.静态方法中可以直接访问非静态成员变量D.静态变量每次创建对象都会重新初始化2.在Java中,被static修饰的成员变量,初始化时机是()A.创建对象时初始化B.类加载时初始化C.调用方法时初始化D.程序运行全程不初始化3.以下代码的运行结果是()java

publicclassTest{

staticintnum=10;

publicstaticvoidmain(String[]args){

Testt1=newTest();

t1.num=20;

Testt2=newTest();

System.out.println(t2.num);

}

}A.10B.20C.0D.编译报错4.关于静态方法和成员方法的区别,说法错误的是()A.静态方法属于类,成员方法属于对象B.静态方法中不能使用this关键字C.成员方法可以直接调用静态方法D.静态方法可以直接调用普通成员方法5.以下能够正确修饰静态代码块的特点是()A.每次创建对象都会执行一次B.类加载时只执行一次C.必须手动调用才会执行D.优先于main方法执行6.静态变量的存储位置是()A.栈内存B.堆内存C.方法区D.本地方法栈7.以下代码编译结果是()java

publicclassDemo{

privatestaticStringname;

publicstaticvoidshow(){

System.out.println(name);

}

}A.编译报错,静态方法不能访问静态变量B.编译通过,运行输出nullC.编译通过,运行输出空字符串D.运行异常8.下列关于static工具类的用法,合理的是()A.工具类中定义大量非静态方法B.工具类方法全部定义为静态方法,无需创建对象调用C.静态方法中可以随意使用成员变量D.静态变量必须手动赋值,无默认值9.子类能否重写父类的静态方法()A.可以完全重写B.不可以重写,只能隐藏C.只能重载不能重写D.静态方法不存在继承关系10.代码执行顺序正确的是()A.构造代码块>静态代码块>构造方法B.静态代码块>构造代码块>构造方法C.构造方法>构造代码块>静态代码块D.静态代码块>构造方法>构造代码块二、填空题(共5题,每题4分,共20分)1.static关键字可以修饰________、________、代码块,不能修饰局部变量。2.被static修饰的变量称为静态变量,也叫________变量,所有对象________。3.静态方法中,不能直接使用________、________关键字。4.静态代码块在________时执行,且只执行________次。5.非静态方法可以访问________成员和________成员。三、代码阅读题(共2题,每题10分,共20分)1.写出以下程序的输出结果,并说明原因。java

publicclassStaticTest1{

staticinta=5;

intb=10;

publicstaticvoidmain(String[]args){

StaticTest1s1=newStaticTest1();

StaticTest1s2=newStaticTest1();

s1.a++;

s1.b++;

System.out.println("a="+s2.a);

System.out.println("b="+s2.b);

}

}2.写出以下程序的输出结果,并说明代码执行顺序。java

publicclassStaticTest2{

static{

System.out.println("静态代码块执行");

}

{

System.out.println("构造代码块执行");

}

publicStaticTest2(){

System.out.println("构造方法执行");

}

publicstaticvoidmain(String[]args){

newStaticTest2();

newStaticTest2();

}

}四、编程题(共1题,20分)需求:定义一个学生类Student,要求如下:1.定义静态变量schoolName(学校名称,默认值:阳光中学),所有学生共享该学校名称;2.定义成员变量name、age;3.定义静态方法updateSchool(),用于修改学校名称;4.定义成员方法showInfo(),打印学生姓名、年龄、学校名称;5.在主方法中创建两个学生对象,测试修改学校名称后,两个学生的学校信息同步更新。完整答案及详细解析一、单项选择题答案解析1.答案:B解析:static修饰的内容属于类,不归属对象,可通过类名直接调用。A错误,静态变量属于类;C错误,静态方法只能访问静态成员;D错误,静态变量仅类加载时初始化一次。2.答案:B解析:静态变量、静态代码块均在类加载阶段初始化执行,早于对象创建。3.答案:B解析:num是静态变量,全局共享。t1修改num值为20后,所有对象访问的都是同一个静态变量,因此t2读取结果为20。4.答案:D解析:静态方法无对象上下文,无法直接调用非静态成员方法(非静态方法需要对象调用);普通成员方法拥有对象上下文,可以随意调用静态成员。5.答案:B、D(考试首选B)解析:静态代码块类加载时自动执行、仅执行一次,优先于main方法和对象创建。A是构造代码块特点,C错误,无需手动调用。6.答案:C解析:静态变量、静态方法、常量均存储在方法区;成员变量存堆内存,局部变量存栈内存。7.答案:B解析:静态方法可以直接访问静态变量,静态成员变量有默认初始值,String类型默认null,编译运行均正常。8.答案:B解析:工具类无需要创建对象,所有通用方法定义为静态方法,直接通过类名调用,是开发通用规范。9.答案:B解析:静态方法属于类,不存在重写(重写是对象多态),子类定义同名静态方法只会隐藏父类方法,无多态效果。10.答案:B解析:执行优先级:静态代码块(类加载执行一次)>构造代码块(每次创建对象执行)>构造方法(每次创建对象执行)。二、填空题答案1.成员变量、成员方法2.类、共享同一个静态变量3.this、super4.类加载、15.静态、非静态三、代码阅读题答案解析1.输出结果:a=6b=10解析:变量a是静态变量,全局共享,s1执行a++后值变为6,s2读取的是共享的静态变量值;变量b是普通成员变量,每个对象独立拥有,s1修改自身的b值,不会影响s2的b值。2.输出结果:静态代码块执行构造代码块执行构造方法执行构造代码块执行构造方法执行解析:1.类加载时,静态代码块仅执行一次;2.每创建一个对象,先执行构造代码块,再执行构造方法;3.两次创建对象,构造代码块和构造方法各执行两次。四、编程题参考答案(完整可运行代码)java

publicclassStudent{

//静态变量:全校学生共享

publicstaticStringschoolName="阳光中学";

//成员变量:每个学生独有

privateStringname;

privateintage;

//构造方法

publicStudent(Stringname,intage){

=name;

this.age=age;

}

//静态方法:修改学校名称

publicstaticvoidupdateSchool(StringnewSchool){

schoolName=newSchool;

}

//成员方法:打印学生信息

publicvoidshowInfo(){

System.out.println("姓名:"+name+",年龄:"+age+",学校:"+schoolName);

}

publicstaticvoidmain(String[]args){

//创建两个学生对象

Students1=newStudent("张三",15);

Students2=newStudent("李四",16);

System.out.println("修改前学校信息:");

s1.showInfo();

s2.showInfo();

//静态方法修改学校名称

Student.updateSchool("星光实验中学");

System.out.pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论