Java中级面试题及答案整理
副标题[/!--empirenews.page--]
1、webservice是什么?webservice是一种跨编程语言和跨操作系统的远程调用技术,遵循SOPA/WSDL规范。 2、springCloud是什么?springcloud是一个微服务框架,并提供全套分布式系统解决方案。支持配置管理,熔断机制,leader选举,服务治理,分布式session,微代理,控制总线,智能路由,一次性token。 3、Java中堆和栈有什么不同?每个线程都有自己的栈内存,用于存储本地变量,方法参数和栈调用,一个线程中存储的变量对其它线程是不可见的。而堆是所有线程共享的一片公用内存区域。对象都在堆里创建,为了提升效率线程会从堆中弄一个缓存到自己的栈,如果多个线程使用该变量就可能引发问题,这时volatile 变量就可以发挥作用了,它要求线程从主存中读取变量的值。 堆:(对象) 引用类型的变量,其内存分配在堆上或者常量池(字符串常量、基本数据类型常量),需要通过new等方式来创建。 堆内存主要作用是存放运行时创建(new)的对象。 (主要用于存放对象,存取速度慢,可以运行时动态分配内存,生存期不需要提前确定) 栈:(基本数据类型变量、对象的引用变量) 基本数据类型的变量(int、short、long、byte、float、double、boolean、char等)以及对象的引用变量,其内存分配在栈上,变量出了作用域就会自动释放。 4、Spring的Scope有以下几种,通过@Scope注解来实现:(1)Singleton:一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例。 (2)Prototype:每次调用新建一个Bean实例。 (3)Request:Web项目中,给每一个 http request 新建一个Bean实例。 (4)Session:Web项目中,给每一个 http session 新建一个Bean实例。 (5)GlobalSession:这个只在portal应用中有用,给每一个 global http session 新建一个Bean实例。 5、Spring事务传播行为所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量:
6、Spring的声明式事务管理力度是什么级别?Struts2是类级别的,Spring是方法级别的 spring事务可以分为编程式事务和声明式事务 7、spring?MVC与struts2的区别:参考:?? ① Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截 ② SpringMVC的方法之间基本上独立的,独享request response数据 ③ 由于Struts2需要针对每个request进行封装,把request,session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的 ④ 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式 ⑤ SpringMVC的入口是servlet,而Struts2是filter ⑥ SpringMVC集成了Ajax ⑦ SpringMVC验证支持JSR303,处理起来相对更加灵活方便,而Struts2验证比较繁琐,感觉太烦乱 ⑧ Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高 ⑨ Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展 ⑩ SpringMVC开发效率和性能高于Struts2 8、Spring框架中的核心思想包括什么?主要思想是IOC控制反转,DI依赖注入,AOP面向切面 9、ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。? 10、ArrayList,Vector主要区别为以下几点:?(1):Vector是线程安全的,源码中有很多的synchronized可以看出,而ArrayList不是。导致Vector效率无法和ArrayList相比;? (2):ArrayList和Vector都采用线性连续存储空间,当存储空间不足的时候,ArrayList默认增加为原来的50%,Vector默认增加为原来的一倍;? 11、HashSet与HashMap的区别:12、HashMap和Hashtable的区别:HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。
13、线程安全是什么?线程不安全是什么?(编辑:武汉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |