Java软件中级工程师笔试题复杂逻辑

合集下载

中软Java笔试题目

中软Java笔试题目

中软Java笔试题目中软Java笔试题目Java笔试题目(一)一、判断题(30分)1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free,。

2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。

3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。

4.类及其属性、方法可以同时有一个以上的修饰符来修饰。

5.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点6.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。

7.Final类中的属性和方法都必须被final修饰符修饰。

8.最终类不能派生子类,最终方法不能被覆盖。

9.子类要调用父类的方法,必须使用super关键字。

10.一个Java类可以有多个父类。

11.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。

12.在java集合中,Vector和HashMap是线程安全的。

13.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。

14.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。

15.用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。

二、选择题(30分)1、关于垃圾收集的哪些叙述是正确的( ):A.程序开发者必须自己创建一个线程进行内存释放的工作B.垃圾收集允许程序开发者明确指定并立即释放该内存C.垃圾收集将检查并释放不再使用的内存D.垃圾收集能够在期望的时间释放被java对象使用的内存2、下面的哪些赋值语句是不正确的( ):A.float f=11.1;B.double d=5.3E12;C.double d=3.14159;D.double d=3.14D;3、下面关于变量及其范围的陈述哪些是不正确的( ):A.实例变量是类的成员变量B.实例变量用关键字static声明C.在方法中定义的'局部变量在该方法被执行时创建D.局部变量在使用前必须被初始化4、下列关于修饰符混用的说法,错误的是( ):A.abstract不能与final并列修饰同一个类B.abstract类中不可以有private的成员C.abstract方法必须在abstract类中D.static方法中能处理非static的属性5、容器Panel和Applet缺省使用的布局编辑策略是( ):A、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout6、以下标识符中哪项是不合法的( ):A、 BigMeaninglessNameB、$intC、1 stD、$17、main方法是Java Application程序执行的入口点,关于main 方法的方法头以下哪项是合法的( ):A、 public static void main()B、 public static void main(String[ ] args)C、 public static int main(String[ ] arg)D、 public void main(String arg[ ])8、执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的( ):A、 x[24]为0B、 x[24]未定义C、 x[25]为0D、 x[0]为空9、以下代码段执行后的输出结果为( ):int x=3; int y=10;System.out.println(y%x);A、0B、1C、2D、310、以下哪个表达式是不合法的( ):A、String x=”Hello”; int y=9; x+=y;B、String x=”Hello”; int y=9; if(x= =y) { }C、String x=”Hello”; int y=9; x=x+y;D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length : 011、编译运行以下程序后,关于输出结果的说明正确的是 ( ):public class Conditional{public static void main(String args[ ]){int x=4;System.out.println(“value is “+ ((x>4) ? 99.9 :9));}}A、输出结果为:value is 99.99B、输出结果为:value is 9C、输出结果为:value is 9.0D、编译错误12、以下声明合法的是( ):A、 default String s;B、 public final static native int w( )C、 abstract double d;D、 abstract final double hyperbolicCosine( )13、关于以下application的说明,正确的是( ):1. class StaticStuff2. {3. static int x=10;4. static { x+=5;}5. public static void main(String args[ ])6. {7. System.out.println(“x=” + x);8. }9. static { x/=3;}10. }A、 4行与9行不能通过编译,因为缺少方法名和返回类型B、 9行不能通过编译,因为只能有一个静态初始化器C、编译通过,执行结果为:x=5D、编译通过,执行结果为:x=314、关于以下程序代码的说明正确的是( ):1.class HasStatic{2. private static int x=100;3. public static void main(String args[ ]){。

Java软件开发工程师笔试题及答案

Java软件开发工程师笔试题及答案

Java软件开发工程师笔试题及答案考试时间:120分钟姓名:___________ 成绩:___________一、选择题(共40题,每题2分)1.下列表达式正确的( )A、byte b = 128;B、boolean flag = null;C、float f = 0.9239;D、long a = 2147483648L;2.下列运算符合法的是( )A、&&B、<>C、ifD、:=、3.如下哪个不是java的关键字( )A、constB、NULLC、ifD、this4.提供Java存取数据库能力的包是( )A、java.sqlB、java.awtC、ngD、java.swing5.下列哪一种叙述是正确的( )A、abstract修饰符可修饰字段、方法和类B、抽象方法的body部分必须用一对大括号{ }包住C、声明抽象方法,大括号可有可无D、声明抽象方法不可写出大括号6.关于源文件,下列说法错误的是( )A、一个源文件里可以有多个class声明B、一个源文件里只能有一个class用public修饰C、源文件的名称只要和源文件里任意一个类名相同即可D、在开发的时候,如果两个类不存在嵌套关系,最好是一个源文件只有一个类7.已知表达式int m [ ] = {0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量总数相等( )A、m.length()B、m.lengthC、m.length()+1D、m.length-18.下列程序的输出结果是()String str = null;System.out.println(a+2);A、2B、”2”C、”null2”D、” null+2”9.下列程序的输出结果是()int a = 012;int b = a < < 1;System.out.println(b);A、20B、24C、falseD、2110.下列程序的输出结果是()int a = 0x12;int b = a < < 1;System.out.println(b);A、36B、24C、falseD、2111.下列程序的输出结果是()int a = 23;int b = 5;System.out.println(a % b);A、4B、3C、4.6D、012.下列程序的输出结果是()double a = 23.0;double b = 5.0;System.out.println(a % b);A、4B、3C、4.0D、3.013.下列程序的输出结果是()int i = 2;i = i ++;int j = i ++;System.out.println(i+”, ”+j);A、2, 1B、2, 2C、2, 3D、3, 214.关于线程设计,下列描述正确的是()A、线程对象必须实现Runnable接口;B、启动一个线程直接调用线程对象的run()方法;C、Java提供对多线程同步提供语言级的支持;D、一个线程可以包含多个进程;15.欲构造ArrayList类得一个实例,此类继承了List接口,下列哪个方法是正确的()A、ArrayList myList = new Object();B、List myList = new ArrayList();C、ArraylList myList = new List();D、List myList = new List();16.下哪一个类型不能作为switch语句表达式的类型()A、intB、charC、StringD、short17.下面哪行代码有编译问题()public class Test{public void Test(){ //①}public Test(String str){ //②System.out.println(str);}public static void main(String[] args){Test t1 = new Test(); //③Test t2 = new Test(“hello”); //④}}A、①B、②C、③D、④18.关于Map和List,下面说法正确的是()A、Map继承ListB、List中可以保存Map或ListC、Map和List只能保存从数据库中取出的数据D、Map的value可以是List或Map19.下列描述正确的是()A、数组是一种对象B、数组属于一种原生类C、int number=[]={31,23,33,43,35,63}D、数组的大小可以任意改变20.关于package,下列说法不正确的是()A、package的作用是可以对类进行分类管理B、package提供了包一级的封装C、package语句不必是类的第一条非注释代码D、package声明的包可以有子包,但两个子包的名称不能相同21.关于权限修饰符,下列说法错误的是()A、权限修饰符可以用来修饰类和类的成员B、public权限最大,可以跨包访问C、protected权限允许在同一个包访问D、类不能用private修饰22.下列哪种说法是正确的()A、实例方法可直接调用超类的实例方法B、实例方法可直接调用超类的类方法C、实例方法可直接调用其他类的实例方法D、实例方法可直接调用本类的类方法23.阅读下面的程序public class X extends Thread implements Runnable{public void run(){System.out.println("this is run()");}public static void main(String args[]){Thread t=new Thread(new X());t.start();}}正确的判断是()A、第一行会产生编译错误B、第六行会产生编译错误C、第六行会产生运行错误D、程序会运行和启动24.阅读下面的程序public class A{private int value;public A(int value){setValue(value);}public setValue(int value){this.value = value;}}public class Test{public static void main(String[] args){int i = 1;A a = new A(1);modify (i);modify (a);}public static void modify(int i){i = 10;}public static void modify (A a){a.setValue(10);}}关于main方法的执行,正确的判断是()A、i的值改变了,a的成员变量的值改变了B、i的值改变了,a的成员变量的值没有改变C、i的值没有改变,a的成员变量的值改变了D、i的值没有改变,a的成员变量的值没有改变25.关于eqauls方法,下列说法错误的是()A、用==判断两个对象相等B、用对象的eqauls方法判断两个对象相等C、根类Object的eqauls方法的实现机制是判断参数指向的对象和自身是否为同一个对象D、如果我们要判断对象相等,通常需要覆盖eqauls方法26.下面哪行代码有编译问题()public class Test{public static void main(String[] args){int[] a = {}; //①String[] str = {}; //②a = new int[]{}; //③str = {”1”,”2”}; //④}}A、①B、②C、③D、④27.下面哪种定义一个二维数组的方式是错误的()A、int[][] a = new int[5][];B、int[][] a = new int[][5];C、int[][] a = {};D、int[][] a = {{}};28.String s=new String(“hello”);String t =new String(“hello”);char c [ ] ={‘h’,’e’,’l’,’l’,’o’};下列哪些表达式返回true()(多选)A、s.equals(t);B、t.equals(c);C、s= =tD、t.equals (new String(“hello”));29.阅读下面代码:String str1 = “abc”;String str2 = new String(“abc”);boolean b1 = str1 == str2;boolean b2 = str1.eqauls(str2);判断正确的是()A、b1的值为true,b2的值为trueB、b1的值为false,b2的值为trueC、b1的值为true,b2的值为falseD、b1的值为false,b2的值为false30.对于下列代码:public class Parent {public int addValue (int a ,int b ){int s;s = a + b;return s;}}class Child extends Parent {}下述哪个方法可以加入类Child()A、int addValue(int a ,int b){//do something…}B、public void addValue(){//do something…}C、public int addV alue(){//do something…}D、public int addValue( int a, int b )throws MyException {//do some thing…}31.关于异常(Exception),下列说法错误的是()A、异常的基类为Exception,所有异常都必须直接或者间接继承它B、异常可以用try{ . . .}catch(Exception e){ . . .}来捕获并进行处理C、如果某异常继承RuntimeException,则该异常可以不被声明D、异常可以随便处理,而不是抛给外层的程序进行处理32.下列关于栈的叙述正确的是()A、栈是非线性结构B、栈是一种树状结构C、栈具有先进先出的特征D、栈具有后进先出的特征33.有关线程的哪个叙述是错误的()A、一旦一个线程被创建,它就立即开始运行。

Java开发工程师招聘笔试题及解答2024年

Java开发工程师招聘笔试题及解答2024年

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工程师笔试题中级

Java工程师笔试题中级

Java工程师笔试题(中级)开始时间______________________ 姓名________ 月薪要求(转正税前)_____ 说明:所有题目只需简要描述即可一、基础题(Required):【Java语言】1、String和StringBuffer有什么区别?int 和Integer有什么不同,float f=3.4是否正确String是常量,在创建后就不能改变,在内存中是共享的.2、异常(Exception)分几种类型?有什么区别?写出几个常见异常(若记不得异常的英文名,写中文名亦可)3、写出几种常见的java数据结构和特点(List ,Set,Map等)4、下列两个方法有什么区别public synchronized void method1(){}public void method2(){synchronized (obj){}}5、public class Test{Public static void so(String[] name){String temp=name[0];Name[0]=name[1];Name[1]=temp;}public static void so(String name0,String name1){String temp=name0;Name0=name1;Name1=temp;’}public static void main(String[] wewe){String[] name = new String[]{"mike”,”Lily”};String name0 = “mike”;String name1=”Lily“;So(name);System.out.println(name[0]+”,”+name[1]);So(name0,name1);System.out.println(name0+”,”+name1);}写出输出结果6、以下数据库操作的程序片段如何改进会跟好?try {Class.forName(“com.mysql.jdbc.Driver”);Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost/test”, “root”, “123456”);Statement stmt = conn.createStatement();String sql = “select * from T_User where username=’” + name+ “’ and password=’” + password + “’”;ResultSet rs = stmt.executeQuery(sql);if (rs.next()) {System.out.println(“User Name and Password is correct!”);} else {System.out.println(“User Name and Password pair is invalidate”);}} catch (Exception e) {e.printStackTrace();}7、请问下列程序运行输出结果是多少?public static void main(String[] afsaf){List list1;List list2;list1=new List();list2=list1;list1.add(new Object());System.out.println(list2.size());}【数据库(Oracle)】1、从Product表中取出price大于9.99的前100行数据。

中级JAVA笔试题(附参考答案)(完整资料).doc

中级JAVA笔试题(附参考答案)(完整资料).doc

此文档下载后即可编辑中级JAVA笔试题(附参考答案)java 基础1.StringBuffer的实现方式,容量如何扩充。

2.ClassLoader的功能和工作模式。

3.==和equals的区别。

4.什么是线程安全?举例说明一个线程不安全的例子。

5.说出数据连接池的工作机制,解决什么问题。

6.一个字符串"java Java JAVa JaVa IloveJAVA you hateJavaafasdfasdf",把其中奇数位java(大小写不敏感)替换成java,偶数位替换成JAVA。

数据库7.经常使用的数据库的优化方法。

8.薪水最高的第10到第20名雇员Oracle和mysql的实现。

算法:9.ArrayList LinkedList HashMap,存储性能和特点。

10.用任意方法对int类型数组进行排序。

架构:11.描述MVC的设计思想12.Spring的核心理念是什么13.谈一下自己最熟悉的web框架参考答案:java 基础1.StringBuffer的实现方式,容量如何扩充。

(StringBuffer是通过char[]来实现的,默认长度是16,在进行串的append的时,StringBuffer会检测剩余容量,适时会重新扩充,而扩容的同时,会创建一个新的数组,并将原来的数组内容复制到新的数组里面。

)2.ClassLoader的功能和工作模式。

(1:JVM在运行时会产生三个ClassLoader,其层次关系::Bootstrap ClassLoader—>Extension ClassLoader—>AppClassLoader,2: 当一个装载器被请求装载某个类时,它首先委托自己的parent去装载,若parent能装载,则返回这个类所对应的Class对象,若parent不能装载,则由parent的请求者去装载。

)3.==(引用指向同一个对象)和equals(引用可能指向的不是同一个对象)的区别。

中软国际JAVA工程师招聘笔试题及参考答案

中软国际JAVA工程师招聘笔试题及参考答案

中软国际JAVA工程师招聘笔试题及参考答案本卷总分100分,70分及格,时间60分钟姓名:____________ 岗位:_____________ 地点:□南京□深圳到职日期:______________一、问答题1.C++或Java中的异常处理机制的简单原理和应用。

当JAVA程序违反了JAVA的语义规那么时,JAVA虚拟机就会将发生的错误表示为一个异常。

违反语义规那么包括2种情况。

一种是JAVA类库内置的语义检查。

例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。

另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创立自己的异常,并自由选择在何时用throw关键字引发异常。

所有的异常都是ng.Thowable的子类。

2. Java的接口和C++的虚类的一样和不同处。

C++虚类相当于java里的抽象类,一样点:〔1〕都包含抽象方法,声明多个类共用方法的返回值和参数表;〔2〕都不能被实例化;〔3〕都是应用数据类型。

可以声明抽象类及接口变量,并将子类的对象赋给抽象类变量,或将实现接口的类的变量赋给接口变量。

不同点:〔1〕一个类只能继承一个抽象类,是单继承;一个类可以实现多个接口,具有多重继承的能。

〔2〕抽象类及其成员具有与普通类一样的访问权限;接口的访问权限有public和默认权限,但接口中成员的访问权限都是public;〔3〕抽象类中可以声明成员变量,成员变量的属性可以更改;接口中只能声明常量。

〔4〕抽象类中可以声明抽象方法,普通方法及构造方法;接口中只能声明抽象方法。

3. 垃圾回收的优点和原理。

并考虑2种回收机制。

Java语言中引入的垃圾回收机制:它使得Java程序员在编写程序的时候不再需要考虑内存管理。

由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。

中软国际Java程序员笔试题及答案

1、谈谈final, finally, finalize的区别。

final:修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。

因此一个类不能既被声明为 abstract的,又被声明为final的。

将变量或方法声明为final,可以保证它们在使用中不被改变。

被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。

被声明为final的方法也同样只能使用,不能重载。

finally:在异常处理时提供 finally 块来执行任何清除操作。

如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

finalize:方法名。

Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。

这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。

它是在 Object 类中定义的,因此所有的类都继承了它。

子类覆盖finalize() 方法以整理系统资源或者执行其他清理工作。

finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?匿名的内部类是没有名字的内部类。

不能继承其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

3、Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。

Static nested class(嵌套类)是将内部类声明为static。

普通内部类对象隐式地保存了一个引用,指向创建它的外围类对象,不能有static数据和static字段。

嵌套类意味着:1> 要创建嵌套类的对象,并不需要其外围类的对象;2>不能从嵌套类的对象中访问非静态的外围类的对象。

java 逻辑思维笔试题

以下是一些Java 逻辑思维笔试题,这些试题可以帮助你测试自己的逻辑思维能力以及Java 编程技能:
1.给定一个整数数组,找出数组中是否存在两个不同的数字,它们之间的差的绝对值等于
给定的数字k。

2.给定一个字符串,判断该字符串是否为回文字符串。

3.给定一个整数数组,找出数组中的最大值和最小值,并计算它们的差值。

4.给定一个整数数组,找出数组中是否存在重复的元素。

5.给定一个字符串,将字符串中的每个字符转换为其对应的ASCII 码值,并输出结果。

6.给定一个整数数组,找出数组中是否存在三个不同的数字,它们之和等于给定的数字k。

7.给定一个字符串,判断该字符串是否为偶数个字符。

8.给定一个整数数组,找出数组中是否存在两个不同的数字,它们之间的和等于给定的数
字k。

9.给定一个整数数组,找出数组中是否存在三个不同的数字,它们之积等于给定的数字k。

10.给定一个字符串,将字符串中的每个字符转换为其对应的字母在字母表中的下一个字
母,如果已经是字母表的最后一个字母,则将其转换为第一个字母。

输出转换后的字符串。

java软件中级工程师笔试题复杂逻辑

java软件中级工程师笔试题复杂逻辑J2EE部分1、运算符优先级问题,下面代码的结果是多少?(笔试)package test;public class Test {public static void main(String[] args) {int k = 0;int ret = ++k + k++ + ++k + k;// ret的值为多少}}2、运算符问题,下面代码分别输出什么?(笔试)package test;public class Test {public static void main(String[] args) {int i1 = 10, i2 = 10;}}3、下面代码的结果是什么?还是抛出异常?(笔试)package test;public class Test {public void myMethod(String str) {}public void myMethod(Object obj) {}public static void main(String[] args) {Test t = new Test();t.myMethod(null);}4、假设今天是9月8日,下面代码输出什么?(笔试)package test;public class Test {public static void main(String[] args) {Date date = new Date();}}5、下面代码的输出结果是什么?package test;public class Test {public static void main(String[] args) {double val = 11.5;}}6、下面代码的结果是什么?package test;public class Test extends Base {public static void main(String[] args) {Base b = new Test();b.method();Test t = new Test();t.method();}@Overridepublic void method() {}}class Base {public void method() throws InterruptedException { }7、以下代码的结果是什么?package test;public class Test extends Base {public static void main(String[] args) { new Test().method();}public void method() {}}class Base {}8、true or false?package test;public class Test {public static void main(String[] args) { String str1 = new String("abc");String str2 = new String("abc"); StringBuffer sb1 = new StringBuffer("abc"); StringBuffer sb2 = new StringBuffer("abc"); }}9、输出的结果是什么?package test;public class Test {public static void main(String[] args) {}public int method1() {int x = 1;try {return x;} finally {++x;}}public int method2() {int x = 1;try {return x;} finally {return ++x;}}}这样呢?输出什么package test;public class Test {public static void main(String[] args) { }public static boolean method() {try {return true;} finally {return false;}}}10、方法m1和m2有区别吗?什么区别package test;public class Test {public static void main(String[] args) { }public synchronized void m1() {}public static synchronized void m2() {}}11、true or false?理由package test;public class Test {public static void main(String[] args) { Integer i1 = 127; Integer i2 = 127;i1 = 128;i2 = 128;}}12、true or false?理由package test;public class Test {public static void main(String[] args) { String str1 = "a"; String str2 = "a";String str3 = new String("a");str3 = str3.intern();}}13、true or false?理由package test;public class Test {public static void main(String[] args) { }}14、以下代码输出是什么?package test;public class Test {public static void main(String[] args) {BigInteger one = new BigInteger("1");BigInteger two = new BigInteger("2");BigInteger three = new BigInteger("3"); BigInteger sum = new BigInteger("0");sum.add(one);sum.add(two);sum.add(three);}}15、输出的结果是什么?12345?根据单词排序?还是?package test;public class Test {public static void main(String[] args) {Set set = new HashSet();set.add("one");set.add("two");set.add("three");set.add("four");set.add("five");for (Iterator it = set.iterator(); it.hasNext();) {}}}16、以下代码输出的结果(笔试选择题)public class Test {public static void main(String[] args) {}}A. nullB. 0C. Test17、下面为一个单例的实现代码,请指出代码中有几个错误或不合理之处,并改正。

java工程师笔试题及答案

java工程师笔试题及答案# Java工程师笔试题及答案一、选择题(每题2分,共10分)1. 下列哪个不是Java的基本数据类型?- A. int- B. String- C. double- D. boolean答案:B(String是引用类型)2. Java中,哪个关键字用于定义类?- A. class- B. struct- C. interface- D. enum答案:A(class用于定义类)3. 在Java中,哪个方法是每个类都必须重写的?- A. `toString()`- B. `equals()`- C. `hashCode()`- D. `main()`答案:A(`toString()`方法通常被重写以提供类的字符串表示)4. 下列哪个是Java集合框架中的接口?- A. ArrayList- B. List- C. HashMap- D. Set答案:B(List是接口)5. 在Java中,哪个关键字用于实现多态?- A. extends- B. implements- C. override- D. abstract答案:A(extends关键字用于继承,是实现多态的一种方式)二、简答题(每题5分,共20分)1. 简述Java中接口和抽象类的区别。

答案:接口定义了方法的规范,但不能包含实现。

一个类可以实现多个接口。

抽象类可以包含方法的实现,并且可以包含非抽象方法。

一个类只能继承一个抽象类。

2. 解释Java中的异常处理机制。

答案:Java的异常处理机制基于`try`、`catch`和`finally`块。

`try`块包含可能抛出异常的代码,`catch`块捕获并处理异常,`finally`块包含无论是否发生异常都会执行的代码。

3. 什么是Java的垃圾回收机制?答案:垃圾回收是Java运行时环境自动释放不再使用的对象所占用的内存的过程。

垃圾回收器定期运行,查找没有被任何引用的对象,并释放它们占用的内存。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

J2E E部分
1、运算符优先级问题,下面代码的结果是多少?(笔试)
package test;
public class Test {
public static void main(String[] args) {
int k = 0;
int ret = ++k + k++ + ++k + k;
ethod();
}
public void method() {
}
}
class Base {
}
8、true or false?
package test;
public class Test {
public static void main(String[] args) {
String str1 = new String("abc");
String str2 = new String("abc");
StringBuffer sb1 = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
}
}
9、输出的结果是什么?
package test;
public class Test {
public static void main(String[] args) {
}
public int method1() {
int x = 1;
try {
return x;
} finally {
++x;
}
}
public int method2() {
int x = 1;
try {
return x;
} finally {
return ++x;
}
}
}
这样呢?输出什么
package test;
public class Test {
public static void main(String[] args) { }
public static boolean method() {
try {
return true;
} finally {
return false;
}
}
}
10、方法m1和m2有区别吗?什么区别
package test;
public class Test {
public static void main(String[] args) { }
public synchronized void m1() {
}
public static synchronized void m2() {
}
}
11、true or false?理由
package test;
public class Test {
public static void main(String[] args) { Integer i1 = 127;
Integer i2 = 127;
i1 = 128;
i2 = 128;
}
}
12、true or false?理由
package test;
public class Test {
public static void main(String[] args) { String str1 = "a";
String str2 = "a";
String str3 = new String("a");
str3 = ();
}
}
13、true or false?理由
package test;
public class Test {
public static void main(String[] args) {
}
}
14、以下代码输出是什么?
package test;
public class Test {
public static void main(String[] args) { BigInteger one = new BigInteger("1");
BigInteger two = new BigInteger("2");
BigInteger three = new BigInteger("3");
BigInteger sum = new BigInteger("0");
(one);
(two);
(three);
}
}
15、输出的结果是什么?12345?根据单词排序?还是?package test;
public class Test {
public static void main(String[] args) { Set<String> set = new HashSet<String>();
("one");
("two");
("three");
("four");
("five");
for (Iterator<String> it = (); ();) {
}
}
}
16、以下代码输出的结果(笔试选择题)
public class Test {
public static void main(String[] args) {
}
}
A. null
B. 0
C. Test
17、下面为一个单例的实现代码,请指出代码中有几个错误或不合理之处,并改正。

public class Test {
public Test instance = null;
public static Test getInstance() {
if (instance == null) {
instance = new Test();
return instance;
}
}
}
18、编程输出一个目录下的所有目录及文件名称,目录之间用tab。

(笔试)
19、从键盘读入10个整数,然后从大到小输出。

(笔试)
20、如何迭代Map容器,手写个试试?
答案:。

相关文档
最新文档