java 语言按照对八种基本类型的支持的不同分为SE 、EE 、ME三大类。
java中类属性的初始化:
对于类属性,jvm会自动初始化,如果给了初始值,则初始化为该值,如果没给,则会初始化为属性所属的数据类型的默认值(int:0 \ float:0.0f ,引用及数组初始化为null:即不指向任何对象 ),static属性在类第一次加载(即在第一次使用该类的时候 )的时候 初始化,而实例属性则会在创建实例的时候初始化。
java中final修饰的真正含义
在java中使用final修饰的变量有两种意思:引用本身不可变和引用所指向的对象不可变。
事实上,final只对引用的“值”(也即他指向的那个对象的内存地址)有效 ,他迫使引用只能指向初始指向的对象 ,改变他的指向,会编译报错,至于他指向的对象的变化,final是不负责的。
Java5新特性Instrumentation
利用 Instrumentation 可以构建一个代理,用来监测运行在jvm上的程序。监测一般是通过在执行某个文件之前,对该类文件的字节码进行适当的修改。(如;计算函数的执行时间) 每一个代理类必须实现ClassFileTransformer接口 。
ApplicationContext与WebApplicationContext
WebApplicationContext 继承自 ApplicationContext,而ApplicationContext是BeanFactory的子接口其有spring自己实现的几个类:ClassPathXmlApplicationContext、FileSystemXmlApplicationContext 。
WebApplicationContext的初始化(web.xml):ContextLoaderListener与ContextLoaderServlet。在ContextLoaderListener中用contextloader来初始化WebApplicationContext,即把 WebApplicationContext放在了ServletContext中的的键值为 WebApplication.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,若要用则需根据该键值取出,为此spring提供了WebApplicationContextUtils类。
为了方便,spring提供了ContextLoaderPlugIn,这是一个struts的plug,在struts启动时加载。
Socket通信
当服务器进程运行时可能会同时监听到多个客户端的链接请求。例如每一个客户进程执行下面的代码:
Socket s = new Socket(“wwwbaidu.com”,8888);
即意味着baidu的服务器的端口上监听到了一个客户的连接请求。管理客户连接请求的任务是有操作系统来完成的。操作系统先将这些连接请求存储在一个先进先出的队列中。许多操作系统限定了队列的最大长度,一般为50,当队列中的连接请求达到了最大值,服务器会拒绝新的连接请求,只有当服务器的进程通过servletSocket 的accept方法从队列中取出连接请求,是队列有空位置,服务器才会接受新请求。(ServerSocket的构造参数backlog用于指定最大的连接请求数)。
java虚拟机
栈是程序运行的基本单位,而堆是数据存储的基本单位,程序永远是运行在栈中的,程序运行可以没有堆但不可以没有栈,而堆是为栈存储数据的。
在JS中使用jsp标签或者java代码:
1、如果是在jsp内嵌的js代码,那么jsp文件中能用什么标签,那js中也可以随便用,因为jsp会先在服务器端解释生成相应的js代码,然后丢给客户端执行。
2、若是在单独的js中,则不可以用。因为单独的js并不会被服务器解释,若要用需设法让服务器对js文件进行解释,有两个解决方案:
1)、将js命名为jsp,文件里写js内容,然后用<script src="XXX.jsp">引入即可。
2)、直接在js中使用jsp标签
原理:应用服务器端默认不解释js中的标签,但可以让个别的js文件被解释。
(tomcat中解释jsp的为JspServlet。其名字叫jsp,只要在应用的web.xml中加上:
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>要解释的js文件的路径</url-pattern>
</servlet-mapping>
)
JS访问java对象
<% String userName = request.getParameter("username") ; %>
<script type="javascript">
var userName = "<%= userName%>" ;
</script>
JDK下的两个JRE
一般安装jdk后会出现连个jre。基于jdk的应用分为两种,一种是jdk自带,一种是用户开发的,这两者使用不同的jre,java目录下的jre运行一般的应用。
JSP编码 :pageEncoding contentType
pageEncoding是jsp本身的编码, contentType是服务器发送给客户端时的内容的编码。
jsp一般要经过多次编码,第一阶段利用pagEncoding ,第二阶段用utf-8到utf-8,第三阶段就是由tomcat中出来的网页,用的是contentType。
第一阶段:将jsp编译成java文件,此时会根据pagEncoding 的值读取jsp
第二阶段:java到.class文件,此时不论jsp编写的时候 用的是什么编码,经过这一阶段的结果全部是UTF-8的java代码
第三阶段:该阶段是由tomcat载入和执行阶段二的java二进制,输出的结果,也就是客户端看到的网页,这时contentType就起作用了。
一般为了不出现乱码,用到下面的方法进行设置:
request.setCharacterEncoding("编码方式 "):对客户端的请求进行重新编码。
response.setCharacterEncoding("编码方式 ") :对服务器端的响应进行编码。
UML中的关系:
包含:一般化关系、关联关系、聚合关系、组合关系、以来关系、其中聚合与组合属于关联关系。
1、一般关系:多指类之间的继承实现关系,是 “is a”关系 。
2、关联关系(has a):使得一个类知道另一个的属性和方法,关联关系表现的是类之间的持久关系, 这种关系表示一种业务逻辑上的关系,一般需要保存到DB,例如,学生与班级。
(——>)
3、依赖关系:表现为类之间的(use a) 关系,一个类用到了另一个类 ,但类之间没有业务逻辑上的关系,依赖关系是对程序而言的,表现为局部变量、方法的参数或者对另一个类的方法的调用。(------------->)
HTTP请求:
一个http请求包三个部分;
a.方法统一资源标示符(uri)——协议版本
b.请求的头部
c.请求内容
e.g.
POST /exteroage/default.jsp HTTP/1.1
Accept: text/plain ; text/html
Connection:keep-alive
Host:localhost
<!--此处为回车换行符("\n\r"),必须的-->
lastname= zhangw & firstname = dfedd
注意:URI通常是相对服务器的跟目录解释的,因此始终以“/”开始 。
转载于:https://blog.51cto.com/langlichong/1730359