Java软件开发工程师笔试题答案剖析
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笔试题及答案在这篇文章中,我将为大家提供一些常见的Java笔试题及其答案。
无论你是准备面试还是进行自我评估,这些问题都能帮助你进一步了解Java编程语言和相关概念。
请您放心,以下笔试题的解答均为准确的,并能满足您的需求。
1. 什么是Java中的包(package)?答:Java中的包是用来组织类和接口的一种机制。
它将相关的类和接口放在一个单独的包中,从而使得代码更易于管理和维护。
可以将包理解为文件夹,类和接口则是包内的文件。
2. Java中的四种访问修饰符是什么?分别解释它们的作用。
答:四种访问修饰符分别是public、protected、private和default (即没有修饰符)。
它们用于限定类、成员变量和方法的访问范围。
具体作用如下:- public:可以被任何类访问。
- protected:可以被同一包内的类和子类访问。
- private:只能被所属类访问。
- default:只能被同一包内的类访问。
3. 什么是静态变量和静态方法?它们有什么特点?答:静态变量(static variable)是指在类中声明的变量,被所有该类的对象所共享。
静态方法(static method)是指在类中声明的方法,可以直接通过类名调用,无需创建对象。
静态变量和静态方法的特点如下:- 它们属于类而不是对象,因此可以在没有对象的情况下访问。
- 静态变量在内存中只有一个副本,所有对象共享该变量。
- 静态方法无法访问非静态成员,因为非静态成员属于对象,而静态方法没有隐式的对象引用。
4. Java中的重载(overload)和重写(override)有什么区别?答:重载是指在一个类中定义多个方法,具有相同的名称但参数类型或个数不同。
重载实现了多态性,可以根据不同的参数类型或个数选择调用相应的方法。
而重写是指子类重新定义父类的方法,并使用相同的名称、参数和返回类型。
重写实现了多态性,可以在运行时动态选择调用子类的方法还是父类的方法。
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年

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开发工程师试卷及答案解析一、单选题 (共19道题,每题5分)1.下面有关java的一些细节问题,描述错误的是?A.构造方法不需要同步化B.一个子类不可以覆盖掉父类的同步方法C.定义在接口中的方法默认是public的D.容器保存的是对象的引用2.在Java中,以下关于方法重载和方法重写描述正确的是()A.方法重载和方法的重写实现的功能相同B.方法重载出现在父子关系中,方法重写是在同一类中C.方法重载的返回值类型必须一致,参数项必须不同D.方法重写的返回值类型必须相同或相容。
(或是其子类)3.在JAVA中,下面关于String类和StringBuffer类的描述正确的是那一个?A.StringBuffer类的对象调用toString()方法将转换为String类型B.两个类都有append()方法C.可以直接将字符串“test”赋值给声明的Stirng类和StringBuffer类的变量D.两个类的实例的值都能够被改变4.下面有关List接口、Set接口和Map接口的描述,错误的是?A.他们都继承自Collection接口B.List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置C.Set是一种不包含重复的元素的CollectionD.Map提供key到value的映射。
一个Map中不能包含相同的key,每个key只能映射一个value5.下面有关spring的依赖注入,说法错误的是?A.依赖注入通常有如下两种:设值注入和构造注入:B.构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入C.当设值注入与构造注入同时存在时,先执行构造注入,再执行设值注入D.设值注入是指IoC容器使用属性的setter方法来注入被依赖的实例。
这种注入方式比较简单、直观6.下面不属于HttpServletRequest接口完成功能的是?A.读取cookieB.读取HTTP头C.设定响应的content类型D.读取路径信息7.从以下哪一个选项中可以获得Servlet的初始化参数?A.ServletB.ServletContextC.ServletConfigD.GenericServlet8.下列关于java抽象类的'说法哪个正确?A.某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法B.接口和抽象类是同一回事C.可以用抽象类直接去实例化创建对象D.一个类只能继承一个抽象类9.下面关于spring和struts2的描述,错误的是?A.spring mvc的入口是filter,而struts2是servletB.spring mvc是基于方法的设计,而struts2是基于类的设计C.struts2有以自己的interceptor机制,spring mvc用的是独立的AOP方式D.spring mvc的方法之间基本上独立的,独享request response 数据,struts2所有Action变量是共享的10.关于JAVA的垃圾回收机制,下面哪些结论是正确?A.程序可以任意指定释放内存的时间B.JAVA程序不能依赖于垃圾回收的时间或者顺序C.程序可明确地标识某个局部变量的引用不再被使用D.程序可以显式地立即释放对象占有的内存11.一般用()创建InputStream对象,表示从标准输入中获取数据,用()创建OutputStream对象,表示输出到标准输出设备中。
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开发工程师笔试题与参考答案(某大型央企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、在Java中,以下哪个关键字用于声明一个类的静态变量?A、publicB、privateC、staticD、final2、在Java中,以下哪个关键字用于声明一个方法为抽象方法?A、abstractB、nativeC、synchronizedD、transient3、在Java中,下列哪个关键字用于声明一个抽象类?A、finalB、staticC、abstractD、native4、以下哪个方法可以用来检查一个字符串是否以指定的后缀结束?A、String.endsWith(String suffix)B、String.startsWith(String prefix)C、String.indexOf(String str)D、stIndexOf(String str)5、以下哪个Java关键字是用来定义类的?A. newB. classC. objectD. this6、在Java中,以下哪个方法可以在子类中被重写(Override)?A. 静态方法B. 私有方法C. 构造方法D. 抽象方法7、以下哪个不是Java中的基本数据类型?A、intB、StringC、floatD、boolean8、关于Java中的异常处理,以下说法正确的是:A、try块中可以没有catch或finally块B、finally块中可以抛出新的异常C、try块中可以抛出异常,但finally块中不能抛出异常D、try块中抛出的异常必须在catch块中处理,或者在finally块中处理9、在Java中,以下哪个类是用于处理日期和时间的?A. CalendarB. DateC. TimeD. DateTime 10、以下哪个关键字用于声明一个无参构造函数?A. newB. thisC. constructorD. super二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些是Java中的基本数据类型?A、intB、StringC、floatD、booleanE、char2、以下哪些操作是Java中的异常处理机制?A、try-catchB、finallyD、throwsE、instanceof3、以下哪些是Java中用于异常处理的机制?()A. try-catchB. finallyC. throwsD. throwE. extends4、下列关于Java集合框架的说法,正确的是?()A. List接口是集合框架中的一部分,它允许存储重复的元素。
java笔试题答案详解

java笔试题以及答案详解一一、单项选择题1.Java是从()语言改进重新设计。
A.Ada B.C++ C.Pasacal D.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详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。
4.提供Java存取数据库能力的包是()A.java.sql B.java.awt C.ng D.java.swing 答案:A5.下列运算符合法的是()A.&& B.<> C.if D.:=答案:A详解:6.执行如下程序代码a=0;c=0;do{--c;a=a-1;}while(a>0);后,C的值是()A.0 B.1 C.-1 D.死循环答案:C详解:7.下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{ }包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D详解:8.下列语句正确的是()A.形式参数可被视为local variableB.形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:A详解:9.下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二、多项选择题1.Java程序的种类有()A.类(Class)B.Applet C.Application D.ServletJava程序的种类有:1、内嵌于web文件中,由浏览器来观看的Applet2、可独立运行的Application3、服务器端的Servlet2.下列说法正确的有()A.环境变量可在编译source code时指定B.在编译程序时,所能指定的环境变量不包括class pathC.javac一次可同时编译数个Java源文件D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD3.下列标识符不合法的有()A.new B.$Usdollars C.1234 D.car.taxi答案:ACD解释:4.下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C.int number=[]={31,23,33,43,35,63}D.数组的大小可以任意改变答案:BCD解释:5.不能用来修饰interface的有()A.private B.public C.protected D.static答案:ACD解释:6.下列正确的有()A.call by value不会改变实际参数的数值B.call by reference能改变实际参数的参考地址C.call by reference不能改变实际参数的参考地址D.call by reference能改变实际参数的内容7.下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:CD解释:8.下列说法错误的有()A.Java面向对象语言容许单独的过程与函数存在B.Java面向对象语言容许单独的方法存在C.Java语言中的方法属于类中的成员(member)D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同答案:ABC解释:9.下列说法错误的有()A.能被java.exe成功运行的java class文件必须有main()方法B.J2SDK就是Java APIC.Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的java class文件必须有main()方法解释:三、判断题1.Java程序中的起始类名称必须与存放该类的文件名相同。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java工程师笔试题一、填空题(本大题10小题,每空1分,共20分)。
语言的三大特性即是: 继承、封装、多态。
2.在Java中,char 型采用____unicode_______编码方案,这样,无论是中文字符还是英文字符,都是占用__2___个字节的内存空间。
3. 形式参数指的是方法被__定义____ 时的参数行,实际参数是方法被__调用___ 时所传递进去的变量或值。
专用的。
口?。
6.程序中实现多线程的方法有两种:继承Thread类和实现___Runable _ 接口。
先级。
?8.面向对象编程的五大设计原则,分别是单一职责、开放封闭、里氏替换、依赖倒置、接口分离9.通过Ajax,客户端获取的数据主要有两种类型:文本型和 xml10. Socket通常也称为套接字,用于描述 __ ip 和 _ _接口二、选择题(本大题 20 小题,每小题2分.共40分)。
1.在JAVA中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用( )关键字来声明父类的这些方法:A) final B) static C) abstract D) void2.在JAVA中,已定义两个接口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.在JAVA接口中可以定义( )。
A) 静态方法 B) 常量 C) 构造方法D) 抽象方法4.假设A有构造方法A (int a),则在类A的其他构造方法中调用该构造方法和语句格式应为()。
A) A(X) B) (x) C) this(x) D) super(x)5.设 x = 1 ,y = 2 , z = 3, 则表达式 y+=z--/++x 的值是( )。
A) 3 B) 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)~255语言中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:con=("jdbc:odbc:ss" , "sa" , "");ResultSet rs=("select * from Employee");A) Statement stat=createStatement();B) Statement stat= ();C) PreparedStatement stat=():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.封装、继承、多态23.定义调用session()8.单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)地址接口二、选择题三、简答题(参考答案)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<;i++){8. }9. }10. public int getMiddle(int[] list, int low, int high) {11. int tmp =list[low]; while (low < high){13. while (low < high&& list[high] >= tmp) {14. high--;15. }16.17. list[low] =list[high]; while (low < high&& list[low] <= tmp) {19. low++;20. }21.22. list[high] =list[low]; }24. list[low] = tmp; return low; }27.28. public void _quickSort(int[] list, int low, int high) {29. if (low < high){30. int middle =getMiddle(list, low, high); _quickSort(list, low, middle - 1); _quickSort(list,middle +1, high); }34. }35.36. public void quick(int[] a2) {37. if > 0) { _quickSort(a2,0, - 1);39. }40. }41. }。