COREJAVA第一阶段笔试题_答案(2)
- 格式:doc
- 大小:48.00 KB
- 文档页数:6
《CoreJava》理论试题题库答案版得分阅卷人一、单选题(20题,共38分)1、(2分)基本数据类型float的包装类是哪项,(C) A( Integer B( DoubleC( Float D( Character 2、(2分)使用下列哪个修饰符定义的类不能被继承( C ) A. static B. abstract C. final D. Native3、(1分)下列类的定义,错误的是( D ) A. public class test extends Object{……} 学院班级姓名 B. final class operators{……}密封线内不要答题 C. class Point{……}D. void class Point{……}4、(2分)静态内部类是指使用(B)来修饰的内部类 A(final B.staticC.publicD.protected5、(2分)匿名内部类的特点下面错误的是(b) A、匿名内部类没有构造方法B、匿名内部类是静态的C、它主要用于继承其他类或实现接口D、它是一个特殊的局部内部类6、(2分)下列哪个类不是java基本数据类型的封装类,( C )A. Integer;B. Byte;C. String;D. Character;7、(1分)基本数据类型char的包装类是哪项,( D )A intB charC StringD Character8、(2分)阅读以下程序代码,作出分析:public class Test { public static void main(String[]args) { boolean b = true; b=new Apple().equals(new Apple()); System.out.println(b); }}class1 / 49Apple{}该程序的输出结果是:(A)A(falseB(trueC. 不确定结果D. 编译错误9、(2分)List接口的特点是哪项,(C)A(不允许重复元素,元素无顺序B(不允许重复元素,元素无顺序c(允许重复元素,元素有顺序D(允许重复元素,元素无顺序10、(2分)关于HashMap和HashTable的说法错误的是( D ): A. HashMap和HashTable都是Map接口的实现类B. HashTable是线性安全的C. HashMap是线性不安全的D(HashTable要比HashMap的性能高一点11、(2分)当程序调用一个null对象的方法或属性时,这将引起(A )异常A NullPointerExceptionB NumberFormatExceptionC IndexOutOfBoundExceptionD 以上都可能12、(2分)局部内部类是定义在(B)A.外部类里面 B、外部类的某个方法里面 C、通过实现接口来实现 D、都可以13、(1分)创建一个数据库对象的关键字是( D )A、alterB、newC、addD、create 14、(2分):在数据库中,下列表示整型数据类型的是(B)。
COREJAVA第一阶段笔试题_答案(2)选用的题目如下:01.数组有没有length()这个方法? String有没有length()这个方法?数组没有length方法数组提供的获得元素个数的方式是通过访问数组的length属性String也就是字符串类型有length()用于返回字符串的字符个数也就是俗话说的字数但是字符数和字节数是不同的int num = str.getBytes().length - str.length();可以得到一个字符串当中有多少个汉字02.Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?为什么?Overload:方法重载指发生在同一类当中,方法名字相同,参数列表(类型、个数、顺序)不同的两个方法(体现静态多态)Override:方法覆盖发生在有继承关系的两个类之间子类类型当中访问控制权限修饰符不能更严格抛出的异常种类不能更广泛方法重载的时候可以改变返回值的类型return type maybe different因为方法名字和参数列表一旦确定在一个类当中就可以唯一确认一个方法所以即便方法返回类型不同也能判断出来调用的是哪个方法,因而不会出错03.== 与equals 有何区别?== 是Java当中的运算符用于比较两个引用当中存放的内存地址也就是内存指向是否相同或者说用于判断两个对象是否是同一个对象equals()是Java当中所有类型的父类既Object类当中的一个方法用于任何一个子类类型通过覆盖equals从而给这个类型提供另外一种比较规则(因为java 当中没有运算符重载)很多人看到equals就认为是比较内容的方法其实不然在Object 类当中equals方法当中也是采用==实现比较04abstract class和interface有什么区别?抽象类当中可以定义普通的属性可以定义普通的方法(有完整方法体的方法), 抽象类依然是Object的子类类型interface从某种意义上应当理解成为更为纯粹的抽象类当时其中只能定义抽象方法和常量接口当中定义的变量默认就是常量接口当中定义的方法默认就是抽象方法接口的概念没有父类换言之接口不是Object类型的子类类型05.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?接口可以继承接口而且可以多重继承在继承多个接口的同时子接口等价于两个接口的方法汇总抽象类可以实现接口因为抽象类当中可以有方法的具体实现抽象类可以继承实体类但是如果实体类继承抽象类就必须实现当中所有的抽象方法否则自身也得变为抽象类06.作用域public,private,protected,以及不写时的区别。
2024年招聘Java开发工程师笔试题及解答(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是Java中的基本数据类型?A、intB、floatC、StringD、boolean2、在Java中,以下哪个关键字用于声明一个类?A、classB、structC、enumD、interface3、关于Java中的String类,以下描述正确的是:A. String类是final类,无法继承。
B. String类是可变的,可以对其进行修改。
C. String类是可变的,每次对String对象的操作都会创建新的对象。
D. String类是不可变的,每次对String对象的操作都会创建新的对象。
4、关于Java中的垃圾回收机制,以下描述不正确的是:A. 垃圾回收器可以自动回收不再使用的对象占用的内存空间。
B. 垃圾回收机制是Java自动管理内存的一种方式,程序员无需手动释放内存。
C. 垃圾回收器会定期检查并回收那些不再有引用的对象。
D. 堆内存中的所有对象在不再有引用后,会自动关联到垃圾回收机制中,即成为垃圾,等待垃圾回收器来回收。
5、以下哪个Java版本正式支持模块化系统“Java Platform Module System”(JPMS)?A、Java 8B、Java 9C、Java 10D、Java 116、在Java中,以下哪个关键字用来声明一个线程?A、threadB、runC、ThreadD、start7、以下哪个关键字是Java中用于实现多线程的同步机制?A. synchronizedB. transientC. volatileD. static8、以下哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. friendly9、在Java中,以下哪个选项不是访问修饰符?A. publicB. privateC. protectedD. friend 10、下列关于Java异常处理的说法中,哪一个是正确的?A. Java程序必须捕获并处理所有抛出的异常。
Java常见笔试题及答案一、单选择题(每小题2分,共10分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A. .javaB. .classC. .htmlD. .exe2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。
A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。
A. start( )B. stop( )C. init( )D. paint( )4、不允许作为类及类成员的访问控制符的是( C )。
A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )二、填空题(每空格1分,共20分)1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。
2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 Applet、类的子类并且存储该源程序文件的文件名为MyApplet。
13、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用2 字节内存空间。
Java笔试题及答案一、单项选择题1.Java是从语言改进重新设计;A.AdaB.C++C.PasacalD.BASIC答案:B2.下列语句哪一个正确A. Java程序经编译后会产生machine codeB. Java程序经编译后会产生byte codeC. Java程序经编译后会产生DLLD.以上都不正确答案:B3.下列说法正确的有A. class中的constructor不可省略B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行D.一个class只能定义一个constructor答案:C详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值;package net.study;public class TestConStructor{public TestConStructor{System.out.println"constructor";}public void TestConStructor{System.out.println"not constructor";}public static void mainString args{TestConStructor testConStructor = new TestConStructor;System.out.println"main";testConStructor.TestConStructor;}}4.提供Java存取数据库能力的包是A.java.sqlB.java.awtngD.java.swing 答案:A5.下列运算符合法的是A.&&B.<>C.ifD.:=答案:A详解:java 中没有<> := 这种运算符, if else不算运算符6.执行如下程序代码a=0;c=0;do{--c;a=a-1;}whilea>0;后,C的值是A.0B.1C.-1D.死循环答案:C详解:Do while 中的语句是至少要执行一次的; 执行顺序为:do 中的语句,然后价差while 条件,如果为false,则终止;如果为true,则继续执行Do中的语句,然后再检查while条件,如此循环;7.下列哪一种叙述是正确的A. abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{ }包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D详解:abstract不能修饰字段;既然是抽象方法,当然是没有实现的方法,根本就没有body部分;8.下列语句正确的是A.形式参数可被视为local variableB.形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:A详解:形参可以看成方法中的局部变量; 传递的是对象引用9.下列哪种说法是正确的A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二、多项选择题1.Java程序的种类有A.类 ClassB.AppletC.ApplicationD.Servlet2.下列说法正确的有A. 环境变量可在编译source code时指定B.在编译程序时,所能指定的环境变量不包括 class pathC. javac一次可同时编译数个Java源文件D. javac.exe能指定编译结果要置于哪个目录directory答案:BCD3.下列标识符不合法的有A.newB.$UsdollarsC.1234D.car.taxi答案:ACD解释:java 变量命名规则:1. 大小写有别,例如 a 和 A是两个变量 2. 长度任意 3. 可以任何字母开始,另外还可以以"_"和"$"开始,一般"$"是很多代码生成器用的,人工写出来的代码不鼓励"_" "$" 4. 除了第一个字符,后面可以跟任何字母,数字,_和$ new 是关键字不行; 不能以数字开头; 不用有“.”这种符号4.下列说法错误的有A.数组是一种对象B.数组属于一种原生类C. int number=={31,23,33,43,35,63}D.数组的大小可以任意改变答案:BCD解释:数组不是原生类:int double boolean float byte short long char ,初始化多大就是多大5.不能用来修饰interface的有A.privateB.publicC.protectedD.static答案:ACD解释:interface 是public的, 加不加都是public6.下列正确的有A. call by value不会改变实际参数的数值B. call by reference能改变实际参数的参考地址C. call by reference不能改变实际参数的参考地址D. call by reference能改变实际参数的内容答案:ACD7.下列说法错误的有A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:CD解释:原来答案中包含A,但是在 JDK1.5中,这样写是不会出错的,只不过会有警告而已;类方法中当然可以条用其它的方法,比如system.out ; 当然你也可以new Object,调用一下object.toString8.下列说法错误的有A. Java面向对象语言容许单独的过程与函数存在B. Java面向对象语言容许单独的方法存在C. Java语言中的方法属于类中的成员memberD. Java语言中的方法必定隶属于某一类对象,调用方法与过程或函数相同答案:ABC解释:java全部完全面向对象的9.下列说法错误的有A.能被java.exe成功运行的java class文件必须有main方法B. J2SDK就是Java APIC. Appletviewer.exe可利用jar选项运行.jar文件D.能被 Appletviewer成功运行的java class文件必须有main方法答案:BCD解释:A正确main方法是入口 BJ2SDK当然不仅仅包含java API C jar选项是java.exe 的选项 D Appletviewer是运行applet的, applet 不用main方法,继承applet类即可;三、判断题1.Java程序中的起始类名称必须与存放该类的文件名相同;答案:正确2.Unicode是用16位来表示一个字的;答案:正确3.原生类中的数据类型均可任意转换;答案:错误1.分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句;答案:BOOL : if a or ifaint : if a == 0float : const EXPRESSION EXP = 0.000001if a < EXP && a >-EXPpointer : if a = NULL or ifa == NULL。
1.1Java软件开发工程师入职测试题及参考解答(第1部分)1.1.1基础知识1、C++或Java中的异常处理机制的简单原理和应用。
当Java程序违反了Java的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。
违反语义规则包括2种情况:(1)一种是Java类库内置的语义检查(RuntimeException或者UnCheck形式异常)理解:什么是RuntimeException或者UnCheck形式异常?例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException等。
(2)只需要捕获RuntimeException以外的异常(3)另一种情况就是Java允许程序员扩展这种语义检查程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。
当然,所有的异常都是ng.Thowable(Exception)的子类。
2、Java的接口和C++的虚类的相同和不同处。
理解:什么是接口?为什么要提出接口?(描述抽象问题、达到多重继承的效果)接口如何定义?如何实现接口?接口和抽象类有什么不同?由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。
与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。
当一个类实现了接口以后,该类要实现接口里面所有的方法,并且接口里面的属性在默认状态下面都是public static、所有方法默认情况下是public形式的,一个类可以实现多个不同的接口。
3、垃圾回收的优点和原理、并考虑2种回收机制。
理解:什么是JVM?在Java平台中为什么要提出JVM(作用)?JVM中的垃圾回收机制?垃圾回收回收的时机?为什么要关闭数据库连接对象、文件流、socket流等对象?(1)Java语言中一个显著的特点就是引入了垃圾回收机制这使C++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。
CoreJava测试题班级:____ 姓名:____ 分数:____一、单选题1.J2SE作为一种应用和开发环境,提供了一整套实用工具,其中()是Java语言的编译工具。
(D)A.javaB.javadocC.javapD.javac2.Java中,以下循环语句的执行次数是(C)。
int x=37;int y=3;while(y<=x){y*=y;}A.0B. 1C. 2D. 33.下面Java程序的输出结果是(C)。
public static void main(String[] args){final int A=4;int a=2;switch(a*2){case A : System.out.print (a);default : System.out.println(a*2);}}A. 2B. 4C.24D.报错4.Java中,类Test定义如下:class Test{int m;public static void fun(){…}}如果希望fun()方法能够引用成员变量m,那么需要将第2行代码改为(C)。
A.p rotected int m;B.public int m;C.static int m;D.p rivate int m;5.任何一个Java程序都默认引入了一个包,这个包名是(A)。
ngB.java.objectD.java.io6.Java中默认的处理异常方法为(A)。
A.显示异常信息,停止程序运行B.显示异常信息,不停止程序运行C.不显示异常信息,但停止程序运行D.什么都不做7.Java中,欲构造ArrayList类的一个实例,此类继承了List接口,下列正确的方法是(B)。
A.ArrayList myList = new Object();B.List myList = new ArrayList();C.ArrayList myList = new List();D.List myList = new List();8.Java中,在任何方法返回前,绝对要执行的代码应放在(C)块中。
CoreJava考试题1、面向对象的特征有哪些方面? 【基础】答:面向对象的特征主要有以下几个方面:1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3)封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4)多态性:多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2、作用域public,private,protected,以及不写时的区别?【基础】答:区别如下:作用域当前类同包子孙类其他public √√√√第2 页共59 页protected √√√×default √√××private √×××不写时默认为default。
3、String 是最基本的数据类型吗? 【基础】答:不是。
4、float 型float f=3.4是否正确? 【基础】答:不正确;精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 。
5、语句float f=1.3;编译能否通过?【基础】答:不能;应该用强制类型转换,如下所示:float f=(float)1.3;。
java笔试题及答案.docjava笔试题及答案有了下面java笔试题及答案,进行java笔试时就容易多了,请您对下文进行参考:1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域当前类同一package子孙类其他package public 7 7 7 7 protected 7 7 7 X friendly 7 7 X X private 7 X X X 不写时默认为friendly2、Anonymouslnner Class (匿名内部类)是否可以exte nd s (继承)其它类,是否可以imple ment s (实现)i nterf ace (接口)答:匿名的内部类是没有名字的内部类。
不能exte n ds (继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现3、Sta ti cNestedC las s 和Inner Clas s 的不同答:Nes tedC lass (一般是C+ +的说法),In nerClass (—般是JAVA的说法)。
J ava内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。
注:静态内部类(I nn erClass)意味着1创建一个st atic内部类的对象,不需要一个外部类对象,2不能从一个st atic内部类的一个对象访问一个外部类对象4、和的区别答:是位运算符,表示按位与运算,是逻辑运算符,表示遷辑与(and )5、Coll ect ion 和Col lect ions 的区别答:Coll ect ion是集合类的上级接口,继承与他的接口主要有Set和List.Col lections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作6、什么时候用assert答:asserti on (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。
1.Java中包含哪些基本数据类型?String是最基本的数据类型吗?基本数据类型包括byte、int、char、long、float、double、boolean和short。
ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。
2.int 和Integer 有什么区别?如何进行相互转化?Java 提供两种不同的类型:引用类型和原始类型(primitive type)。
int是java的原始数据类型,Integer是java为int提供的封装类。
Java为每个原始类型提供了封装类。
原始类型封装类boolean ng.Booleanchar ng.Characterbyte ng.Byteshort ng.Shortint ng.Integerlong ng.Longfloat ng.Floatdouble ng.Double引用类型和原始类型的行为完全不同,并且它们具有不同的语义。
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题;数据的存储结构;当引用类型和原始类型用作某个类的实例数据时所指定的缺省值(对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关)。
JDK5.0+版本中可以自动进行转化。
3.String 和StringBuffer(或StringBuilder)的区别JA V A平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。
这个String类提供了数值不可改变的字符串。
而这个StringBuffer类提供的字符串进行修改。
当你知道字符数据要改变的时候你就可以使用StringBuffer。
典型地,你可以使用StringBuffers来动态构造字符数据。
4.写出Java异常体系类图,并说明运行时异常(RuntimeException)与一般异常(Exception)有何异同?Error和Exception有什么区别?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机(JVM)的通常操作中可能遇到的异常,是一种常见运行错误。
Java基础考试题班级:__________姓名:___________日期:_____________一、笔试(45题,每题2分)1) 分析下面的Java程序段,编译运行后的输出结果是()。
publicclassTest{publicstaticvoidchangeString(StringBuffersb){sb.append("stringbuffer2");}publicstaticvoidmain(String[]args){StringBuffersb=newStringBuffer("stringbuffer1");changeString(sb);="+sb.toString());}}A. sb=stringbuffer2stringbuffer1B. sb=stringbuffer1C. sb=stringbuffer2D. sb=stringbuffer1stringbuffer22) 在Java中,包有多种用途,但不包含()。
A. 将类组合成较小的单元,便于使用B. 有助于避免命名冲突C. 有助于提高运行效率D. 允许在更广的范围内保护类、数据和方法3) 在Java中,如果要在字符串类型s="java"中,得到字母'v'出现的位置,选()语句。
A)s.matches('v');B)s.charAt('v');C)s.indexOf('v');D)s.substring('v');4)下列代码运行后,变量c的值是()。
inta=15,b=10;doublec=a/b;a)1.5b)1.0c)1d)05)main方法如下所示,该程序的运行结果是()。
publicstaticvoidmain(String[]args){inti=0;}a)输出0b)输出1c)编译错误d)运行时出现异常6)使用类的步骤包括以下三步,它们的先后顺序是()。
java笔试题及答案题目:Java 笔试题及答案一、基础语法1. 请解释 Java 中的接口和抽象类的区别。
答:接口(Interface)是一种完全抽象的类,它允许声明方法,但不允许实现这些方法。
接口中的方法默认是 public 和 abstract 的,且从 Java 8 开始,接口也可以包含默认方法和静态方法。
抽象类(Abstract Class)可以包含抽象方法和非抽象方法,允许有构造器,成员变量,以及具体的方法实现。
一个类可以实现多个接口,但只能继承一个抽象类。
2. 请解释 Java 中的集合框架。
答:Java 集合框架是 Java 中存储和处理一组对象的一套标准接口和类。
集合框架分为两大类:不包含重复元素的集合(如 List、Set)和可能包含重复元素的集合(如 Map、Bag)。
集合框架提供了一系列的接口和实现类,如 List 接口的实现类有 ArrayList 和LinkedList,Set 接口的实现类有 HashSet 和 TreeSet 等。
二、面向对象1. 请解释封装、继承和多态的概念。
答:封装是将对象的状态信息隐藏在对象内部,并通过公共方法对外提供服务。
继承允许新的类(子类)继承现有类(父类)的属性和方法,实现代码的复用。
多态是指允许使用子类的对象来替代父类的对象,子类可以重写父类的方法,从而在运行时表现出不同的行为。
2. 请解释抽象类和接口在实现多态中的作用。
答:抽象类通过定义抽象方法来规定子类必须实现的功能,而接口则通过声明方法签名来规定实现类必须提供的方法实现。
抽象类和接口都可以被子类继承或实现,这样可以确保子类具有某些共同的行为,是实现多态的基础。
三、异常处理1. 请解释 Java 中的异常处理机制。
答:Java 中的异常处理机制是通过 try-catch-finally 结构来实现的。
当 try 块中的代码可能会抛出异常时,catch 块用来捕获并处理这些异常。
(完整版)java基础笔试题(答案已整理)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)java基础笔试题(答案已整理))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)java基础笔试题(答案已整理)的全部内容。
(完整版)java基础笔试题(答案已整理)编辑整理:张嬗雒老师尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望 (完整版)java基础笔试题(答案已整理) 这篇文档能够给您的工作和学习带来便利。
同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力.本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为 <(完整版)java基础笔试题(答案已整理)〉这篇文档的全部内容。
Java基础试题一:选择题(1*30=30)(题目写在答题纸上面)1:Java 提供哪几种运算符多选 ( abcd )。
A)算术运算符 B)位运算符C)关系运算符 D)逻辑运算符 E)条件运算符2:java。
lang包的()方法比较二个对象是否相等返回true。
. (b)A:toString() B:equals() C:compare D:以上都不正确3:下列对Java 的变量与函数说法正确的是多选(ace)。
A)变量是用来保存数据的 B)变量是用来实现操作过程的C)函数是用来实现操作过程的D)函数是用来保存数据的 E)函数的参数是数据的入口4:已知:int[] a = new int[100];在下列给出的数组元素中,非法的是。
java开发笔试题目及答案总结java开发笔试题目及答案1. 以下属于面向对象的特征的是(C,D)。
(两项)A) 重载B) 重写C) 封装D) 继承2. 以下代码运行输出是(C)public class Person{private String name=”Person”;int age=0;}public class Child extends Person{public String grade;public static void main(String[] args){Person p = new Child();System.out.println();}}A) 输出:PersonB) 没有输出C) 编译出错D) 运行出错3. 在使用super 和this关键字时,以下描述正确的是(A)A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过B) super()和this()不一定要放在构造方法内第一行C) this()和super()可以同时出现在一个构造函数中D) this()和super()可以在static环境中使用,包括static方法和static 语句块4. 以下对封装的描述正确的是(D)A) 只能对一个类中的方法进行封装,不能对属性进行封装B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用C) 封装的意义不大,因此在编码时尽量不要使用D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性5. 以下对继承的描述错误的是(A)A) Java中的继承允许一个子类继承多个父类B) 父类更具有通用性,子类更具体C) Java中的继承存在着传递性D) 当实例化子类时会递归调用父类中的构造方法6. 以下程序的运行结果是(D)class Person{public Person(){System.out.println(“this is a Person”); }}public class Teacher extends Person{ private String name=”tom”;public Teacher(){System.out.println(“this is a teacher”); super();}public static void main(String[] args){ Teacher teacher = new Teacher();System.out.println();}}A) this is a Personthis is a teachertomB) this is a teacherthis is a PersontomC) 运行出错D) 编译有两处错误7. 以下说法错误的是()A) super.方法()可以调用父类的所有非私有方法B) super()可以调用父类的所有非私有构造函数C) super.属性可以调用父类的所有非私有属性D) this和super关键字可以出现在同一个构造函数中8. 以下关于final关键字说法错误的是(A,C)(两项)A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性B) final修饰的类肯定不能被继承C) final修饰的方法不能被重载D) final修饰的变量不允许被再次赋值9. 访问修饰符作用范围由大到小是(D)A) private-default-protected-publicB) public-default-protected-privateC) private-protected-default-publicD) public-protected-default-private10. 以下(D)不是Object类的方法A) clone()B) finalize()C) toString()D) hasNext()11. 多态的表现形式有(A)A) 重写B) 抽象C) 继承D) 封装12. 以下对重载描述错误的是(B)A) 方法重载只能发生在一个类的内部B) 构造方法不能重载C) 重载要求方法名相同,参数列表不同D) 方法的返回值类型不是区分方法重载的条件13. 以下(D)添加到ComputerBook中不会出错class Book{protected int getPrice(){return 30;}}public class ComputerBook extends Book{ }A) protected float getPrice(){}B) protected int getPrice(int page){}C) int getPrice(){}D) public int getPrice(){return 10;}14. 以下对抽象类的描述正确的是(C)A) 抽象类没有构造方法B) 抽象类必须提供抽象方法C) 有抽象方法的类一定是抽象类D) 抽象类可以通过new关键字直接实例化15. 以下对接口描述错误的有(D)A) 接口没有提供构造方法B) 接口中的方法默认使用public、abstract修饰C) 接口中的属性默认使用public、static、final修饰D) 接口不允许多继承16. 以下代码,描述正确的有(A)interface IDemo{public static final String name; 1void print(); 2public void getInfo(); 3}abstract class Person implements IDemo{ 4public void print(){}}A) 第1行错误,没有给变量赋值B) 第2行错误,方法没有修饰符C) 第4行错误,没有实现接口的全部方法D) 第3行错误,没有方法的实现17. 接口和抽象类描述正确的有(B,C)(两项)A) 抽象类没有构造函数B) 接口没有构造函数C) 抽象类不允许多继承D) 接口中的方法可以有方法体18. 以下描述错误的有(C)A) abstract 可以修饰类、接口、方法B) abstract修饰的类主要用于被继承C) abstract 可以修饰变量D) abstract修饰的类,其子类也可以是abstract修饰的19. 以下描述正确的有(B)A) 方法的重写应用在一个类的内部B) 方法的重载与返回值类型无关C) 构造方法不能重载D) 构造方法可以重写20. 以下程序运行结果是(A)public class Test extends Father{private String name=”test”;public static void main(String[] args){Test test = new Test();System.out.println(test.getName());}}class Father{private String name=”father”;public String getName() {return name;}}A) fatherB) testC) 编译出错D) 运行出错,无输出21. 以下对异常的描述不正确的有(C)A) 异常分为Error和ExceptionB) Throwable是所有异常类的父类C) Exception是所有异常类父类D) Exception包括RuntimeException和RuntimeException之外的异常22. 在try-catch-finally语句块中,以下可以单独与finally一起使用的是(B)A) catchB) tryC) throwsD) throw23. 下面代码运行结果是(B)public class Demo{public int add(int a,int b){try{return a+b;}catch(Exception e){System.out.println(“catch 语句块”);}finally{System.out.println(“finally 语句块”);}return 0;}public static void main(String[] args){Demo demo = new Demo();System.out.println(“和是:”+demo.add(9,34));}}A) 编译异常B) finally语句块和是:43C) 和是:43 finally语句块D) catch语句块和是:4324. 以下描述不正确的有(D)A) try块不可以省略B) 可以使用多重catch块C) finally块可以省略D) catch块和finally块可以同时省略25. 以下对自定义异常描述正确的是(C)A) 自定义异常必须继承ExceptionB) 自定义异常可以继承自ErrorC) 自定义异常可以更加明确定位异常出错的位置和给出详细出错信息D) 程序中已经提供了丰富的异常类,使用自定义异常没有意义26. 以下程序运行结果是(D)public class Test {public int div(int a, int b) {try {return a / b;}catch(Exception e){System.out.println(“Exception”);}catch(NullPointerException e){System.out.println(“ArithmeticException”);}catch (ArithmeticException e) {System.out.println(“ArithmeticException”);} finally {System.out.println(“finally”);}return 0;}public static void main(String[] args) {Test demo = new Test();System.out.println(“商是:” + demo.div(9, 0));}}A) Exception finally 商是:0B) ArithmeticException finally 商是:0C) finally商是:0D) 编译报错27. 以下对TCP和UDP描述正确的是(D)A) TCP不能提供数据的可靠性B) UDP能够保证数据库的可靠性C) TCP数据传输效率高于UDPD) UDP数据传输效率高于TCP28. 在Java中,下面对于构造函数的描述正确的是(D)。
选用的题目如下:01.数组有没有length()这个方法? String有没有length()这个方法?数组没有length方法数组提供的获得元素个数的方式是通过访问数组的length属性String也就是字符串类型有length()用于返回字符串的字符个数也就是俗话说的字数但是字符数和字节数是不同的int num = str.getBytes().length - str.length();可以得到一个字符串当中有多少个汉字02.Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?为什么?Overload:方法重载指发生在同一类当中,方法名字相同,参数列表(类型、个数、顺序)不同的两个方法(体现静态多态)Override:方法覆盖发生在有继承关系的两个类之间子类类型当中访问控制权限修饰符不能更严格抛出的异常种类不能更广泛方法重载的时候可以改变返回值的类型return type maybe different因为方法名字和参数列表一旦确定在一个类当中就可以唯一确认一个方法所以即便方法返回类型不同也能判断出来调用的是哪个方法,因而不会出错03.== 与equals 有何区别?== 是Java当中的运算符用于比较两个引用当中存放的内存地址也就是内存指向是否相同或者说用于判断两个对象是否是同一个对象equals()是Java当中所有类型的父类既Object类当中的一个方法用于任何一个子类类型通过覆盖equals从而给这个类型提供另外一种比较规则(因为java当中没有运算符重载)很多人看到equals就认为是比较内容的方法其实不然在Object类当中equals方法当中也是采用==实现比较04abstract class和interface有什么区别?抽象类当中可以定义普通的属性可以定义普通的方法(有完整方法体的方法), 抽象类依然是Object的子类类型interface从某种意义上应当理解成为更为纯粹的抽象类当时其中只能定义抽象方法和常量接口当中定义的变量默认就是常量接口当中定义的方法默认就是抽象方法接口的概念没有父类换言之接口不是Object类型的子类类型05.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?接口可以继承接口而且可以多重继承在继承多个接口的同时子接口等价于两个接口的方法汇总抽象类可以实现接口因为抽象类当中可以有方法的具体实现抽象类可以继承实体类但是如果实体类继承抽象类就必须实现当中所有的抽象方法否则自身也得变为抽象类06.作用域public,private,protected,以及不写时的区别。
区别大概分为以下两点a>能够修饰什么类方法属性public true true trueprivate false true trueprotected f alse true true(default) true true trueb>作用public 公共的谁都可以访问的private 私有的只有本类中可见protected 受保护的本包内可见包外有继承关系的子类中也可见(default) 默认的只有本包内可见07.ArrayList和Vector的区别?ArrayList 和Vector都是List接口的实现类或者说都是存放单值而且有序不唯一的集合类型他们的区别主要有两点1.同步特性:ArrayList是线程不安全的或者说多个线程可以同时对其进行访问的可能出现并发错误Vector是线程安全的也就是同一时间只能有一个线程对其进行访问如果没有访问结束其它线程不能访问Collections当中有synchronizedList方法能够将线程不安全的List集合转变为线程安全的2.扩容机制:ArrayList扩容遵从*3/2+1的机制Vector如果未指定扩容增量那么遵从*2的机制如果在构造方法第二个参数中提供了扩容增量那么每次扩容都增加相同的增量08.float型float f=3.4是否正确?不正确因为java当中默认的浮点类型是double 而double 64位将64位数据存放在flaot 32位空间当中会出错应当写成float f = 3.4F;09.两个对象值相同x.equals(y),但却可有不同的hashcode,这句话对不对?这种情况是官方不允许出现的但是可以通过特殊的编码实现(随机生成hashCode()...?) 因为如果x.equals(y)那么代表程序员需要将这两个对象视作同一个对象但是如果他们返回不同的哈希码那么将会导致散列到不同的分组当中从而使HashSet、HashMap、Hashtable等这样的集合当中出现两个需要视作重复对象的元素破坏其唯一特性10.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?Java存在的两种关于引用类型传递的说法:1.Java当中只有值传递2.Java当中基本数据类型传值引用类型传地址其实两者并不矛盾因为引用类型的值就是内存地址11.在Collection中,实现比较要实现什么样的接口?parable 并且实现当中的抽象方法compareTo(Object obj)倘若实现比较的类型源文件不能进行修改那么可以通过提供比较器完成比较比较器类型需要实现parator 实现当中的compare(Object o1,Object o2)方法12.谈谈final, finalize的区别。
final java当中的修饰符最终的可以用于修饰类、方法或者变量最终类不能被继承最终方法不能被覆盖最终变量值一旦确定不能被修改finalize Object类当中的方法也称作对象的"遗言"方法当gc回收一个对象之前要自动调用的方法13.&和&&的区别。
& &&都可以作为逻辑运算符使用&&逻辑短路运算符&逻辑非短路运算符既当通过前面的条件能够判断出整个表达式的值的时候逻辑短路运算符不会进行后面的条件判断直接得出结果而逻辑非短路运算符依然会执行后面的判断直到所有条件都判断结束才得出结果两者的结果没有任何区别但是如果后面的条件判断对变量进行修改那么将会导致最终变量值的不同&也可以作为按位运算符使用14.HashMap和Hashtable的区别。
HashMap是线程不安全的HashMap指定的分组组数只能为2的次方数如果不指定默认为16组Hashtable是线程安全的Hashtable可以指定分组组数为任意数字如果不指定默认为11组15.gc是什么? 为什么要有gc?Java当中回收对象所占用的内存空间的系统级别守护线程对象的存储是要占用内存空间的如果不回收不会再次使用的内存空间那会造成资源浪费甚至导致系统崩溃而无法正常执行程序16.short s1 = 1; s1 = s1 + 1;有没有错为什么? short s1 = 1; s1 += 1;有没有错为什么?有错因为Java当中默认的整数类型为int s1+1的运算结果为int 32位存放在short 16位存储空间当中会导致数据溢出没错因为+=自动保持运算符左侧的类型不发生变化17.switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?可以使用在byte之上不能使用在long类型上到目前为止不能使用在String上(7.0新特性)switch()当中可以存放的类型为byte short char int Enum(枚举)18.String, StringBuffer, StringBuilder的区别。
String和StringBuffer为线程安全的StringBuilder是线程不安全的但是由于没有同步特性所以效率较StringBuilder稍高另外StringBuffer和StringBuilder在底层存储空间当中有缓冲空间由于缓冲空间的存在在诸如追加内容等操作时这两者的效率明显高于String 但是也付出了存储空间为代价19.super()与this()的区别?super()和this()都可以出现在构造方法的第一个语句super()代表执行本类构造方法之前优先调用父类的构造方法具体调用哪个需要看()当中如何传参this()代表执行本类构造方法之前先调用本类其它构造方法具体调用哪个需要看参数如何传20.如何将数值型字符转换为数字(Integer,Double)?如何将数字转换为字符?String str = new String("12345");int num1 = Integer.parseInt(str);double num2 = Double.parseDouble(str);int i = 10;String s = i+"";或者使用String类的静态方法valueOf()int i = 10;String s = String.valueOf(i);21.说出一些常用的类,包,接口,请各举5个类:Object String Math ArrayList HashSet HashMap LinkedList....包:ng java.math java.util java.awt javax.swing java.awt.event java.io 接口:Comparable Comparator Cloneable Serializable List Map Set Collection SortedSet SortedMap22.java中实现多态的机制是什么?Java当中多态有两种存在机制:静态多态:指的是方法重载Overload动态多态:指的是父类类型子类对象的赋值例如People peo = new Chinese();23.静态变量和实例变量的区别?静态变量用static修饰实例变量依赖于对象而存在是对象的一部分每个对象都有一份实例变量的存储空间实例变量在创建对象的时候初始化静态变量不依赖对象存在所以可以使用类名.变量名直接访问静态变量在整个内存当中只有一份值而且在类第一次被加载的时候初始化24.是否可以从一个static方法内部发出对非static方法的调用?不能直接调用但是如果先new对象再通过对象去调用非静态方法是成立的25.冒泡排序法,如何用Java实现快速排序手动冒泡:for(int i = 0;i<iset.length-1;i++){for(int j = 0;j<iset.length-1-i;j++){if(iset[j]>iset[j+1]){int temp = iset[0];iset[0] = iset[1];iset[1] = temp;}}}java.util.Collection.sort();java.util.Arrays.sort();26.集合的作用是什么?一个集合当中可以存放多个类型不同的对象所以集合更像一个容器而且类型不同的集合其特点也不一样换言之不同的集合采用了不同的数据结构从而有不同的特点而且合理的数据结构对于程序的执行效率也有影响31.Collection 和Collections的区别Collection Java当中所有单值类型集合的统一的父接口Collections Java当中集合常用的工具类当中方法多是静态的提供处理集合的某些常用功能27.面向对象的特征有哪些方面封装继承多态28.编程题: 用最有效率的方法算出2乘以8等於几?2<<329.是否可以继承String类?为什么?不能因为String类型是final修饰的最终类最终类不能被继承也就是不能派生子类30.List、Map、Set三个接口,存取元素时,各有什么特点?List 有序不唯一的单个对象而且存储顺序按照添加的顺序Map 键值对也就是键对象和值对象的映射关系主键无序且唯一实现类如HashMap 子接口SortedMap 主键有序且唯一例如TreeMapSet 无序唯一的单个对象实现类如HashSet子接口SortedSet 元素有序且唯一31.编程题: 写一个Singleton出来醉汉:class Sun{private static Sun theOne = new Sun();private Sun(){}public static Sun getSun(){return theOne;}}懒汉:class Moon{private static Moon theOne;private Moon(){}public static synchronized Moon getMoon(){if(theOne == null)theOne = new Moon();return theOne;}}32.编程输出如下图形* * * * ** * * ** * ** **循环嵌套。