(43)进程和线程关系及区别
1.定义
(48)
1)webService 规范:
1.JAX-WS基于xml的规范,jaxws开发的webService传输soap协议。soap=http+xml
2.JAXM&SAAJ
3.JAX-RS卡伊发布restful风格webService,直接采用http协议,可以返回xml或json,比较轻量。
2)webService要素:
1.soap特点:跨平台,跨语言,w3c指定的标准。
2.WSDL是webService的使用说明书。
2.UDDI
(49)CXF框架是用来实现webService技术的。
CXF-server发布服务spring配置:jaxws:server/CXF-client访问,spring配置:jaxws:client
(50)restful风格
1)优点:软件编写更简洁,基于http协议,支持多种消息格式,xml,json,更易于实现缓存机制。
2)使用一种路径,通过发送不同的请求,来决定使用哪个方法,post、get、put、delete。
(51)static关键字
说到static,首先要记住的最重要的一点就是,类属性中被static所引用的变量,会被作为GC的root根节点。作为根节点就意味着,这一类变量是基本上不会被回收的。因此,static很容易引入内存泄漏的风险。
你曾经遇到过一个内存泄漏的问题,就是因为static修饰的一个Map类型的变量导致的,最后排查了堆栈信息找到了问题的所在,并且解决了这个问题。那么,面试官这个时候内心中对你的印象,就会不自然的提升几分。
而且,对于static,更深入的理解是,static会将所引用的属性、方法以及内部类,与类直接产生引用关系,而非与类的实例。这就是为什么,你可以使用类名.属性、类名.方法以及类名.内部类名,来直接引用一个被static所修饰的属性、方法或者内部类。
(52)tomcat的classloader机制
jvm默认定义了三种classloader,分别是bootstrap classloader、extension classloader、system classloader
1.bootstrap是jvm的一部分,用C写的,每一个java程序都会启动它,去加载%JAVA_HOME%/jre/lib/rt.jar
2.extension也差不多,它会去加载%JAVA_HOME%/jre/lib/ext/下的类
3.system则是会去加载系统变量CLASSPATH下的所有类
这3个部分,在上面的tomcat
classloader模型图中都有体现。不过可以看到extension没有画出来,可以理解为是跟bootstrap合并了,都是去%JAVA_HOME%/jre/lib下面加载类
另外,java的classloader一般是采用委托机制,即classloader都有一个parent classloader,当它收到一个加载类的请求时,会首先请求parent classloader加载,如果parent classloader加载不到,才会自己去尝试加载(如果自己也加载不到,则抛出ClassNotFoundException)。