1.简单介绍下Strut2的配置流程,这些框架常用的JSP标签。
创建web工程----》在web.xml中配置filter,使其能加载Struts框架------》把struts2所需的jar包导入到web的lib文件中------》
创建所需的Action或Inteceptor,--------》在Strut.xml中注册Action和inteceptor
2.Spring通过那个类获得托管的bean。
//网上没查到
3.简单阐述写JSP的编译原理
i.客户端发送请求给web容器
ii.web容器将jsp首先转译成servlet源代码
iii.web容器将servlet源代码编译成.class 文件
iv.web容器执行.class 文件
v.web容器将结果响应给客户端
4.多线程需要注意什么
多线程要注意的是,如果可以不用多线程,最好不要使用多线程。通常需要多线程的地方有:消息循环、
Socket的服务器监听程序和其他需要死循环的地方。 在需要死循环的地方经常会用到多线程。既然是死循环,那么这个线程就要注意优先级
6.Socket编程需要注意什么
socket 需要池化资源,另外socket还要注意安全,牵扯到网络的最好每一步都有每一步的安全措施。传输的是密码就要加密。
7.序列化的用途
简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
是对象永久化的一种机制。
确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象。这种情况下就要用到对象的序列化。
对象序列化的最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整性和可传递性。譬如通过网络传输,或者把一个对象保存成一个文件的时候,要实现序列化接口
8.jsp中有哪几个隐含对象
page,config,request ,response ,out ,session ,application,pageContext,exception
9.连接池的原理
预先建立一些连接放置于内存对象中以备使用,当一个用户访问时,看有没有空余连接,如果有的话,
会再看是否超过连接池最大连接数,如果没超过最大连接数,会创建一个新的连接,就这样循环往复。
如果没有空余连接 则说明超过了连接池最大的连接数,就会报错
10.写出一个单列模式
1.public class ClassicSingleton {
- 2. private static ClassicSingleton instance = null;
- 3.
- 4. protected ClassicSingleton() {
- 5.
- 6. }
- 7. public static synchronized ClassicSingleton getInstance() {
- 8. if(instance == null) {
- 9. instance = new ClassicSingleton();
- 10. }
- 11. return instance;
- 12. }
- 13.}
11.什么是多态,并用Java写出简单的代码示例
多态性可以简单的概括为“一个接口,多种方法”。在程序运行的过程中才决定调用的函数。
12.假如你要维护一个海量用户的网站,遇上性能瓶颈,有什么优化方法。
多服务器组成集群 然后做负载平衡
13.list,arraylsit,linklist区别
List and ArrayList:
1、List是一个接口,ArrayList是一个实现了List接口的具体类。 他们是父子关系,我们常用的是ArrayList,但常用List的引用去操作ArrayList 这是一个简单的面向接口编程的一种,如:List myList = new ArrayList();
2、他们主要是用来保存对象的集合,记得是保存对象的哦,你可别传个int进去啊
3、要取出它里面保存的对象可以用下标,如:Object aaa = myList.get(0); 这样我们就把保存在myList里的第一个对象取出来给了 aaa 啦。
ArrayList:
ArrayList其实是包装了一个数组Object[],当实例化一个ArrayList时,一个数组也被实例化,当向ArrayList中添加对象是,数组的大小也相应的改变。这样就带来以下有特点:
快速随即访问 你可以随即访问每个元素而不用考虑性能问题,通过调用get(i)方法来访问下标为i的数组元素。
向其中添加对象速度慢 当你创建数组是并不能确定其容量,所以当改变这个数组时就必须在内存中做很多事情。
操作其中对象的速度慢 当你要想数组中任意两个元素中间添加对象时,数组需要移动所有后面的对象。
LinkList:
LinkedList是通过节点直接彼此连接来实现的。每一个节点都包含前一个节点的引用,后一个节点的引用和节点存储的值。当一个新节点插入时,只需要修改其中保持先后关系的节点的引用即可,当删除记录时也一样。这样就带来以下有特点:
操作其中对象的速度快 只需要改变连接,新的节点可以在内存中的任何地方
不能随即访问 虽然存在get()方法,但是这个方法是通过遍历接点来定位的所以速度慢。
一些结论:
当一些被定义好的数据需要放到与数组对应的List中,ArrayList是很好的选择,因为它可以动态变化,但是不要在整个应用程序中频繁的使用。
你要很方便的操作其中的数据而不用随即访问时;LinkList是很好的选择。如果你要频繁随机访问建议使用ArrayList。