面试题总结

1、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。

对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。 


2、int型在32位下的范围。

-2的32次方到2的32次方。


3、TCP的三次握手

(1)客户端向服务器端发送一个SYK表示主动打开。

(2)服务器向一个合法的SYK客户端发送SYK/ACK。

(3)客户端向服务器发送ACK,并表示已连接。


4、hibernate和ibatis的分页区别

ibatis主要是通过SQL映射的方式来直接查询数据库。而hibernate是通过缓存来实现分页的。


5、hibernate和ibatis的区别

相同点:屏蔽jdbc api的底层访问细节,使用时我们不用与jdbc api打交道,就可以访问数据库。

hibernate是一个全自动的ORM映射工具,它可以自动生成SQL语句。而ibatis需要我们自己在XML里写SQL语句。


6、单例模式。

public class Singleton(){

   private Singleton(){}

   private Static Singleton sin=null;

   public Static Singleton getInstance(){

    if(sin==null){

      sin=new Singleton();

}

return sin;

]}

}



7、java性能优化

a、不要在循环中使用Try/Catch语句,应把Try/Catch放在循环最外层。

b、通过StringBuffer的构造函数来设定他的初始化容量,可以明显提升性能。 

c、不要在循环中调用synchronized(同步)方法 

d、使用移位操作来代替'a / b'操作 

e、使用移位操作代替'a * b' 

f、如果只是查找单个字符的话,用charat()代替startswith() 

g、避免不需要的造型操作 


8、hibernate的三种状态

瞬态:new的对象称为瞬态。

持久态:处于该状态的对象在数据库中有一条对应的记录,并且此对象有一个持久化标识。

脱管态:当与某持久对象的session关闭时,由持久态变成脱管态。


9、hibernate的事务管理

hibernate是对jdbc轻量级的封装,本身并不具备事务管理。在事务管理层,hibernate将它委托给底层的jdbc或jta来实现事务的管理和调度。


10、struts2的流程

a、客户端浏览器发出HTPP请求。

b、在web.xml中,请求被filterDispatcher接收。

c、在struts.xml中找到与请求对应的action类和方法。并通过IOC方式,将值注入到action中。

d、action调用业务逻辑组件处理业务逻辑。这一步包含表单验证。

e、action执行完毕,根据struts.xml的配置找到对应的返回结果result,并跳到相应的页面。


11、ajax原理

通过XmlHttpRequest向服务器端发出异步请求,从服务器端获得数据,然后用javascript来操作DOM对象来更新页面。


原文地址:https://www.cnblogs.com/riskyer/p/3285721.html