Java笔试题答案.docx

上传人:b****5 文档编号:15167916 上传时间:2023-07-02 格式:DOCX 页数:10 大小:22.61KB
下载 相关 举报
Java笔试题答案.docx_第1页
第1页 / 共10页
Java笔试题答案.docx_第2页
第2页 / 共10页
Java笔试题答案.docx_第3页
第3页 / 共10页
Java笔试题答案.docx_第4页
第4页 / 共10页
Java笔试题答案.docx_第5页
第5页 / 共10页
Java笔试题答案.docx_第6页
第6页 / 共10页
Java笔试题答案.docx_第7页
第7页 / 共10页
Java笔试题答案.docx_第8页
第8页 / 共10页
Java笔试题答案.docx_第9页
第9页 / 共10页
Java笔试题答案.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java笔试题答案.docx

《Java笔试题答案.docx》由会员分享,可在线阅读,更多相关《Java笔试题答案.docx(10页珍藏版)》请在冰点文库上搜索。

Java笔试题答案.docx

Java笔试题答案

Java笔试题

面试岗位:

高级中级初级笔试时间:

姓名:

一、jQuery

1、Java如果需要匹配包含文本的元素,用下面哪种来实现?

(单选)

A、text()B、contains()C、input()D、attr(name)


考点:

jquery的选择器(B)

2、在jquey中,如果想要从DOM中删除所有匹配的元素,下面哪一个是正确的?

(单选)

A、delete()B、empty()C、remove()D、removeAll()


考点:

jquery的文档处理(C)

3、为每一个指定元素的指定事件(像click)绑定一个事件处理器函数,下面哪个是用来实现该功能的?

(单选)

A、trigger(type)B、bind(type)C、one(type)D、bind


考点:

jquery的事件操作(B)

4、当一个文本框中的内容被选中时,想要执行指定的方法时,可以使用下面哪个事件来实现?

(单选)


A、click(fn)B、change(fn)C、select(fn)D、bind(fn)


考点:

jquery的事件处理(C)

5、在jquery中,想让一个元素隐藏,用________实现,显示隐藏的元素用_________实现。

考点:

jquery的页面效果(hide(),show())

6、在jquery中想要实现通过远程httpget请求载入信息功能的是下面的哪一下事件?

(单选)

A、$.ajax()B、load(url)C、$.get(url)D、$.getScript(url)


考点:

jquery的ajax(C)

7、在一个表单中,如果想要给输入框添加一个输入验证,可以用下面的哪个事件实现?

(单选)


A、hover(over,out)B、keypress(fn)

C、change()D、change(fn)


考点:

jquery的事件处理(D)

8、如果想在一个指定的元素后添加内容,下面哪个是实现该功能的?

(单选)

A、append(content)B、appendTo(content)

C、insertAfter(content)D、after(content)


考点:

jquery的文档处理(D)

二、Java

1、JAVA的基本数据类型有哪些?

String是不是基本数据类型?

数值型:

——整型:

byte(字节型)、short(短整型)、int(整型)、long(长整型)——浮点型:

float(单精度浮点数)、double(双精度浮点数)字符型:

char布尔类型:

booleanString不是基本数据类型,它属于引用数据类型当中的class类型。

2、数组有没有length()这个方法?

String有没有length()这个方法?

数组没有length()这个方法,只有length的属性。

String有有length()这个方法。

3、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

可以。

4、abstractclass和interface有什么区别?

设计目的不同:

接口体现的是一种规范,类似于整个系统的“总纲”,它制定了系统各模块应该遵循的标准。

抽象类作为多个子类的共同父类,体现的是模板式设计。

抽象类可以被当成系统实现过程中的中间产品,这个中间产品已经实现了部分功能,但这个产品还不能当成最终产品,必须交由其子类作更进一步的完善,这种完善可能有几种不同方式。

用法不同:

在接口里:

(1)接口里只能包含不带方法体的非静态的抽象方法。

(2)接口里只能定义静态常量属性(3)接口里不能包含初始化块和构造方法(4)一个类可以实现多个接口,并且必须实现接口中所有的抽象方法。

在抽象类里:

(1)抽象类中既可以包含普通方法也可以定义静态方法。

(2)抽象类既可以包含普通属性,也可以包含静态常量属性(3)抽象类中以包含初始化块并且也可以有构造方法,但是不用于创建对象,而是让子类调用(4)一个只能继承一个父类当一个抽象类被子类继承时子类要么重写父类的抽象方法要么将子类定义为抽象类。

5、你所知道的集合类都有哪些?

主要方法?

线性表型的集合:

List——ArrayList、LinkedList、Vector、Stack

不允许有重复元素的Set集合:

Set——HashSet

“键-值”对型的集合:

Map——HashMap、HashTable

主要方法:

ArrayList:

add(intindex,Eelement)、add(Ee)、remove(intindex)remove(Objecto)、get(intindex)、size()、indexOf(Objectobj)subList(intfromIndex,inttoIndex)、clear()

LinkedList:

push(Ee)、pop()、pollLast()、pollFirst()、peek()、get(intindex)、getFirst()、getLast()、addFirst(Ee)addLast(Ee)、add(Ee)、remove()、remove(intindex)remove(Objecto)

Vector:

firstElement()、elements()、contains(Objecto)、add(intindex,Eelement)、clear()

Stack:

构造方法:

Stackst=newStack();Stackst=newStack();其他方法:

peek()、pop()、push(Eitem)、empty()、search(Objecto)

HashSet:

构造方法HashSet()HashSet(c)其他方法contains(Objecto)、isEmpty()、iterator()、remove(Objecto)size()

HashMap:

entrySet()、get(Objectkey)、isEmpty()、keySet()、put(Kkey,Vvalue)

6、final,finally的区别。

final:

(1)final关键字可用于修饰类、变量和方法,用于表示它所修饰的类、变量和方法不可改变。

变量:

final修饰变量时,表示该变量一旦获得了初始值之后就不可被改变,final既可修饰成员变量(包括类变量和实例变量),也可以修饰局部变量、形参。

方法:

final修饰的方法不可被重写,如果出于某些原因,不希望子类重写父类的某个方法,则可以使用final修饰该方法。

类:

final修饰的类不可有子类。

finally:

(1)finally关键字用于异常处理机制中往往跟在try-catch语句块之后,finally语句所包含的代码在任何情况下都会被执行会被执行,且在try-catch语句块中只能有一个finally语句块。

7、List和Map区别?

列表(List):

(1)List列表区分元素的顺序,即List列表能够精确的控制每个元素插入的位置,用户能够使用索引来访问List中的元素。

(2)List允许包含重复元素。

映射(Map):

(1)保存的是“键-值”对信息,即Map中存储的每个元素都包括起标识作用的“键”和该元素的“值”两部分,查找数据时需要提供相应的“键”,才能查找到该“键”所映射的“值”。

(2)Map集合中不能包含重复的“键”,并且每个“键”最多只能映射一个值。

8、将一个数组中的重复元素保留一个其他的清零。

int[] a = { 1, 2, 2, 3, 4, 5, 6, 4, 7 ,2 ,10}; 

for (int i = 0;i < a.length - 1;i ++){

for (int j = i + 1;j < a.length;j ++){

if (a[i] == a[j]){

            a[j] = 0;

        }

     }

}

9、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第5次落地时,共经过多少米?

再反弹弹起多少米?

double sn = 100;//高度100米

double hn = sn / 2; //第一次反弹反弹高度

for (int i = 2;i <= 5;i ++){

sn = sn + hn * 2; //第i次落地经过多少米

       hn = hn / 2; //第i次反弹的高度

      System.out.println(“第”‖ + i + “次落地经过”‖ + sn + “米”); 

      System.out.println(“第”‖+ i+”次反弹”‖+hn+”米”);

10、写一个Singleton出来。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

一般Singleton模式通常有几种种形式:

 

第一种形式:

 

定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例化,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

public class Singleton { 

private Singleton(){} //在自己内部定义自己一个实例,是不是很奇怪?

注意这是private 只供内部调用

private static Singleton instance = new Singleton(); //这里提供了一个供外部访问本class的静态方法,可以直接访问

public static Singleton getInstance() { 

 return instance; 

 } 

第二种形式:

  

public class Singleton { 

private static Singleton instance = null; 

public static synchronized Singleton getInstance() { //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率!

if (instance==null) 

instance=new Singleton(); 

 return instance; 

 } 

其他形式:

 

定义一个类,它的构造函数为private的,所有方法为static的。

一般认为第一种形式要更加安全些 

三、Spring

1、对IOC的理解?

IOC的全称是:

InversionofControl(即:

控制反转).理解:

在传统的应用程序中,控制权在应用程序本身,程序的控制流程完全由开发者控制。

在IOC容器中,控制权发生了反转:

从应用程序转移到了IOC容器。

组件不再由应用程序负责创建和配置,而是由IOC容器负责,应用程序只需要直接使用已经创建并配置好的组件。

为了让组件能在IOC容器中被“装配”出来,需要某种“注入”的机制,才能将一种组件“注入”到另一种组件中。

简单来说,依赖注入解决了最主要的问题:

将组件的配置与使用相分离,并且由IoC容器负责管理组件的生命周期。

简单来说:

控制反转就是由容器控制程序之间的(依赖)关系.。

2、依赖注入的三种实现形式?

a.接口注入(InterfaceInjection)说明:

通过实现一个接口来实现对依赖对象的注入.

b.设值方法注入(Setter注入).说明:

对象创建之后,将被依赖对象通过set方法设置进去.

c.构造方法注入(Constructorinjection).说明:

对象创建时,被依赖对象以构造方法参数的方式注入.

3、Springbean的生命周期?

定义->初始化->使用->销毁

4、Spring事务特点?

事务是用户定义的一个数据库操作序列。

这些操作要么都做,要么都不做,是一个不可分割的工作单位。

事务具有四个特性:

1.原子性:

一个事务中所有对数据库的操作是一个不可分割的操作序列。

这些操作要么完整的被全部执行,要么一步也不做。

是一个逻辑工作单位。

2.一致性:

一个事务独立执行的结果将保持一致性,即数据不会因为事务的执行而遭受破坏。

3.隔离性:

一个事务的执行不能被其他事务干扰。

即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

4.持久性:

一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

接下来的其他操作或故障不应该对其执行结果有任何影响。

5、spring中的BeanFactory与ApplicationContext的作用和区别?

答:

BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期。

ApplicationContext是BeanFactory的扩展,除了提供上述BeanFactory所能提供的功能之外,功能得到了进一步的增强,比如容易与SpringAOP集成,资源处理(国际化处理),事件传递及各种不同应用层的context实现。

6、Spring框架在web容器是如何启动的?

答:

(1)当web服务器(tomcat)启动时,会加载所有工程中的web.xml文件.

(2)在web.xml文件中会配置这2个属性。

四、Struts

1、Struts的工作流程

答:

当客户端向浏览器发送HTTP请求时,所有浏览器请求都被提交给ActionServlet处理。

如果用户提交表单,则会将表单中的数据放入到ActionForm中。

ActionServlet根据struts_config.xml文件中预先配置好的设置选择将请求转发到哪个action对象,action对象从actionForm对象中获取数据,但后调用业务逻辑组件,完成业务功能。

2、说说struts是如何实现MVC的?

Struts采用JSP作为MVC的视图,控制器由ActionServlet和Action类来实现.控制器负责视图和模型之间的交互.模型由实现业务逻辑的JavaBean或EJB组件构成,然后说说Struts的工作流程.

3、strust的Action是不是线程安全的?

如果不是有什么方式可以保证Action的线程安全?

如果是,说明原因。

答:

不是.为了确保action的线程安全,最好的办法就是不要在action里定义实列变量。

4、Struts的常用标签库及用法?

常见的struts标签库有strutshtml标签库,strutsbean标签库,strutsLogic标签库,StrutsTemplate标签库,StrutsNested标签库。

用法:

五、iBatis

1、iBatis动态标签有哪些?

答:

动态标签的分类:

标签二元标签一元标签标签。

动态标签都属于SQL语句的一部分,所以这些标签在存在于SQL语句中,具体可以出现在select,insert,delete,update,statement,sql等语句中。

这几类标签的共同属性prepend,open,close。

prepend属性:

表示前缀。

在标签内容前加的文字。

open属性:

在标签内容开始的时候添加的文字close属性:

在标签内容结束的时候添加的文字。

(1)一元条件标签

检查是否存在该属性(存在parameterbean的属性)

检查是否不存在该属性(不存在parameterbean的属性)

检查属性是否为null

检查属性是否不为null

检查Collection.size()的值,属性的String或String.valueOf()值,是否为null或空(“”或size()<1)

检查Collection.size()的值,属性的String或String.valueOf()值,是否不为null或不为空(“”或size()>0)

(2)二元条件标签

比较属性值和静态值或另一个属性值是否相等

比较属性值和静态值或另一个属性值是否不相等。

比较属性值是否大于静态值或另一个属性值。

比较属性值是否大于等于静态值或另一个属性值。

:

比较属性值是否小于静态值或另一个属性值。

:

比较属性值是否小于等于静态值或另一个属性值。

2、Hibernate和iBatis的映射关系

答:

Hibernate是一个ORM(对象关系映射)框架.它使数据库的元数据和类的元数据之间建立一种关系.iBatis是把sql语句的参数与结果映射为类.它是在类与数据库表之间建立了一个额外的连接层,这样就会在类和数据库表之间建立映射关系带来了更大的灵活性.使得在不改变数据模型或者对象模型的情况下改变它们的映射关系成为可能.iBatis映射的是SQL语句,而不是类和表之间的关系.这就是iBatis和hibernate的本质区别.

3、iBatis中使用like‘%#filedName#%’时,有什么问题?

答:

在xml映射文件中,如果直接按如上写法,会报异常:

java.sql.SQLException:

InvalidargumentinJDBCcall:

parameterindexoutofrange:

1。

所以一般会采用如下两种方式:

1)将#换成$,如like‘%$filedName$%’,这样就没有问题了..

2)采用字符串联接符||,如:

like‘%“||#filedName#||”%‘

4、iBatis中#与$的区别?

#说明:

a.#是把传入的数据当作字符串,如#field#传入的是id,则sql语句生成是这样,orderby"id".b.#相当于JDBC中上的?

号,以对象的方式传递参数,可以防止SQL注入攻击。

$说明:

a.$传入的数据直接生成在sql里,如#field#传入的是id,则sql语句生成是这样,orderbyid.b.$以拼接字符串的方式传递参数,经典用场是like语句,使用$符号做占位符时应特别注意防止SQL注入攻击。

总结:

一般能用#就不同$.

六、综合

1、SSH或SSI框架的配置文件加载顺序.

答:

在SSH三层架构中,主要用Struts来实现对页面的响应及页面跳转。

当用户向服务器发送某一个请求,这个请求会被服务器(Tomcat)接收到,服务器会根据请求的内容,将这个请求发送给相应的Servlet实例进行处理。

Servlet会根据其内容,去生成相应的Action实例。

Struts将Action的创建工作交给了Spring来完成,创建这个实例后,将这个实例注入,由Struts调用Action中的相应方法。

Action中可以配置一个或多个Service对象,Action调用Service中的方法进行业务处理。

Service中通常会有一个或多个DAO的对象,DAO继承了Hibernate的接口,用来处理数据库的操作。

而Action,Service,DAO的创建与注入,都是由Spring的Bean工厂来实现的。

SSI略。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2