1 共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程。
2 forward 和 redirect的区别
forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
3 构造器不能被继承,因此不能重写,但可以被重载。
4 switch(expr1)中,expr1 是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于 swtich。
5 try{}里有一个 return 语句,在这个 try后的 finally {}里的 code 会在 return 前被执行。
6 写一个 Singleton :
第一种形式:
public class Singleton {
private Singleton(){
}
private static Singleton instance = new Singleton();
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;
}
}
7 所有的异常都是 java.lang.Thowable 的子类。
8 Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。
9 JVM 中类的装载是由 ClassLoader和它的子类来实现的。
10 线程有四种状态分别是:运行、就绪、挂起、结束。
11 JSP 侧重于视图,Servlet 主要用于控制逻辑。
12 Servlet 执行时一般实现哪几个方法?
public void init(ServletConfig config);
public ServletConfig getServletConfig();
public String getServletInfo();
public void service(ServletRequest request,ServletResponse response);
public void destroy()
13 throw 语句用来明确地抛出一个“异常”。throws 用来标明一个成员函数可能抛出的各种“异常”。
14 MVC是 Model-View-Controller的简写。
"Model" 代表的是应用的业务逻辑(通过 JavaBean,EJB 组件实现), "View" 是应用的表示面(由 JSP 页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
15 java中会存在内存泄漏。如:int i,i2; return (i-i2); //当 i 为足够大的正数,i2 为足够大的负数。结果会造成溢位,导致错误。
16 方法的重写 Overriding 和重载 Overloading 是 Java多态性的不同表现。重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。
17 程序员可以手动执行 System.gc(),通知 GC运行,但是 Java语言规范并不保证 GC一定会执行。
18 线程的状态:初始状态,就绪状态,阻塞状态,运行状态,死亡状态。
19 优化数据库主要是优化查询语句,通过高性能的查询语句提高数据库的性能。
20串行化的注意事项以及如何实现串行化。答:如果有循环引用是不可以串行化的。对象输出流的 WriteObject方法和对象输入流的 ReadObect 方法。