Java软件开发工程师笔试题(答案)
Java经典笔试题(含答案)
this is a teacher tom B) this is a teacher this is a Person tom C) 运行出错 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-public B) public-default-protected-private C) private-protected-default-public D) public-protected-default-private 10. 以下(D)不是 Object 类的方法 A) clone() B) finalize() C) toString() D) hasNext() 11. 多态的表现形式有(A) A) 重写 B) 抽象 C) 继承
Java 经典笔试题(含答案)
选择题(共 50 题,每题 1.5 分,共 75 分。多选题选不全或选错都不得分。) 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) 输出:Person B) 没有输出 C) 编译出错 D) 运行出错 3. 在使用 super 和 this 关键字时,以下描述正确的是(A) A) 在子类构造方法中使用 super()显示调用父类的构造方法,super()必须 写在子类构造方法的第一行,否则编译不通过 B) super()和 this()不一定要放在构造方法内第一行 C) this()和 super()可以同时出现在一个构造函数中
Java软件开发工程师笔试题(答案)
Java软件开发工程师笔试题(答案)Java工程师笔试题1,填空(此大题10项,每空1分,共20分)1。
Java语言的三个特性是继承性、封装性和多态性2.在Java中,char 使用_ _ _ _ Unicode _ _ _ _ _ _编码方案,因此中文字符和英文字符都占用__2__字节的内存空间3。
当方法由_ _定义时,形参指的是参数行,当方法由_ _调用时,实际参数是传入的变量或值。
4。
JSP内置对象,应用程序对象代表应用程序上下文,它允许JSP 页面与包含在同一应用程序中的任何网络组件共享信息,而会话对象是特定于每个客户的5。
如果你想把一个对象写到一个流中,这个类必须实现Seralizable 接口6。
在程序中实现多线程有两种方法:继承线程类和实现_ _ Runable _ interface7。
在多线程中,线程的相对优先级可以通过调用相应的setPriority()方法来修改8。
面向对象编程的五个设计原则是单一责任、开放和封闭、里氏尺度替换、依赖倒置、接口分离。
通过Ajax,客户端获取的数据主要有两种类型:文本类型和xml 10。
Socket通常也叫socket,用来描述__ ip和_ _ interface2,多项选择题(这个大题20项,每项2分,共40分)1。
在JA V A中,如果父类中的一些方法不包含任何逻辑并且需要被子类重写,那么父类的这些方法应该使用()关键字来声明:a)final b)static c)abstract d)void2。
在JA V A中,已经定义了两个接口b和c。
要定义实现这两个接口的类,下面的语句是正确的()a)接口aextend b,c b)接口a implements b,c c)类a mplements b,c d)类a mplements b,实现c3。
可以在JA V A接口()中定义A)静态方法b)常量c)构造函数d)抽象方法4。
假设A有构造函数A (int a),那么在A类的其他构造函数中调用的构造函数和语句格式应该是()a)a(x)b)this . a(x)c)this(x)d)super(x)5。
软件开发工程师(JAVA)笔试题
软件开发工程师(JAVA)笔试题请在90分钟以内做答答案请写在答题纸上一、选择题1、下面哪项是不合法的标识符:()A. $personsB. TwoUsersC. *pointD. _endlineE. final2、下列运算符合法的是()A.&& B.<> C.if D.:=3、下面描述中哪两项相等:()[选择两项]A.<%= YoshiBean.size%>B.<%= YoshiBean.getSize()%>C.<%= YoshiBean.getProperty(“size”)%>D.<jsp:getProperty id=”YoshiBean” param=”size”/>E.<jsp:getProperty name=”YoshiBean” param=”size”/>F.<jsp:getProperty id=”YoshiBean” property=”size”/>G.<jsp:getProperty name=”YoshiBean” property=”size”/>4、设float x = 1,y = 2,z = 3,则表达式 y+=z--/++x的值是:()A. 3.5B. 3C. 4D. 55、下面的哪些叙述为真:()A.equals()方法判定引用值是否指向同一对象B.==操作符判定两个不同的对象的内容和类型是否一致C.equal()方法只有在两个对象的内容一致时返回trueD.类File重写方法equals()在两个不同的对象的内容和类型一致时返回true6、如果一个对象仅仅声明实现了cloneable接口,但是不声明clone方法,外部能够调用其clone方法吗?()A. 能B. 不能C. 不确定7、下列说法错误的有()A.能被java.exe成功运行的java class文件必须有main()方法B. J2SDK就是Java APIC. Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的java class文件必须有main()方法8、下列正确的有()A. call by value不会改变实际参数的数值B. call by reference能改变实际参数的参考地址C. call by reference不能改变实际参数的参考地址D. call by reference能改变实际参数的内容9、下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C. int number=[]={31,23,33,43,35,63}D.数组的大小可以任意改变10、不能用来修饰interface的有()A.private B.public C.protected D.static 11、关于Float,下列说法正确的是A.Float是一个类B.Float在ng包中C.Float a=1.0是正确的赋值方法D.Float a= new Float(1.0)是正确的赋值方法12、下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法13、下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法14、下面说法哪些是正确的?A.Applet可以访问本地文件B.对static方法的调用不需要类实例C.socket类在ng中D.127.0.0.1地址代表本机15、类Test1、Test2定义如下:1.public class Test1 {2.public float aMethod(float a, float b) throws3.IOException { }4.}5.public class Test2 extends Test1 {6. //Line67.}将以下()方法插入行6是不合法的。
正式应聘的JAVA笔试题和答案
正式应聘的JAVA笔试题和答案一:选择题1:List, Set, Map是否继承自Collection接口A:都是,B 都不是 C:List, Set 是 D:Set, Map 是正确答案 C2:下面描述哪个是正确的A:构造器Constructor可被overrideB:可以继承String类C:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code不会被执行D:两个对象值相同(x.equals(y) == true),那么也有相同的hash code正确答案 D3 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized A:都能 B:都不能 C:可以为static D:可以为native正确答案 A4:下面的程序中,temp的最终值是什么?long temo=(int)3.9;temp%=2;A: 0 B :1 C :2 D : 3正确答案 B5、请在以下选项中选出非基本数据类型的选项 ( )A: int B:byte C: boolean D:String正确答案 D6、阅读下面代码段, 给出以下代码的输出结果public class Test{public static void main(String args[]){String str1 = "abc";String str = "abc;String str2 = new String("abc");System.out.println(str1 == str2);System.out.println(str1.equals(str2));System.out.println(str == str1);}}A:true,true,true B:true,false,true C:true,true,false D:false,true,true正确答案 D7、阅读下面代码段, 给出以下代码的输出结果:int i=1;switch (i) {case 0:System.out.println("zero");break;case 1:System.out.println("one");case 2:System.out.println("two");default:System.out.println("default");}A: B::D:default 正确答案 C8、阅读下面代码段, 给出以下代码的输出结果public class MyClass{static int i;public static void main(String argv[]){System.out.println(i);}}A: Error Variable i may not have been initialized B:null C:D:0 正确答案 D9、阅读下面代码段, 给出以下代码的输出结果:class A{static{System.out.print( “A1”);}public A(){System.out.print( “A2”);}}class B extends A{static{System.out.print( “B1”);}public B(){System.out.print( “B2”);}}public class Hello{public static void main(String[] args){A ab = new B();ab = new B();}}A:A1B1A2B2B1B2 B:A1B1A2B2A2B2 C:A1B1A2B2B1B2 D:A1A2B1B2A2B2正确答案 B10、阅读下面代码段, 给出以下代码的输出结果public class TestData {public String getValue () {String value = "";try{value = "test1";return value;}catch(Exception e){e.printStackTrace();}finally{value = "test2";}return value;}public static void main(String args[]){ TestData test = new TestData();String a = test.getValue();System.out.println(a);}}A.test1B.test2C.nullD.””正确答案 A二、改错题,如果有错误,请指出并修正。
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开发工程师笔试题 填空
java开发工程师笔试题填空Java是一种高级编程语言,广泛应用于软件开发领域。
作为一名Java开发工程师,除了掌握Java语言的基础知识外,还需要具备一定的编程能力和解决问题的能力。
下面是一些常见的Java开发工程师笔试题,希望能够帮助你更好地准备Java开发方面的面试和笔试。
1. Java的基本数据类型有___个,分别是___。
答案:8个,分别是byte、short、int、long、float、double、char、boolean。
2. 在Java中,以下哪个关键字用于定义一个类?答案:class。
3. 在Java中,以下关于构造方法的说法正确的是:答案:构造方法与类名相同,用于创建对象。
4. 下面的代码输出结果是什么?```javaint a = 10;int b = 5;System.out.println(a + b + " " + (a + b));```答案:15 15。
5. 在Java中,以下关于String的说法正确的是:答案:String是不可变类,一旦创建就不能被修改。
6. 下面的代码有什么问题?```javapublic class Test {public static void main(String[] args) {int[] arr = new int[5];System.out.println(arr[5]);}}```答案:数组索引越界,应该使用`arr[4]`来访问最后一个元素。
7. 在Java中,以下关于面向对象编程的说法正确的是:答案:面向对象编程将数据和操作数据的方法封装在一个单元中。
8. 下面的代码输出结果是什么?```javaString str1 = "hello";String str2 = new String("hello");System.out.println(str1 == str2);```答案:false。
JAVA笔试题_附答案版
一:单选题1.下列哪一种叙述是正确的(D)A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{ }包住没有body部分C.声明抽象方法,大括号可有可无不存在bodyD.声明抽象方法不可写出大括号2.如下代码public class Test {public int aMethod() {static int i = 0;i++;return i;}public static void main (String args[]) {Test test = new Test();test.aMethod();int j = test.aMethod();System.out.println(j);}}输出结果是什么?DA. 0B. 1C. 2D.编译失败3.下列哪种说法是正确的(D)A.实例方法可直接调用超类的实例方法如果超类没有被重写就可以B.实例方法可直接调用超类的类方法有可能是私有方法不可以调用C.实例方法可直接调用其他类的实例方法不可以D.实例方法可直接调用本类的类方法4.在Servlet处理请求的方式为:CA.以进程的方式B.以程序的方式C.以线程的方式Servlet容器默认是采用单实例多线程的方式处理多个请求的:D.以响应的方式5.JDBC中,用于表示数据库连接的对象是:BA.Statement连接的实例,执行sqlB.Connection建立与数据库的连接C.DriverManager该方法将建立与数据库的连接D.PreparedStatement6.用于调用存储过程的对象是:CA.ResultSet返回结果集B.DriverManagerC.CallableStatemetD.PreparedStatement PreparedStatement代替Statement.7.按照MVC设计模式,JSP用于实现:BA.ModelB.ViewC.ControllerD.容器8.如下代码10. public Object m() {11. Object o = new Float(3.14F);12. Object [] oa = new Object[1];13. oa[0] = o;14. o = null;15. oa[0] = null;16. print 'return 0';17. }当Float对象在第11行被创建后, 什么时候能够被垃圾回收?CA. 13行以后.B. 14行以后.C. 15行以后.D. 16行以后.9.如下代码:class Base {Base() { System.out.print("Base"); }}public class Alpha extends Base {public static void main( String[] args ) {new Alpha(); -----调用父类无参的构造方法new Base();}}结果是什么?BA. BaseB. BaseBaseC. 编译失败.D. 代码运行但没有输出.E. 运行时抛出异常10.在J2EE中属于Web层的组件有:AA.ServletB.EJBC.AppletD.HTML11.在Servlet的生命周期中,容器只调用一次的方法是:CA.serviceB.getServletConfigC.initD.destroy12.以下关于异常的说法正确的是:DA. 一旦出现异常,程序运行就终止了非系统异常仍然可以继续运行B. 如果一个方法申明将抛出某个异常,它就必须真的抛出那个异常不一定C. 在catch子句中匹配异常是一种精确匹配exceptionD. 可能抛出系统异常的方法是不需要申明异常的13.如下代码:public class Foo {public static void main(String[] args) {try {return;} finally {System.out.println( "Finally" );}}}输出结果是什么?AA. FinallyB.编译失败C. 代码正常运行但没有任何输出.D. 运行时抛出异常14. jsp指令中isELIgnored="boolean"的意思是(C)A.决定是否实现Servler的单线程模式,B.决定改页面是否是一个错误处理页面,C.决定是否支持EL表示,D.没有具体的含义。
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笔试题以及答案
java笔试题以及答案详解一、单项选择题 1.Java是从()语言改进重新设计。
A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() 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 main(String[] args){TestConStructor testConStructor = new TestConStructor();System.out.println("main");testConStructor.TestConStructor();}} 4.提供Java存取数据库能力的包是() A.java.sql B.java.awt C.ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A详解:java 中没有<> := 这种运算符, if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C详解:Do while 中的语句是至少要执行一次的。
Java开发工程师笔试题目
Java开发工程师笔试题目1.下面程序的输出结果是:public class Foo {public static void main(String[] args) {Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150;System.out.println(f1 == f2);System.out.println(f3 == f4);}} [单选题] *A.false trueB.true trueC.true false(正确答案)D.false false2.集合在遍历时,删除符合条件的元素,下面哪些说法是正确的: [单选题] *A.在 foreach 循环里进行元素的 remove操作。
B.使用Iterator方式,如果有并发,需要对Iterator对象加锁。
(正确答案)C.Iterator进行元素的删除操作,是线程安全的。
D.Java无法实现在遍历时,进行删除元素操作。
3.下面说法哪些是正确的:() *A.LinkedList继承自ListB.AbstractSet继承自SetC.HashSet继承自AbstractSet(正确答案)D.WeakMap继承自HashMap4.Java中实现多线程的方法有:() *A.继承Thread类(正确答案)B.实现Runnable接口(正确答案)C.使用Future实现有返回结果的多线程(正确答案)D.实现Callable接口(正确答案)5.关于线程池管理线程的好处,下列哪些说法是正确的:() *A.能够减少在创建和销毁线程上所花的时间以及系统资源的开销(正确答案)B.使用线程池一定能避免OOM问题C.线程资源必须通过线程池提供,不允许在应用中自行显式创建线程(正确答案)D.线程池能够根据资源等待情况,自动调整线程优先级并解决死锁问题6.关于线程安全,下列哪些说法是正确的:() *A.SimpleDateFormat 是线程不安全的类。
Java笔试题及答案
Java笔试题及答案1.下列不可作为java语⾔修饰符的是(D)A) a1 B) $1 C) _1 D) 11答案:java标识符不能以数字开头,包含英⽂字母,数字,下划线以及$2.有⼀段java 应⽤程序,它的主类名是a1,那么保存它的源⽂件名可以是(A)A) a1.java B) a1.class C) a1 D) 都对3.整型数据类型中,需要内存空间最少的是(D)A) short B) long C) int D) byte答案:short 2byte| int 4byte| long 8byte| char 2byte| float 4byte| double 8byte|byte 1byte4. Java 类可以作为(C)A) 类型定义机制B) 数据封装机制C) 类型定义机制和数据封装机制D) 上述都不对5.在创建对象时必须(C)A) 先声明对象,然后才能使⽤对象B) 先声明对象,为对象分配内存空间,然后才能使⽤对象C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使⽤对象D) 上述说法都对6.在调⽤⽅法时,若要使⽅法改变实参的值,可以(B)A) ⽤基本数据类型作为参数B) ⽤对象作为参数C) A和B都对D) A和B都不对7. Java中(C)A) ⼀个⼦类可以有多个⽗类,⼀个⽗类也可以有多个⼦类B) ⼀个⼦类可以有多个⽗类,但⼀个⽗类只可以有⼀个⼦类C) ⼀个⼦类可以有⼀个⽗类,但⼀个⽗类可以有多个⼦类D) 上述说法都不对答案:单继承8.Java语⾔具有许多优点和特点,哪个反映了Java程序并⾏机制的特点?(B)A) 安全性 B) 多线性 C) 跨平台 D) 可移植9. Character流与Byte流的区别是(C)A) 每次读⼊的字节数不同 B) 前者带有缓冲,后者没有C) 前者是字符读写,后者是字节读写 D) ⼆者没有区别,可以互换使⽤10.以下声明合法的是( D )A、default String s;B、public final static native int w( )C、abstract double d;D、abstract final double hyperbolicCosine( )答案:A: default在java不是修饰词。
java笔试题带答案
JA V A笔试题带答案一.选择题1.下面关于Java语言说法错误的是:()A.java语言是完全面向对象的B。
java语言支持多继承C.java语言支持多线程D。
java语言最早是为消费电子产品领域设计的2.下面标识符中正确的是:()A.*123 B。
12java C.continue D。
java$next3.下列关于注释语句的描述中,正确的一项是()A。
以//开始的是多行注释语句B。
以结束的是单行注释语句C。
以结束的是可以用于生成帮助文档的注释语句D。
以结束的是单行注释语句4.为了区分重载多态中同名的不同方法,要求()。
A)形式参数个数或者类型不同B)返回值类型不同C)调用时用类名或对象名做前缀D)形式参数名称不同5.下面定义数组的格式中正确的是:()A.int a[10] B。
int a=new int[10] C.int []a=new int[5] D.int a[]6.下面说法中不正确的是:()A.类是对象的抽象,对象是类的实例B。
类是组成java程序的最小的单位C.java语言支持多继承D。
java一个程序中只能有一个public类7.定义类时,不可能用到的保留字是()。
A)private B)classC)extends D)implements8.为AB 类的定义一个公共的构造函数,该方法头的形式为()A.void AB( ) B。
public void method( )C.public method ( ) D。
public AB( )9.下面说法中不正确的是:()A.java中一个类只允许实现一个接口B。
抽象类中允许有非抽象方法的存在C.类变量(实例变量)可以直接用类名调用D。
通过super可以调用基类的构造函数10.容器JFrame 默认使用的布局编辑策略是()A.BorderLayout B。
FlowLayout C。
GridLayout D。
CardLayout11.以下哪个表达式是不合法的()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)12.class person{public int addvalue(int a,int b){int s;s=a+b;return s;}}class child extends parent{}若要在child类中对addvalue方法进行重写,下面对于child类中的addvalue 方法头的描述哪个是正确的:A)int addvalue(int I,int j) B)void addvalue()C)void addvalue(double i) D)int addvalue(int a)13.下面程序在fun()方法当出现数组下标超过界限的情况下的输出结果是:()public void test(){try{fun();System.out.print(“情况1”);}catch(ArrayIndexOutOfBoundsException e){ System.out.print(“情况2”);}catch(Exception e){ System.out.print(“情况3”);}finally{ System.out.print(“finally”);}}A.情况1 B。
Java开发工程师笔试题(带答案)
Java开发工程师笔试试题(请不要在试题上留任何痕迹,所有答案均写在答题纸上)一.编程题(共26分)1.任意写出一种排序算法。
(6分)public void sort(int [] array){//代码区}2.求1+2+3+..n(不能使用乘除法、for 、while 、if 、else 、switch 、case 等关键字以及条件判断语句)(8分)public int sum(int n){//代码区return 0;}3.完成下面方法,输入一个整数,输出如下指定样式图案。
(12分)输入:3,输出:1*2*37*8*94*5*6输入:4输出:1*2*3*49*10*11*1213*14*15*165*6*7*8public void drawNumPic(int n){//代码区}二.选择题(定项选择每题3分,不定项选择每题4分,共63分)1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B )A.int floatB.int doubleC.long floatD.long double2.只有实现了__接口的类,其对象才能序列化( A )A.SerializableB.CloneableparableD.Writeable3.代码System. out. println(10 % 3 * 2);将打印出?( B )A. 1B.2C.4D.64.以下程序运行的结果为( A )public class Example extends Thread{@Overridepublic void run(){try{Thread.sleep(1000);}catch (InterruptedException e){e.printStackTrace();}System.out.print("run");}public static void main(String[] args){Example example=new Example();example.run();System.out.print("main");}}A.run mainB.main runC.mainD.runE.不能确定5.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?( B )A.实例变量指的是类中定义的变量,即类成员变量,如果没有初始化,会有默认值B.局部变量指的是在方法中定义的变量,如果没有初始化,会有默认值C.类变量指的是用static修饰的属性D.final变量指的是用final 修饰的变量6.在如下所示的类Test中,共有(D)个构造方法。
JAVA笔试题(答案在最后)
测试题(笔试)Java 面向对象重庆足下科技有限公司不定项选择题(40题,每题2.5分,总分100分,测试时间2小时)1) 当试图编译并运行下面程序时会出现什么结果()(单选)class A{public int getNumber(int a){return a+1;}}class B extends A{public int getNumber(int a, char c){return a+2;}public static void main(String[] args){B b=new B();System.out.println(b.getNumber(0));}}a) 编译错误b) 运行错误c) 1d) 22) 当编译并运行下面程序时会出现什么结果( )(单选)public class MyAr{public static void main(String argv[]){int[] i = new int[5];System.out.println(i[5]);}}a) 编译错误b) 运行错误c) 输出0d) 输出“null”3) final、finally、finalize三个关键字的区别是()(多选)a) final是修饰符(关键字)可以修饰类、方法、变量b) finally在异常处理的时候使用,提供finally块来执行任何清除操作c) finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作d) finally和finalize一样都是用异常处理的方法4) 当编译并运行下面程序时会发生什么结果()(单选)public class Bground extends Thread{public static void main(String argv[]){Bground b = new Bground();b.run();}public void start(){for (int i = 0; i <10; i++){System.out.println("Value of i = " + i);}}}a) 编译错误,指明run方法没有定义b) 运行错误,指明run方法没有定义c) 编译通过并输出0到9d) 编译通过但无输出5) 在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用()关键字来声明父类的这些方法。
JAVA笔试题_附答案版
JAVA笔试题_附答案版一:单选题1. 下列哪一种叙述是正确的(D )A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{ }包住没有body部分C.声明抽象方法,大括号可有可无不存在bodyD.声明抽象方法不可写出大括号2. 如下代码public class Test {public int aMethod() {static int i = 0;i++;return i;}public static void main (String args[]) {Test test = new Test();test.aMethod();int j = test.aMethod();System.out.println(j);}}输出结果是什么? DA. 0B. 1C. 2D. 编译失败3. 下列哪种说法是正确的(D)A.实例方法可直接调用超类的实例方法如果超类没有被重写就可以B.实例方法可直接调用超类的类方法有可能是私有方法不可以调用C.实例方法可直接调用其他类的实例方法不可以D.实例方法可直接调用本类的类方法4. 在Servlet处理请求的方式为: CA.以进程的方式B.以程序的方式C.以线程的方式 Servlet容器默认是采用单实例多线程的方式处理多个请求的:D.以响应的方式5. JDBC中,用于表示数据库连接的对象是: BA.Statement 连接的实例,执行sqlB.Connection 建立与数据库的连接C.DriverManager该方法将建立与数据库的连接D.PreparedStatement6. 用于调用存储过程的对象是: CA.ResultSet 返回结果集B.DriverManagerC.CallableStatemetD.PreparedStatement PreparedStatement代替Statement.7. 按照MVC设计模式,JSP用于实现: BA.ModelB.ViewC.ControllerD.容器8. 如下代码10. public Object m() {11. Object o = new Float(3.14F);12. Object [] oa = new Object[1];13. oa[0] = o;14. o = null;15. oa[0] = null;16. print 'return 0';17. }当Float对象在第11行被创建后, 什么时候能够被垃圾回收? CA. 13行以后.B. 14行以后.C. 15行以后.D. 16行以后.9. 如下代码:class Base {Base() { System.out.print("Base"); }}public class Alpha extends Base {public static void main( String[] args ) {new Alpha(); -----调用父类无参的构造方法new Base();}}结果是什么? BA. BaseB. BaseBaseC. 编译失败.D. 代码运行但没有输出.E. 运行时抛出异常10. 在J2EE中属于Web层的组件有: AA.ServletB.EJBC.AppletD.HTML11. 在Servlet的生命周期中,容器只调用一次的方法是: CA.serviceB.getServletConfigC.initD.destroy12. 以下关于异常的说法正确的是:DA. 一旦出现异常,程序运行就终止了非系统异常仍然可以继续运行B. 如果一个方法申明将抛出某个异常,它就必须真的抛出那个异常不一定C. 在catch子句中匹配异常是一种精确匹配 exception D. 可能抛出系统异常的方法是不需要申明异常的13. 如下代码:public class Foo {public static void main(String[] args) {try {return;} finally {System.out.println( "Finally" );}}}输出结果是什么? AA. FinallyB.编译失败C. 代码正常运行但没有任何输出.D. 运行时抛出异常14. jsp指令中isELIgnored="boolean"的意思是(C )A.决定是否实现Servler的单线程模式,B.决定改页面是否是一个错误处理页面,C.决定是否支持EL表示,D.没有具体的含义。
Java软件开发工程师笔试题(标准答案)
Java工程师笔试题一、填空题(本大题10小题,每空1分,共20分)。
1.Java语言的三大特性即是: 继承、封装、多态。
2.在Java中,char 型采用____unicode_______编码方案,这样,无论是中文字符还是英文字符,都是占用__2___个字节的内存空间。
3. 形式参数指的是方法被__定义____ 时的参数行,实际参数是方法被__调用__ _ 时所传递进去的变量或值。
4.JSP对象则是每个客户专用的。
接口。
6.程序中实现多线程的方法有两种:继承Thread类和实现___Runable _ 接口。
对优先级。
8.面向对象编程的五大设计原则,分别是单一职责、开放封闭、里氏替换、依赖倒置、接口分离9.通过Ajax,客户端获取的数据主要有两种类型:文本型和xml10.Socket通常也称为套接字,用于描述__ ip 和_ _接口二、选择题(本大题20 小题,每小题2分.共40分)。
1.在JA V A中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用( )关键字来声明父类的这些方法:A) final B) static C) abstract D) void2.在JA V A中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是()。
A) interface A extend B,C B) interface A implements B,CC) class A implements B,C D) class A implements B, implements C3.在JA V A接口中可以定义( )。
A) 静态方法B) 常量C) 构造方法D) 抽象方法4.假设A有构造方法A (int a),则在类A的其他构造方法中调用该构造方法和语句格式应为()。
A) A(X) B) this.A(x) C) this(x) D) super(x)5.设x = 1 ,y = 2 , z = 3, 则表达式y+=z--/++x 的值是( )。
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软件开发工程师笔试题(附答案)
中级Java软件开发工程师笔试题(附答案)问题:中级Java软件开发工程师笔试题(附答案)回答:Part I,总计70分-一、单选题(共12题,每题2分,共24分)1.下面关于Java的表述有错误的是_______________A.Java中没有sizeof操作符,所有数据类型的长度都是确定的,与平台无关。
B .在Java中,局部变量不会被自动初始化,需要显式的赋初值。
C. Java中的instanceof运算符,可以判断一个对象是否属于某个类的实例。
D .一个Java文件里可以有多个public类,但Java文件名必须和包含main方法的那个public类名精确一致。
2.下面关于Java中static关键字的表述错误的是_________________A .被static修饰的类成员变量在编译时由内存分配一块空间,直到程序停止运行才会被释放。
B .被static修饰的类方法只能访问其自身类未被static修饰的实例方法,而不能访问其他类的。
C.被static修饰的类方法不能使用this关键字。
D .在没有创建该类的对象时,该类中用static修饰的类方法就可以被调用3.下面关于Java中abstract关键字的表述有错误的是_________________A.用abstract修饰不在类内实现的方法,称为抽象方法;抽象方法必须在子类派生时被重载。
B.用abstract修饰的类为抽象类;抽象类可以同时被static或final关键字修饰。
C.抽象类中不一定包含抽象方法,但包含抽象方法的类一定要声明为抽象类。
D .如果一个类被定义为抽象类,则该类不能进行实例化。
4.下面关于Java中垃圾回收(gc)的表述有错误的是 ___________________A .在String strl = Hello String str2 = str1;str1 = null; 中,对象Hello不会被垃圾回收。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java工程师笔试题一、填空题(本大题10小题,每空1分,共20分)。
1.Java语言的三大特性即是: 继承、封装、多态。
2.在Java中,char 型采用____unicode_______编码方案,这样,无论是中文字符还是英文字符,都是占用__2___个字节的内存空间。
3. 形式参数指的是方法被__定义____ 时的参数行,实际参数是方法被__调用__ _ 时所传递进去的变量或值。
4.JSP对象则是每个客户专用的。
接口。
6.程序中实现多线程的方法有两种:继承Thread类和实现___Runable _ 接口。
对优先级。
8.面向对象编程的五大设计原则,分别是单一职责、开放封闭、里氏替换、依赖倒置、接口分离9.通过Ajax,客户端获取的数据主要有两种类型:文本型和xml10.Socket通常也称为套接字,用于描述__ ip 和_ _接口二、选择题(本大题20 小题,每小题2分.共40分)。
1.在JA V A中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用( )关键字来声明父类的这些方法:A) final B) static C) abstract D) void2.在JA V A中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是()。
A) interface A extend B,C B) interface A implements B,CC) class A implements B,C D) class A implements B, implements C3.在JA V A接口中可以定义( )。
A) 静态方法B) 常量C) 构造方法D) 抽象方法4.假设A有构造方法A (int a),则在类A的其他构造方法中调用该构造方法和语句格式应为()。
A) A(X) B) this.A(x) C) this(x) D) super(x)5.设x = 1 ,y = 2 , z = 3, 则表达式y+=z--/++x 的值是( )。
A) 3 B) 3.5 C) 4 D) 56.下列关于继承的说法哪个正确?( )。
A)子类只继承父类public方法和属性:B)子类继承父类的非私有属性和方法:C)子类继承父类的方法,而不继承父类的属性:D) 子类将继承的所有的属性和方法.7.在java中.在使用JDBC时。
对于多次调用同一条SQL语句的情况, 使用( )通常会提高效。
A) Statement B) CallableStatementC) PreparedStatement D) PrarmeterStatement8.下列不能控制一个Servlet的生命周期方的法是:A) service B) destroy C) doPost D) init9.能够给一个byte型变量赋值的范围是( )。
A) 0~65535 B) (-128)~127C)(-32, 768)~32, 767 D) (-256)~25510.java语言中int类型数据占用多少位?( )。
A) 32 B) 64 C) 16 D) 2011. ServletContext对象是如何创建的?( )。
A) 由Servlet容器创建,对于每个HTTP请求.Servlet容器都会创建一个ServletContext对象B)由JavaWeb 应用本身为自己创建一个ServletContext对象C)由Servlet容器创建,对于每个JaveWeb应用,在启动时,Servlet容器都会创建一个ServletContext对象12.在JSP中不能在不同用户之间共享数据的方法是( )。
A) 通过cookie B) 利用文件系统C) 利用数据库D) 通过ServletContext对象13.以下哪个不是Collection的子接口?( )。
A) List B) Set C) Map D) SortedSet14. 下面正确的创建Socket 的语句是( )。
A) Socket a = new Soeket(80):B) Socket b = new Socket("130. 3. 4. 5", 80):C) ServerSocket c = new Socket(80)D) ServerSocket d = new Socket ("130. 3. 4, 5", 80)15.下面的说法正确的是( )。
A)带有页作用域的对象在一个web应用程序的每个JSP中都存在.B)指令指定与一个特定的JSP 请求不相关的全局信息。
C)当JSP容器遇到开始定制标签和结束定制标签时,分别调用doInitBody方法和doAfterBody方法。
D) <jsp:inclnde>动作只在翻译时处理一次。
16.为了区分重载多态中同名的不同方法,要求:( )。
A)参数名不同B) 采用不同的形式参数列表C)返回值类型不同D) 选项A, B, C都对17.下面是有关子类调用父类构造函数的描述正确的是:( )。
A)子类定义了自己的构造函数.就不会调用父类的构造函数B)子类必须通过Super关键字调用父类有参数的构造函数C)如果子类的构造没有通过super调用父类构造函数,那么子类会先调用子类自己的构造函数,再调用父类不含参数的构造函数。
D)创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数18.在Java中,负责对字节代码解释执行的是( )。
A) 垃圾回收器B) 虚拟机C) 编译器D) 多线程机制19.一个java程序运行从上到下的环境次序是( )。
A) 操作系统、Java程序、jre/jvm、硬件B) jre/jvm、Java程序、硬件、操作系统C) java程序、jre/jvm、操作系统、硬件D) java程序、操作系统、jre/jvm、硬件20.对于从Employee表中选择记录的以下代码片段,识别其遗漏的代码行。
( ) Connection con = null:Class. forName("sun.jdbc.odbc.JdbcOdbcDriver"):con=DriverManager.getConnection("jdbc:odbc:ss" , "sa" , "");ResultSet rs=stat.executeQuery("select * from Employee");A) Statement stat=createStatement();B) Statement stat=con.createStatement ();C) PreparedStatement stat=con.createStatement():D) PreparedStatement stat=createPreparedStatement();三、问答题(本大题6小题,共40分)。
1.请说出ArrayList , Vector , LinkedList 的存储性能和特性。
(6分)2.什么是单例模式(Singleton) ? 请在下面写出一个单例模式类,并支持多线程调用。
(6分)3.请描述一下JVM加载class文件的原理机制?(6分)4.请谈谈对SQL注入的理解,请给出你知道的防止SQL注入的方法。
(6分)5.请谈谈对Hibernate的理解,并简要叙述Hibernate的一级缓存和二级缓存(8分)。
6.请写出你知道的排序方法,并使用Java语言写出其中一种。
(8分)答案:一、填空题1.封装、继承、多态2.unicode 23.定义调用4.application session5.Seralizabe6.runnable7.setPriority()8.单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)9.xml10.IP地址接口二、选择题1.C2.C3.BD4.C5.A6.B7.C8.C9.B10.A11.C12.A13.C14.C15.D16.B17.B18.B19.C20.B三、简答题(参考答案)1.ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
2.创建某类对象时,无论创建多少次该类对象只有一份在内存中,这就是单例模式。
支持多线程调用,考虑线程安全,只需要加锁即可。
public class Singleton{private static Singleton instance = null;private Singleton(){}private static synchronized void syncInit(){if(instance == null){instance = new Singleton();}}public static Singleton getInstance(){if(instance == null){syncInit();}return instance;}}3.JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader是一个重要的Java运行时系统组件。
它负责在运行时查找和装入类文件的类。
4.解决办法:a.利用Javascript,在客户端进行校验。
b.程序判断c.使用PreparedStatement连接数据库。
(参数化)d.利用框架技术5.Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
一级缓存就是Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个session(一定要同一个session)又做了同一个操作,那么hibernate直接从一级缓存中拿,而不会再去连数据库,取数据;二级缓存就是SessionFactory级别的缓存,顾名思义,就是查询的时候会把查询结果缓存到二级缓存中,如果同一个sessionFactory创建的某个session执行了相同的操作,hibernate就会从二级缓存中拿结果,而不会再去连接数据库;6.插入排序、希尔排序、冒泡排序、快速排序、直接排序、归并排序下面以快速排序为例:1. public class quickSort {2.3. inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};4. public quickSort(){5. quick(a);6. for(int i=0;i<a.length;i++){7. System.out.println(a[i]);8. }9. }10. public int getMiddle(int[] list, int low, int high) {11. int tmp =list[low]; //数组的第一个作为中轴12. while (low < high){13. while (low < high&& list[high] >= tmp) {14. high--;15. }16.17. list[low] =list[high]; //比中轴小的记录移到低端18. while (low < high&& list[low] <= tmp) {19. low++;20. }21.22. list[high] =list[low]; //比中轴大的记录移到高端23. }24. list[low] = tmp; //中轴记录到尾25. return low; //返回中轴的位置26. }27.28. public void _quickSort(int[] list, int low, int high) {29. if (low < high){30. int middle =getMiddle(list, low, high); //将list 数组进行一分为二31. _quickSort(list, low, middle - 1); //对低字表进行递归排序32. _quickSort(list,middle + 1, high); //对高字表进行递归排序33. }34. }35.36. public void quick(int[] a2) {37. if (a2.length > 0) { //查看数组是否为空38. _quickSort(a2,0, a2.length - 1);39. }40. }41. }。