admin 管理员组

文章数量: 1086019


2024年3月8日发(作者:bootstrap table 的onclickrow)

Java笔试题

面试岗位: 高级 中级 初级 笔试时间: 姓名:

一、jQuery

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

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

考点:jquery的选择器 (B)

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

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

考点:jquery的文档处理 (C)

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

A、trigger (type) B、bind(type)

考点:jquery的事件操作 (B)

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

A、click(fn) B、change(fn)

考点:jquery的事件处理 (C)

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

考点:jquery的页面效果 (hide(),show())

C、select(fn) D、bind(fn)

C、one(type) D、bind

D、removeAll()

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

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

考点:jquery的ajax (C)

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

A、hover(over ,out)

C、change()

B、keypress(fn)

D、change(fn)

考点:jquery的事件处理 (D)

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

A、append(content)

C、insertAfter(content)

考点:jquery的文档处理 (D)

二、Java

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

数值型:——整型:byte(字节型)、short(短整型)、int(整型)、long(长整型)——浮点型:float(单精度浮点数)、double(双精度浮点数)字符型:char布尔类型:boolean String不是基本数据类型,它属于引用数据类型当中的class类型。

B、appendTo(content)

D、after(content)

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

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

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

可以。

4、abstract class和interface有什么区别?

设计目的不同:

接口体现的是一种规范,类似于整个系统的“总纲”,它制定了系统各模块应该遵循的标准 。抽象类作为多个子类的共同父类,体现的是模板式设计。抽象类可以被当成系统实现过程中的中间产品,这个中间产品已经实现了部分功能,但这个产品还不能当成最终产品,必须交由其子类作更进一步的完善,这种完善可能有几种不同方式。

用法不同:

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

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

5、你所知道的集合类都有哪些?主要方法?

线性表型的集合:List——ArrayList、LinkedList、Vector、Stack

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

“键-值”对型的集合:Map——HashMap、HashTable

主要方法:

ArrayList:add(int index, E element)、add(E e)、remove(int

index)remove(Object o)、get(int index)、size()、indexOf(Object

obj)subList(int fromIndex, int toIndex)、clear()

LinkedList:push(E e)、pop()、pollLast()、pollFirst()、peek()、get(int index)、getFirst()、getLast()、addFirst(E e)addLast(E e)、add(E e)、remove()、remove(int index)remove(Object o)

Vector:firstElement()、elements()、contains(Object o)、add(int index, E

element) 、clear()

Stack:构造方法:Stack st=new Stack(); Stack st = new Stack();其他方法:peek() 、pop() 、push(E item) 、empty()、search(Object o)

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

HashMap:entrySet() 、get(Object key)、isEmpty()、keySet()、put(K key,

V value)

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 < - 1;i ++){

}

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

double sn = 100; //高度100米

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

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

a[j] = 0;

}

}

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

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

sn = sn + hn * 2;

//第i次落地经过多少米

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

n(“第”‖ + i + “次落地经过”‖ + sn + “米”);

n(“第”‖+ i+”次反弹”‖+hn+”米”);

}

10、写一个Singleton出来。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般Singleton模式通常有几种种形式:

第一种形式:

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

public class Singleton {

}

第二种形式:

public class Singleton {

}

其他形式:

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

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

三、Spring

1、对IOC的理解?

private static Singleton instance = null;

public static synchronized Singleton getInstance() { //这个方法比上面有if (instance==null)

}

instance=new Singleton();

return instance;

private Singleton(){} //在自己内部定义自己一个实例,是不是很奇怪?注private static Singleton instance = new Singleton(); //这里提供了一public static Singleton getInstance() {

}

return instance;

意这是private 只供内部调用

个供外部访问本class的静态方法,可以直接访问

所改进,不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率!

IOC的全称是: Inversion of Control(即: 控制反转). 理解: 在传统的应用程序中,控制权在应用程序本身,程序的控制流程完全由开发者控制。在IOC容器中,控制权发生了反转:从应用程序转移到了IOC容器。组件不再由应用程序负责创建和配置,而是由IOC容器负责,应用程序只需要直接使用已经创建并配置好的组件。 为了让组件能在IOC容器中被“装配”出来,需要某种“注入”的机制,才能将一种组件“注入”到另一种组件中。 简单来说,依赖注入解决了最主要的问题:将组件的配置与使用相分离,并且由IoC容器负责管理组件的生命周期。

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

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

a. 接口注入(Interface Injection) 说明: 通过实现一个接口来实现对依赖对象的 注入.

b. 设值方法注入(Setter注入). 说明: 对象创建之后,将被依赖对象通过set方法设 置进去.

c. 构造方法注入(Constructor injection). 说明: 对象创建时,被依赖对象以构造 方法参数的方式注入.

3、Spring bean的生命周期?

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

4、Spring 事务特点?

事务是用户定义的一个数据库操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。事务具有四个特性: 1. 原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列。这些操作要么完整的被全部执行,要么一步也不做。是一个逻辑工作单位。 2.一致性:一个事务独立执行的结果将保持一致性,即数据不会因为事务的执行而遭受破坏。 3. 隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 4.持久性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

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

答: BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期。ApplicationContext是BeanFactory的扩展,除了提供上述BeanFactory所能提供的功能之外,功能得到了进一步的增强,比如容易与Spring AOP集成,资源处理(国际化处理),事件传递及各种不同应用层的context实现。

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

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

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

四、Struts

1、Struts的工作流程

答:当客户端向浏览器发送HTTP请求时,所有浏览器请求都被提交给ActionServlet处理。如果用户提交表单,则会将表单中的数据放入到ActionForm中。ActionServlet根据struts_文件中预先配置好的设置选择将请求转发到哪个action对象,action对象从actionForm对象中获取数据,但后调用业务逻辑组件,完成业务功能。

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

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

3、strust的Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因。

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

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

常见的struts标签库有struts html标签库,struts bean标签库, struts Logic标签库,Struts Template 标签库, Struts Nested 标签库。

用法:略

五、iBatis

1、iBatis动态标签有哪些?

答: 动态标签的分类:标签 二元标签 一元标签 标签。

动态标签都属于SQL语句的一部分,所以这些标签在存在于SQL语句中,具体可以出现在select,insert,delete,update,statement,sql等语句中。 这几类标签的共同属性prepend,open,close。 prepend属性:表示前缀。在标签内容前加的文字。 open属性:在标签内容开始的时候添加的文字 close 属性:在标签内容结束的时候添加的文字。

(1) 一元条件标签 :检查是否存在该属性(存在parameter bean的属性) :检查是否不存在该属性(不存在parameter bean的属性) :检查属性是否为null

:检查属性是否不为null : 检查()的值,属性的String或f()值,是否为null或空(“”或size() < 1)

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

(2)二元条件标签

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

2、Hibernate和iBatis的映射关系

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

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

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

Invalid argument in JDBC call: parameter index out of range: 1。

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

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

2) 采用字符串联接符||,如:like ‘%“||# filedName #||”%‘

4、iBatis中#与$的区别?

#说明: a. #是把传入的数据当作字符串,如#field#传入的是id,则sql语句生成是这样,order by "id". b. #相当于JDBC中上的?号,以对象的方式传递参数,可以防止SQL注入攻击。

$ 说明: a. $传入的数据直接生成在sql里,如#field#传入的是id,则sql语句生成是这样,order by id. 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略。


本文标签: 方法 实现 事务 属性 元素