102.JAVA关键字
- 格式:pdf
- 大小:156.82 KB
- 文档页数:6
11.可以用private或protected修饰内部类。
(对)2.非匿名内部类也可以实现接口。
(对)3.编译器会给内部类一个名字。
(对)4.匿名类可以是抽象类。
(错)5.一个方法使用throw关键字声明要产生的若干个异常。
(错)解析:一个方法声明时可以使用throws关键字声明要产生的多个异常,并在该方法体中具体给出产生异常的操作,使用throw关键字只能抛出一个异常。
6.类加载器加载程序运行所需要的所有类,由网络系统导入的指定类总是先被加载。
(错)解析:类加载器加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性。
7.调用System.gc()方法不能保证JVM立即进行垃圾收集,而只能是建议。
(对)8.friendly关键字是Java语言的访问控制修饰符。
(错)解析:Java语言的访问控制修饰符关键字为public、protected和private。
9.maxElements是一个成员变量,声明为:“public static final int maxElements=100”。
(对)10.实例变量在使用new Xxxx()创建该类的实例时被创建,而其生存期和该类的实例对象的生存期相同。
(对)11.在构造方法中如调用super()语句,则必须使其成为构造方法中的第一条语句。
(对)12.重写的方法的访问权限不能比被重写的方法的访问权限高。
(错)解析:重写的方法的访问权限不能比被重写的方法的访问权低。
13.类变量在该类被加载时被创建,不能用new Xxxx()创建,所有该类的实例对象共享类变量,其生存期是类的生存期。
(对)14.调用sleep()方法可以使一个线程停止运行。
(对)15.一个新线程启动start()方法,表示线程可为JVM的线程调度而不表示它可以立即运行。
(对)16.垃圾收集器的过程在Java程序的生存期中是自动的,不需要分配和释放内存,也避免了内存泄漏。
《JAVA程序设计》填空题1. Java是目前最广泛的网络编程语言之一。
2. Java具有简单、面向对象、稳定、与平台无关、解释型、多线程、动态等特点。
3. JDK开发java程序需三个步骤,分别为编写源文件,编译java源程序,运行java源程序。
4. Java具有简单、面向对象、稳定、与平台无关、解释型、多线程、动态等特点。
5.编写Java程序,可以使用一个文字编辑器来编写源文件。
6.把编写好的Java源文件保存起来,原文件的扩展名必须是java 。
7.用JDK编译Java源程序,使用的命令是Javac ,编译源文件得到字节码文件。
8. Java源程序编译后生成的字节码文件扩展名为class 。
9.用JDK运行Java应用程序,使用的命令是Java。
10. Java程序分为两类,即Java应用程序和Java小应用程序。
11.用JDK工具,显示Applet程序运行结果的命令是appletviewer。
12. Java程序分为两类,即Java应用程序和Java Applet小应用程序。
13.一个Java源程序是由若干个类组成。
14.class 是Java的关键字,用来定义类。
15. Java应用程序中有多个类时,java命令后的类名必须是包含了main 方法的那个类的名字。
16.一个Java应用程序必须且只有一个类含有main 方法。
17.在一个Java应用程序中main方法必须被说明为public static void。
18. Java中所有程序都使用方法,应用程序以main 方法开始。
19. Java源文件中有多个类,但只能有一个类是public类。
20.一个Java Applet 不再需要main方法,但必须有一个类扩展了Applet类。
21. Java Applet 必须有浏览器来运行。
22.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
23. Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。
Java基础知识测试(含答案)共40道选择题,每题2.5分。
多选题有错则全错,全对才满分.单选题:1.下列哪个声明是错误的?(b)A.inti=10;B.floatf=1.1;C.doubled=34.4;D.byteb=127;2.下面哪个不是java中的关键字?(c)A.publicB.trueC.mainD.cla3.下面哪个语句不会产生编译错误?(c)A.floata=2.0;B.charc=”a”;C.byteb=25;D.booleand=0;4.下面程序哪个语句是正确的cA.bytea=0,b=3;bytec=a+b;B.hort=23;=+12;C.hort=23;+=12;D.floa tf=23+23.23;5.byte类型的大小是aA.-128~127B.-228~128C.-255~256D.-255~2556.下面程序执行的结果是?(b)publicclaTet(){publictaticvoidmain(String[]arg){Sytem.out.println(“”+a+1);}}A.98B.a1C.971D.1977.下面程序执行的结果是?(b)inti=100;while(true){If(i++>100)break;Sytem.out.println(i);}A.100B.101C.102D.1038.下面程序执行的结果是?(c)inta=2;witch(a){cae1:a+=1;break;cae2:a+=2;cae3:a+=3;break;cae4:a+=4;break;default:a=0;}Sytem.out.println(a);A.5B.6C.7D.89.下面程序的运行结果是(d)inta=3,b=1;if(a==b)Sytem.out.println(\A.a=1B.a=3C.编译错误D.正常运行但没有输出10.下面程序的运行后,a,b,c的值正确的是:binta=1,b=2;intc=(a+b>3a++:++b);A.a=2,b=3B.a=1,b=3C.a=1,b=2D.c=211.下面程序的运行结果bpublicclaDemo{publictaticintfun(intc){returnc+=2;}publictaticvoidmain(String[]arg){inttemp=fun(2);Sytem.out.println(temp);}}A.2B.4C.6D.812.下面程序的运行结果,哪个是正确的bintb=1;while(++b<3)Sytem.out.println(\A.程序将会进入死循环导致无输出B.输出一次LOOPC.会输出多次LOOPD.程序中含有编译错误13.下面数组定义错误的是(d)CA.int[]arr={23,45,65,78,89};B.int[]arr=newint[10];C.int[]arr=newint[4]{3,4,5,6};D.int[]arr={a,23,45,6};14.下面程序执行的结果是?(d)int某=1,y=1;if(某++==2&++y==2){某=7;}Sytem.out.println(\,y=\A.某=1y=2B.某=7y=1C.某=7y=2D.某=2y=215.下面不属于基本数据类型的是(b)A.intB.doubleC.longD.int[]16.给出下列代码:booleana=fale;booleanb=true;booleanc=(a&&b)&&(!b);intreult=(c==fale)1:2;执行完后,c与reult 的值是(a).A.fale和1B.true和2C.true和1D.fale和217.阅读下列代码:publicclaTet{publictaticvoidmain(String[]arg){intf=12;inti=3;Sytem.out.pr intln(f/i);}}程序运行结果为(c).A.3B.3.0C.4D.4.018.下面程序执行的结果是?(c)booleanb=true;if(b=fale){Sytem.out.println(\}eleif(b){Sytem.out.println(b);}eleif(!b){Sytem.out.println(\}eleSytem.out.println(\A.aB.tru eC.cD.d19.下面程序执行的结果是?(d)int某=2,y=3;witch(某){default:y++;cae3:y++;cae4:y++;}Syetem.out.println(\A.3B.4C.5D.638.下面哪几段代码不会出现编译错误(ac)A.booleanb=true;booleanb2=true;if(b==b2){Sytem.out.println(“Sotrue”);}B.inti=0;if(i){Sytem.out.println(“Hi”);}C.inti=1;intj=2;if(i==1||j==2)Sytem.out.println(“OK”);D.in ti=1;intj=2;if(i==1&|j==2)Sytem.out.println(“OK”);39.下面关于函数描述正确的是(ad)A.函数是对功能代码块的封装B.函数没有返回值的时候什么都不用写C.没有返回值的函数,不能有return语句D.函数是可以没有形参的40.下面关于循环描述正确的是(ad)A.while循环先判断循环条件,后执行循环操作B.while至少会执行一次C.do-while先进行循环条件判断,后执行循环操作D.do-while循环至少执行一次,后进行循环判断。
abstract - 1 - boolean - 2 - break - 2 -byte - 2 -case - 3 - catch - 3 -char - 4 -class - 4 - continue - 5 - default - 5 -do - 6 - double - 6 - else - 6 - extends - 6 - false - 7 -final - 7 - finally - 7 - float - 8 -for - 8 -if - 8 - implements - 9 - import - 9 - instanceof - 9 - int - 9 - interface - 10 - long - 10 -native - 10 -new - 11 -null - 11 - package - 11 - private - 11 - protected - 12 - public - 12 - return - 13 - short - 13 -static - 13 - super - 14 - switch - 14 - synchronized - 15 - this - 16 -throw - 16 - throws - 16 - transient - 17 -try - 17 -true - 18 -void - 18 - volatile - 18 - while - 18 -1.abstractabstract 关键字可以修改类或方法。
abstract 类可以扩展(增加子类),但不能直接实例化。
abstract 方法不在声明它的类中实现,但必须在某个子类中重写。
-示例-public abstract class MyClass{}public abstract String myMethod();-注释-采用abstract 方法的类本来就是抽象类,并且必须声明为abstract。
Java中的两个关键字——super、thisJava中的两个关键字——super、this ⼀、supersuper 是java中⽅的⼀个关键字,⽤它可以引⽤⽗类中的成员:super可⽤于访问⽗类中定义的属性super可⽤于调⽤⽗类中定义的成员⽅法super可⽤于在⼦类构造器中调⽤⽗类的构造器使⽤super关键字注意事项:1、当⼦类和⽗类都有同名的属性时,在⼦类中如果要使⽤⽗类的属性 super . 属性2、 super只能应⽤在成员⽅法和构造⽅法中,不能⽤在静态⽅法中(和this是⼀样的)3、如果在构造⽅法中使⽤必须放在第⼀⾏4、在构造⽅法中this()和super()不能同时出现super没有什么需要解释的地⽅,我们⽤代码来看看super具体的⼀些强⼤功能吧⽰例⼀、使⽤super调⽤基类的属性:public class Father { int num=20;}public class Child extends Father{ int num; public void print(){ num=10; super.num=30; System.out.println("num="+num); System.out.println("="+super.num); }}public class Test { public static void main(String[] args) { Child xm=new Child(); xm.print(); }}运⾏结果:⽰例⼆、使⽤super调⽤基类中的构造⽅法:public class Father { int num; public Father() { System.out.println("⽗类中的⽆参构造⽅法---"); } public Father(int num){ System.out.println("⽗类中的有参的构造⽅法----"+num); }}public class Child extends Father{ int num; public Child() { super(30); System.out.println("⼦类⽆参构造⽅法---"); } public Child(int num) { this.num = num; System.out.println("⼦类中的有参的构造⽅法---"+num); }}解释⼀下上⾯的这段代码:在Child类中的第⼀个构造函数⾥⾯,super(30);它会去调⽤⽗类中嗲有⼀个int型参数的构造⽅法。
关键字作用访问控制private私有的protected受保护的public公共的类、方法和变量修饰符abstract声明抽象class类extends继承、扩展final最终、不可改变implements实现interface接口native本地new新,创建static静态strictfp严格,精准synchronized线程、同步transient短暂volatile易失程序控制语句break跳出,中断continue继续return返回do运行while循环if如果else否则for循环instanceof实例switch观察case返回观察里的结果default默认错误处理try捕获异常catch处理异常throw抛出一个异常对象throws声明一个异常可能被抛出包相关import引入package包基本类型boolean布尔型byte字节型char字符型double双精度float浮点int整型long长整型short短整型null空TRUE真FALSE假变量引用super父类,超类this本类void无返回值保留字goto跳转const静态native本地详细说明private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。
只能在声明 private(内部)类、方法或字段的类中引用这些类、方法或字段。
在类的外部protected 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。
可以在声明 protected 类、方法或字段的类、同一个包中的其他任何类以及任何子类(无public 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。
可能只会在其他任何类或包中引用 public 类、方法或字段。
所有类成员的默认访问范围都是abstract关键字可以修改类或方法。
abstract类可以扩展(增加子类),但不能直接实例化。
abstract方法不在声明它的类中实现,但必须在某个子类中重写。
1.Java是一种严格的面向对象语言,编写的所有代码都限定在类内完成。
2.Java中引入包的概念是为了减少命名冲突,扩大名字空间。
3.Java既是开发环境,又是应用环境,它代表了一种新的计算模式。
4.Java中的数组是用来表示一组同类型数据的数据结构,且数组是定长的,初始化以后,数组的大小不会再动态变化。
5.Java中的字符串是内存中连续排列的一个或多个字符。
6.Java的封装性体现在将方法和数据封装在一个类中。
7.Java中的每种事件类都有一个对应的接口,接口中申明了一个或多个抽象的事件处理方法,凡是需要接收并处理事件类对象的类,都需要实现相应的接口。
9.在Java中,使用构造函数是生成对象的唯一方法。
10.在Java中,this用于指代本类,super用于指代其父类。
11.在Java中,n维数组只是n-1维数组的数组。
12.在Java中,复合语句是一对花括号“{”和“}”括起来的语句组,也称为块。
从这种意义上说,类定义和方法定义都可以看作一个块。
13.在Java中,环境变量classpath将指示javac编译器如何查找所需要的对象。
14.如果Java文件中包含一个公有类,则该文件的文件名必须与该公有类一致。
15.语句是Java最小的执行单元,各语句间以分号分隔。
16.一个Java源文件可包括一个package语句和任意多个import语句,但package语句必须在前面。
17.Object是Java程序中所有类的直接和间接父类,也是类库中所有类的父类,处在类层次的最高点。
18.JVM的代码格式为压缩的字节码,因而效率较高。
19.OOP技术把问题看成是相互作用的事物的集合,用属性来描述事物,而把对它的操作定义为方法。
20.在访问权限修饰符中,protected修饰符和无修饰符时的根本区别仅在于不同包的子类是否可以对其访问。
21.static成员与类相对应,不需要创建对象就可使用。
22.在while循环中,循环体有可能一次也不执行。
Java关键字(keywords)abstract default if private thisboolean do implements otected throwbreak double import public throwsbyte else instanceof return transientcase extends int short trycatch final interface static voidchar finally long strictfp volatileclass float native super whileconst for new switchcontinue goto package synchronized以上是java specifications中定义的keywords,一共48个,其中常见的三个看似是关键字的true, false, null,都不是关键字,而是作为一个单独标识类型。
其中,不常用到的关键字有:const,goto,native,strictfp,transient,volatile。
const和goto为java中的保留字。
1. nativenative是方法修饰符。
Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。
因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于借口方法。
Native可以和其他一些修饰符连用,但是abstract方法和Interface方法不能用native来修饰。
Example:Java代码1.public interface TestInterface {2. void doMethod();3.}4.public class Test implements TestInterface {5. public native void doMethod();6. private native int doMethodB();7.public native synchronized String doMethodC();8.static native void doMethodD();9.}为什么需要使用native method?请参考:/topic/72543 java Native Method初涉2. strictfp修饰类和方法,意思是FP-strict,精确浮点,符合IEEE-754规范的。
一、单选题1、下面关于变量及其作用范围的陈述哪个是不对的?()A.实例变量是类的成员变量。
B.实例变量用关键字static声明。
//Static 声明的是类变量C.在方法中定义的局部变量在该方法被执行时创建。
D.局部变量在使用前必须被初始化。
2、下面哪条语句把方法声明为抽象的公共方法?()A.public abstract method();B.public abstract void method();C.public abstract void method(){}D.public void method() extends abstract;3、哪个是将一个十六进制值赋值给一个long型变量?()A.long number = 345L;B.long number = 0345;C.long number = 0345L;D.long number = 0x345L;4、下面的哪个赋值语句是不对的?()A.float f = 11.1;B.double d = 5.3E12;C.double d = 3.14159;D.double d = 3.14D;5、下面哪个是不合法的标识符?()A.$persons;B.TwoUsers;C.*point;D._endline;6、若在某一个类定义中定义有如下的方法:final void aFinalFunction( );则该方法属于()。
A、本地方法B、静态方法C、最终方法D、抽象方法7、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的()。
A、public static void main()B、public static void main(String[ ] args)C、public static int main(String[ ] args)D、public void main(String arg[ ])8、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。