初始化的实际顺序:
1)在其他任何事物发生前,讲分配给对象的存储空间初始化成二进制的零。
2)如前面所述那样调用基类构造器,此时,调用被覆盖后的方法(要在调用导出类构造器之前调用)
3)按照申明的顺序调用成员的初始化方法。 4)调用导出类的构造器的主体。
编写构造器时有一条准则: “用尽可能简单的方法使对象进入正常状态;如果可以的话,,避免调用其他方法”。在构造器里
唯一能够安全使用的方法是基类中的final方法(也适用于private方法)。--->这些方法不能被覆盖,因此
也就不会出现问题。
一条通用的准则是: “用继承表达行为间的差异,并用字段表达状态上的变化。”
Collection 和 Collections的区别。 Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。 Collection是个java.util下的接口,它是各种集合结构的父接口。
Set 没有get()方法,需要用iterator()遍历;//Set内没有顺序 Iterator iterate=set.iterator();//Set set=new HashSet();
多态:
一:静态多态性->函数重载的三种情况;
二:动态多态性->父类引用指向子类对象;函数参数传递;
?来传参数: ①,?param1=value1¶m2=value&....... ②,request.getparameter("param1");
e.g. <a href="p1.jsp?param=<%=N%>"><%=N%></a>//N 是变量 或<a href="p1.jsp?param="+N+"><%=N%></a>
内置对象:
1,out,页面载入服务器的时候自动实例化;
2,request,获取客户端的参数,流;getParameter(String); 获取通信信息,方法如getRequestURI()等; 也是四大范围之一;
3,response,负责管理HTTP链接,response.sendRedirect("string")//url变,到了目标页面request内的值会丢失, (页面上通过链接相当于重定向跳转)
或<jsp:forward page=""/>,
ServletContext application=this.getServletContext();
RequestDispatcher rd=application.getRequestDispatcher("路径");
rd.forward(request,response);//url不变,request内的值不丢失
区别是request参数的保留;forward是服务器内部跳转,如果要跳转到服务器以外的url,要使用 redirect方法;
添加一个Cookie对象(保存在客户端),addCookie(new Cookie("username","yookoo")); 读取Cookie,Cookie[] cookies=request.getcookies();
4,session,多个页面之间共享变量内容(服务器端)
5,application,用于多个用户共享某些全局信息,比session存活时间更久,在服务器关掉之后消失。
6,pageContext 对命名空间的访问;
关于标签内的属性:
name 是从别处得来的,id是自己的;