1,你对中间件的理解?一般的中间件平台有哪些?
答: (1)它是一个独立的软件或者服务程序,然后分布是应用软件就是借助中间件实现软件在不同的技术只见共享资源。
(2)一般本地开发的话常使用tomcat。
linux系统常使用jetty或apache hpptd
大型的项目就用JBOSS或webloigc
2。如何给表A建立一个命名为A1的索引(以a字段),谈谈建立索引的原则以及优缺点是什么?
答:(1)原则:给表的每条数据加一个主键约束和自增。
(2)优点:这是因为,创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
缺点:如果数据量比较少的话,建立索引会显得多此一举,反而增添了麻烦。
3.单例模式的优点?为什么使用单例模式?
答:(1)单例模式指的是单个类种只有一个实例对象,
(2)单例模式保证java应用程序中,一个类Class只有一个实例在,使用单例模式好处在于可以节省内存,节约资源,对于一般频繁创建和销毁对象的可以使用单例模式。
4.java反射机制是什么?有什么用途?
答: (1). 反射机制是什么
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
(2). 反射机制能做什么
反射机制主要提供了以下功能:
在运行时判断任意一个对象所属的类;
在运行时构造任意一个类的对象;
在运行时判断任意一个类所具有的成员变量和方法;
在运行时调用任意一个对象的方法;
生成动态代理。
5.为什么大部分企业都会采用spring框架?简要说明spring框架的工作原理以及优点?
答:(1)1.方便解耦,便于开发(Spring就是一个大工厂,可以将所有对象的创建和依赖关系维护都交给spring管理)
2.spring支持aop编程(spring提供面向切面编程,可以很方便的实现对程序进行权限拦截和运行监控等功能)
3.声明式事务的支持(通过配置就完成对事务的支持,不需要手动编程)
4.方便程序的测试,spring 对junit4支持,可以通过注解方便的测试spring 程序
5.方便集成各种优秀的框架()
6.降低javaEE API的使用难度(Spring 对javaEE开发中非常难用的一些API 例如JDBC,javaMail,远程调用等,都提供了封装,是这些API应用难度大大降低)
(2)Spring工作原理
内部最核心的就是IOC了,
动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射
反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置
文件来动态的创建对象,和调用对象里的方法的 。
Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是
在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过
配置类达到的。
(3)优点
a. Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework,Spring致力于解决剩下的问题。
b. Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。
c. 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性。Inversion of Control的使用(在下面讨论)帮助完成了这种简化。
d. 通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。
e. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。
f. 使用Spring构建的应用程序易于单元测试。
g. Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。
h. Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。
i. Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。
Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大价值的。
DELETE FROM USER WHERE birthday IS NULL;
2。用sql语言按照每人的平均成绩从高到底排序
select avg(A) from t_temp_x;
select avg(B) from t_temp_x;
select ID,dept,name from t_temp_x where A>0 order by comm desc;
select ID,dept,name from t_temp_x where B>0 order by comm desc;
3.sql求出每个部门项目管理分数的总和,并且合计大于等与80分的
select sum(B) from t_temp_x where dept=“实施部”;
select sum(B) from t_temp_x where dept=“开发部”;
4.用sql语言求出技术成绩最高(相等可重复)的记录,必须出现最高的记录结果,得到最高的ID和姓名
select ID,name,max(B) from t_temp_x where dept="实施部";
1.四个人ABCD过桥,一次最多能过两个人,他们的手电能维持十七分钟,每个人所需的时间分别为1,2,5,10.求最快可以多长时间全部过桥。
答:最快需要17分钟。过程如下:A和B先过(2分钟),A回来(1分钟),C和D一起过(10分钟),B回来(2分钟)接A,A和B一起(2分钟)。T = 2+1+10+2+2 = 17 min。
2.有1000瓶药物,但是其中有一瓶是有毒的,小白鼠吃了一个星期以后就会死掉!
请问,在一个星期内找出有毒的药物,最少需要多少只小白鼠?
解答:用二进制的思路去思考,1000瓶药代表了1000 种状态,那么1000用二进制表示可以用一个10位的二进制数就可以全部表示出来,考虑用十只白鼠来试验,用0和1代表它们最终的状态即死亡或活着,初始 状态十只白鼠表示为0000000000。(网上的解答到此为止,下面是对此的解释)
0001:代表第一瓶药给1号小白;
0010:代表第二瓶药给2号小白:
0011:代表第三瓶药给1,2号小白;
……
最后,看结果:
如果只是1号小白挂了,那么1号药为假;
如果只是2号小白挂了,那么2号药为假;
如果1.2号小白都挂了,那么3号药为假;
可以看出,窍门1:用二进制数的方法来标示状态;2一只小白鼠可以喝多瓶药水