各地
资讯
当前位置: 考呗网 > 教师资格 > 面试指导 >

面试内容(最新发布)(16)

蚂蚁考呗网     [ 2020-09-06 ]   点击次数:

(43)进程和线程关系及区别
1.定义

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 2.关系 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

(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)。

评论责编::admin
相关推荐
热点推荐»