笔试总结 - 2

来源:互联网 发布:java怎么解析json 编辑:程序博客网 时间:2024/06/05 06:16

  好吧,虽然这次面试让我很不愉快,但经验是要总结的,教训是要牢记的,这样让人羞辱的面试我不想再来多几次!

  不过,这羞辱也是自找的罢,如果有好好复习的话,也不会被那个其实多并不懂多少的技术经理给面倒。最起码,在我说到在Linux下将Tomcat路径加入Eclipse设置中时,他很惊异地以那种似乎我说谎说漏了嘴的眼神望着我质问道:“Linux下有Eclipse?”终于也让我找到机会鄙视了他一把!

  好吧,牢骚发再多也是没用的,开始总结教训吧!

  1.数据库的左连接、右连接和内连接、外连接分别是什么?  2.JDBC如何连数据库?  3.Spring的IOC和AOP机制的原理和意义?  4.Struts如何做权限验证?  5.Hibernate如何设置表对象的一对多、多对一关系?  6.谈下TCP/IP的三次握手  7.JSP有哪些页面对象?  8.JSP中forward, include, redirect有什么区别?

SQL的左连接、右连接和全连接
- Top -

Left join , Right Join, Inner Join 用法(生成新的数据表)即是多表连接,组成一个新的数据表输出!仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。例子

Table Aaid adate 1 a1 2 a2 3 a3

TableB

bid bdate 1 b1 2 b2 4 b4

两个表a,b相连接,要取出id相同的字段 select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据. 此时的取出的是: 1 a1 b1 2 a2 b2

那么left join 指: select * from a left join b on a.aid = b.bid 首先取出a表中所有数据,然后再加上与a,b匹配的的数据 此时的取出的是: 1 a1 b1 2 a2 b2 3 a3 空字符

同样的也有right join 指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据 此时的取出的是: 1 a1 b1 2 a2 b2 4 空字符 b4

LEFT JOIN 或 LEFT OUTER JOIN。 左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

 

SQL:JOIN之完全用法

外联接可以是左向外联接、右向外联接或完整外部联接。在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定:LEFT JOIN 或 LEFT OUTER JOIN。

左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

RIGHT JOIN 或 RIGHT OUTER JOIN。 右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

FULL JOIN 或 FULL OUTER JOIN。 完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件。将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。

 

JSP中forward, include, redirect有什么区别?
- Top -

1、forward与include共亨Request范围内的对象,而redirect则不行,

即:如果一个javabean被声明为request范 围的话,则被forward到的资源也可以访问这个javabean,而redriect则不行。

2、forward与include基本上都是转发到context内部的资源,而redirect可以重定向到外部的资源

如: req.sendRedriect("http://www.mocuai.com");

 

Spring中的IOC和AOP机制
- Top -

  IoC就是Inversion of Control,控制反转。

  在Java开发中,IoC意味着将你设计好的类交给系统去控制,(创建好一个bean,在config.xml中配置该bean的属性,最后调用ApplicationContext ac=new FileSystemXmlApplicationContext("...")获取bean来调用它)而不是在你的类内部控制。这称为控制反转。

  AOP是Aspect Oriented Programming的缩写,意思是面向切面(方面)编程。

  将通用需求功能从不相关类之中分离出来;同时,能够使得很多类共享一个行为,一旦行为发生变化,不必修改很多类,只要修改这个行为就可以。AOP就是这种实现分散关注的编程方法,它将“关注”封装在“方面”中。

 

TCP/IP的三次握手
- Top -

  TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后数据传送,最后拆除连接三个过程

  并且TCP在建立连接时又分三步走:

  第一步是请求端(客户端)发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号;   第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。   第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。 然后才开始通信的第二步:数据处理。  这就是所说的TCP三次握手(Three-way Handshake)。

  简单的说就是:(C:客户端,S:服务端)

  C:SYN到S  S:如成功--返回给C(SYN+ACK)  C:如成功---返回给S(ACK)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JSP的内置对象及其作用
- Top -
response:网页传回用户端的回应 pageContext:网页的属性是在这里管理 session:与请求有关的会话期 application:servlet 正在执行的内容 out:用来传送回应的输出 config:servlet的构架部件 page:JSP网页本身 exception:针对错误网页,未捕捉的例外  

 

 

 

 

JDBC连接数据库的步骤
- Top -
  1. 注册驱动 class.forName("")
  2. 连接数据库 getConnection(url,user,password) ==> Connection数据库连接对象
  3. 创建SQL. select * from student
  4. 创建装载SQL的容器 conn.createStatement()
  5. 执行SQL语句 stmt.executeQuery()
  6. 返回结果集 rs=stmt.executeQuery(sql)
  7. 释放资源 rs/stmt/conn.close() 从小到大依次释放资源