java基础知识_第1页
java基础知识_第2页
java基础知识_第3页
java基础知识_第4页
java基础知识_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、1. 以下变量名中非法的是( )。A、 2variableB、_weigthC、$priceD、正确答案:AD说明:java中变量名有字母、数字、$、和下划线(_)组成,且不能以数字开头, A选项以数字开头,D选项包含一个特殊字符“.”2.下列说法正确的是( )A、编写源程序如果源代码中有 import 语句,则该语句必须放在在代码的第一行(不考虑注释和空格) B、如果源代码中有 main() 方法,则该方法必须被放在代码的第一行C、如果源代码中既有属性又有方法,那么属性必须在方法之前声明D、源代码中必须声明属性,但可以不定义方法正确答案:A说明:impo

2、rt 的作用是导入所需包或类,必须是一个类中的第一行可执行代码,所以import之前是可以有注释或空格的B选项:main方法必须写在类中,而不能写在类的外面,所以main方法不可能是一个类中的第一行代码,在main方法之前还有类的定义代码C选项:一个类中可以声明属性和方法,但是属性和方法声明的先后顺序是没有硬性规定的,但是习惯上先声明属性,然后再定义方法,以提高代码的可读性D选项:类是由属性和方法组成的,但是在类的建模过程中,是可以不给类添加属性或方法的。3、一个 Java 程序运行从上到下的环境次序是( ) A、操作系统、Java程序、JRE/JVM、硬件B、JRE/JVM、Jav

3、a程序、硬件、操作系统C、Java程序、JRE/JVM、操作系统、硬件 D、Java程序、操作系统、JRE/JVM、硬件正确答案:C说明:计算机的最底层肯定是硬件,在计算机硬件上运行计算机操作系统,而JVM是运行在操作系统上的,最上面才是运行在JVM上的java程序4.下面代码片段中( ) String String = “String”; System.out.println(String);A、StringB、不知道C、编译出错D、运行出错正确答案:A说明:String 是java中提供的一个字符串的类,但不是java的关键字,String 只不过是一个类名而已,而不是java中

4、关键字,所以是可以用String作为变量名的,题中的第一行代码是声明一个字符串的变量,变量名是String,变量的值是一个字符串“String”,所以此题的正确答案为A5、以下哪些选项不是java的关键字?(BDE)A、ifB、thenC、staticD、DateE、IntegerF、byte正确答案:BDE说明:then不是java关键字 Date 是java中一个类,所以也不是java关键字 Integer 也是java中的一个类,所以Integer也不是java关键字 注意:java中关键字都是小写的,java中的类名都不是java关键字6、执行下列代码后,变量 x 的值是( )x =

5、9, y = 9;x = (y <= x+) ? 1 : 0;A、1B、2C、0D、10正确答案:A说明:X和y的初始值都是9,而三元表达式 y <= x+ ? 1:0 的条件部分(y <= x+) 是将x的当前值(9)与y 的值进行比较,然后x自增,所以条件部分的结果为true,所以整个三元表达式的结果是1,而不是07、System.out.print(4 | 7)输出( ) A. 4 B. 5C. 6D、7E、0正确答案:D说明:4转换成二进制是: 1007转换成二进制是: 111按位 或 运算 : 111运算符 | 的作用是按位运算,所以 4 | 7 的结果 还是 11

6、1,所以答案为D8、以下会产生编译错误的 Java 语句是( )A、if (2 = 3) System.out.println("Hi"); B、if (2 = 3) System.out.println("Hi"); C、if (true) System.out.println("Hi"); D、if (2 != 3) System.out.println(&quo

7、t;Hi");正确答案:B说明:if语句的条件必须是 结果为boolean类型的表达式,“=” 在java中是赋值运算,“=”才是判断两个值是否相等。 所以B选项的条件表达式不正确9、以下不会产生编译错的是( )A、float f = 1.3;B、char c = "a"C、byte b = 257;D、int i= 10;E、boolean b = null;正确答案:DA选项应改为: float f = 1.3f;B选项应改为 char c = a; 双引号是字符串,单引号才是字符C选项 257 超出了byte 类型的范围E选项 boolean 类型只有两个值

8、true,false,而null是引用数据类型的默认值,所以不能将null赋给任何基本数据类型的变量。10、执行下列代码段后,输出结果是( )int i = 9;switch (i) default: System.out.println("default");case 0: System.out.println("zero"); break;case 1: System.out.println("one");case 2: System.out.println("two");A、defaultB、default,

9、 zero C、error D、什么都不显示 正确答案:B说明:i 的值为9,不符合任何一个case 语句,所以执行default语句,但default语句中又没有break,所以会继续执行default下面的case语句,即case 0语句,case 0中有break,所以执行完case 0 中的代码后程序就会跳出switch语句,即打印 default 和 zero11、下列关于类和对象的说法正确的是( )A、类是对一类具有相同的属性和方法对象的描述B、属性用于描述对象的状态C、方法用于表示对象的行为D、基于同一个类产生的两个对象不可以分别设置自己的属性值正确答案:ABC说明:每个对象都可

10、以设置自身属性的属性值, 举个例子,每个人都有“姓名”这个属性,但是每个人名字都各不相同12、下列关于类与对象的说法不正确的是( )。A、对象是类的一个实例B、任何一个对象只能属于一个具体的类C、类与对象的关系和数据类型与变量的关系相似D、一个类只能有一个对象正确答案:D说明:类就是用来创建对象的,类是对象的模板,所以可以用一个模板创建N多个产品,一个类也不可能只能创建一个对象。13、以下关于类和对象的叙述中,正确的是( )。A、类是具有相同属性和服务的一组对象的集合B、类是一个对象模板,用可以产生多个对象C、在客观世界中实际存在的是类的实例,即对象D、类为属于该类的全部对象提供了统一的抽象描

11、述正确答案:ABCD14、下面关于类、对象、属性和方法的叙述中,错误的是(D) A、类是对一类相似对象的描述,这些对象具有相同种类的属性和方法B、属性用于描述对象的状态,方法用于表示对象的行为C、基于同一类产生的两个对象可以分别设置自己的属性值D、执行不同对象的同名方法,其结果必然是相同的 正确答案:D说明:只要是同一类型的对象,就一定具有相同的动作(方法),但是不同对象的相同动作不一定产生相同的结果。如程序员都有敲代码的动作,但是有的程序员敲的java代码,但有的程序员敲的是sql代码。(再回想一下打字游戏中的方法,就算是同一个方法,每次执行的结果也不一定相同,更何况是不同对象的方

12、法)15、下列关于类和对象的说法中不正确的是( )。A、一个类定义了一组大体上相似的对象B、一个类所包含的方法和数据描述一组对象的共同行为和属性C、类是对象的具体化,对象是类的抽象D、在分析和设计时,通常把注意力集中在类上,而不是具体的对象正确答案:C说明:类是抽象,对象是具体的,C选项正好颠倒了16、关于数组,下列说法中不正确的是( )A、数据是最简单的复合数据类型,是一系列数据的集合B、数组的元素可以是值(基本数据类型)、对象或其他数组C、定义数组时,必须分配内存D、一个数组中的所有值都必须是相同的类型正确答案:C说明:如int nums;知识声明一个数组类型的引用,但是并没有创建数组,所

13、以计算机就不会为数组分配内存空间。17、下面数组定义正确的有:(BD )A、String strs = a b c;B、String strs = “a”, “b”, “c”;C、String strs = new String“a” “b” “c”;D、String strs = new String“a”, “b”, “c”;E、String strs = new String3“a”, “b”, “c”;正确答案:BD说明:创建数组的三种方式:方式一:int nums = new int10;方式二:int nums= new int10,20,30; / 这里的中括号中不能指定数组的长

14、度方式三:int nums = 10,20,30;18、下列关于 String 的描述错误的有( )A、String 类型的变量只占用栈的空间B、String 是 java 中的基本数据类型之一C、java 虚拟机会将所有的String类型对象缓存到常量池中,以降低 String 的资源开销D、判断两个字符串是否相等使用“=”正确答案:ABC说明:A:字符串是引用数据类型,所以即会占用栈空间,也会占用堆空间B:String 是引用数据类型C:使用 new 关键字创建的字符串不会存储到常量池,只有通过 String str = “abc”这种方式创建的字符串才会保存到常量池中D:= 是判断两个字

15、符串是否是同一个字符串,equals是比较两个字符串的内容是否一样,所以D的说法没有错19、阅读下面代码片段,下列方法的说法中正确的有( )String str = "碧云天,黄叶地。秋色连波,波上寒烟翠。"String s = str.substring(4,8);A、输出:黄叶地B、输出:黄叶地。秋C、输出:黄叶地。D、输出: ,黄叶地正确答案:C说明:substring方法是截取字符串,从下标为4的字符开始,截取到下标为8的字符之前,字符串的下标从0开始,所以答案为C20、阅读下面代码,执行结果是(C)public class Test public void cha

16、nge(int num)num += 2; public static void main(String args)Test t = new Test();int num = 15;t.change(num);System.out.println(num); A、14B、15C、16D、17正确答案:B参数类型为基本数据类型,所以在main方法中的num和change方法中的两个num不是同一个变量,在change方法无论如何修改变量的值都不会影响到main方法中的num变量,所以main方法中的num变量的值不会改变21、分析如下代码片段,输出结果为( )public class Test

17、public void change(int nums)nums = new int10; public static void main(String args)int nums = new int5;Test t = new Test();t.change(nums);System.out.println(nums.length); A、5 B、10 C、15 D、运行错误正确答案:A说明:虽然参数类型为数组类型,在main方法中会将nums数据的地址传给change方法,但是main方法中的数组的引用和change方法中数组的引用不是同一个,只不过是两个引用都指向了同一个数组。但是在ch

18、ange方法中修改引用所指向的数组,只是修改了change方法中的引用,但是对main方法中的引用没有任何影响。详细见下图数组内存空间代码 Int nums = new int5; 的内存示意图:引用:数组的地址main:0xE3875B堆栈代码:t.change(nums); 内存示意图:内存空间数组引用:数组的地址main:0xE3875Bchange:0xE3875B引用:数组的地址堆栈引用:数组的地址change:0xE3875B数组引用:数组的地址main:0xE3875B栈堆内存空间change方法中代码 nums = new int10; 内存示意图:22、下列程序的输出结果是(

19、D) public class Exl5 public static void main(String args) int a=2, b=8,c=12; while( a-c ) do a+=c; if(c=b+) continue; while(true); System.out.print(a); A、13B、20C、18D、死循环正确答案:D说明:内层循环do-while循环的循环条件为true,且在循环语句中并没有出现break语句,所以内层循环为一个死循环导致整个程序就是一个死循环,此题无需分析每个变量的变化23、下列关于循环的说法正确的是( )A、凡是for循环的地方都可以使用wh

20、ile循环来替换B、凡是while循环都可以用do-while循环来替换C、凡是do-while循环都可以用while循环来替换D、凡是while循环都可以用for循环来替换正确答案:ABCD24、下列关于方法的说法错的有( )A、方法是对象的动作B、一个类既可以定义方法,也可以不定义任何方法C、一个类中不能定义两个方法名相同的方法D、如果一个方法的返回值类型为 void ,那么方法体中就不能出现 return 关键字正确答案:CD说明:一个类中不能定义相同的方法,但是java是以方法的签名来区分两个方法是否相同的,而方法的签名是包含方法名和参数列表两个部分,选项C只说方法名不能相同而忽略的参

21、数列表,所以C选项错误。return 有两个作用,一个是为方法提供一个返回值,需要在return 关键字后加上需要返回的值;另一个作用是结束方法,此时return 是单独使用的,后面不需要加任何表达式。所以返回值类型为void 的方法中是可以有return语句的。25、下列哪些方法不是String类对象的方法( )A、splitB、equalsC、trimsD、startWithE、containsF、indexOfG、charAt正确答案:CD说明:String 有trim方法,作用是去掉字符串两端的空格,而不是trimsString 有startsWith 所用是判断字符串是否以另一个字符

22、或字符串开头,而不是startWith(是startsWith,不是startWith)。26、执行下列代码片段,会输出( )public class Test public static void main(String args)String strA = new String("abc");String strB = "abc"System.out.println(strA = strB);System.out.println(strA.equals(strB); A、true true B、false true C、false false D、编

23、译错误正确答案:D说明:System.out.println(strA = strB); 编译错误,应修改为System.out.println(strA = strB);27、执行下列代码片段,会输出( )public class Test public static void main(String args)String strA = new String("abc");String strB = "abc"System.out.println(strA = strB);System.out.println(strA.equals(strB); A

24、、true true B、false true C、false false D、编译错误正确答案:B说明:使用new关键字创建的字符串对象是不会存入常量池中的,所以执行Stirng strA = new String(“abc”) 后,字符串常量池中并没有字符串 “abc”,代码String strB = “abc”;会首先在字符串常量池中查找有没有“abc”,如果找不到就会在常量池中新建字符串“abc”,所以strA和strB根本不是同一个字符串对象。 28、下列说法哪个正确?  ( )A不需要定义类,就能创建对象 B对象中必须有属性和方法 C属性可以是简单变量

25、,也可以是一个对象 D、属性必须是简单变量正确答案:C说明:A:类就是用来创建对象的,如果没有类就能创建对象,我们就不用费那么大力气学习类和对象了B:类是由属性和方法组成的,但是一个有没有属性,有没有方法都是可以的D:只要是java中有效的、合法的数据类型就可以作为类的属性,包括自定类型29、整型数据类型中,需要内存空间最少的是( ) A、shortB、longC、intD、byte正确答案:D30、在创建对象时必须( ) A、先声明对象,然后才能使用对象B、先声明对象,为对象分配内存空间,然后才能使用对象C、先声明对象,为对象分配内存空间,对对象初始化,然后才能

26、使用对象 D、上述说法都对正确答案:C说明:C选项是java中创建、使用对象的标准步骤,牢记31、在调用方法时,若要使方法改变实参的值,可以( ) A、用基本数据类型作为参数B、用对象作为参数 C、A和B都对 D、A和B都不对正确答案:B说明:参数类型为引用数据类型,则传递给方法的就是对象的地址,所以可以一定程度上修改对象的属性或元素的值。但如果参数类型为基本数据类型,则传递给方法的就是变量的值,而不是变量的地址,就不能修改变量本身的值。32、Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?( ) A、安全性 &

27、#160;          B、多线性            C、跨平台            D、可移植正确答案:B说明:题干提到“并行机制”,关注“并行”两字,四个选项中只有“多线程”中的“多”字勉强能有点关联。33、以下选项中循环结构合法的是(

28、0;  )A、while (int  i<7)      i+;     System.out.println("i is"+i);  B、int  j=3; while(j)    System.out.println("j  is "+j); C、int &#

29、160;j=0; for(int  k=0; j + k !=10; j+,k+)      System.out.println("j is "+ j + "k  is "+ k); D、int  j=0; do      System.out.p

30、rintln("j  is"+j+);      if (j = = 3)  continue loop;   while  (j<10);正确答案:C说明:A:不能在while循环中声明变量,只有for循环支持此种写法, B:java中循环条件的表达式结果必须为boolean类型,j 为int 类型,所以编译不通过 C:java中没有loop34关于以下程序段,正确的说法是( ) 1. S

31、tring  s1=”abc”+”def”;2. String  s2=new  String(s1);3. if(s1= =s2)4. System.out.println(“= = succeeded”);5. if (s1.equals(s2)6. System.out.println(“.equals()  succeeded”); A、行4与行6都将执行        

32、0;   B、行4执行,行6不执行 C、行6执行,行4不执行         D、行4、行6都不执行正确答案:C说明:s1是常量池中的对象,s2是堆中的对象,所以两个对象不是同一个对象,但是两个对象中的内容一样35、设有数组的定义int a = new int3,则下面对数组元素的引用错误的是(   )。 A、a0;B、aa.length-1; C、a3;  

33、0;       D、int i=1; ai; 正确答案:C说明:数组长度为3 ,所以数组最后一个元素的下标为2 36、Java语言使用的字符码集 ( )A、ASCII B、UTF-8 C、GBKD、Unicode正确答案:D37 阅读下面代码片段,将输出( )public class Test public static void main(String args)String str = "Hello,my friend!"str.substring(6,15);System.out.println(str); A、my friend B、my friend!C、Hello,my friend D、Hello,my friend!正确答案:D说明:此题如果审题认真,根本不用去查字符串的下标,因为字符串的所有方法都不会修改原字符串,所以就算调用了字符串的substring方法,但是并没有给str重新赋值,所

温馨提示

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

评论

0/150

提交评论