欢迎来到天天文库
浏览记录
ID:41957207
大小:44.50 KB
页数:6页
时间:2019-09-05
《几个经典java面试题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、经典面试题集1、集合的继承结构,集合中Map和Set的底层实现和区别?2、jsp有哪些内置对象?作用分别是什么?(1)request表示HttpScrvIctRcqucst对象。它包含了冇关浏览器请求的信息,并提供「儿个用于获取cookie,header和session数据的冇用的方法。(2)response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)。(3)out对象是javax.jsp.JspWriter的一个实例,并提供了儿个方法使你能用于向浏览器回送输出结果。(4)pageContex
2、t表示一个javax.servlet.jsp.PageContext对象。它是川丁•方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通丿IJ的servlet相关功能的方法。(5)session表示一个请求的javax.scrvlct.http.HttpScssion对象。Session可以存贮用户的状态信息。(6)application表示-个javax.servle.ServletContext对象。这有助J渣找有关servlet引擎和servlet环境的信息。(7)config表示一个javax.servlet.ServletConfig对
3、象。该对•象用于存取servlet实例的初始化参数。(8)page表示从该页面产牛的-个servlet实例。(9)exception针对错误网页,未捕捉的例外。3、什么是线程同步,什么是死锁,怎样防止死锁?线程同步:当多个线程要使用同一份资源时,为了避免线程之间的资源争夺以造成资源混乱而使用关键字synchronized给该资源所在的対象或是代码块加上锁。当一个线程占用着该资源时具它线程必须则必须等待该线程使用结束后才能进入该对象或是代码块使川资源即为线程同步。町以使川同步代码块synchronized(this){代码块}或同步方法publicsynchronize
4、dvoidmethodName(){}两种方式进行线程同步。死锁:当两个线程都盂要排他的访问一系列共享的资源,并R每个线程都山用部分资源的锁,每个线程都不想放弃它占冇的资源,这两个线程都将无限期的挂起。死锁防止方法:阻止死锁发牛•的最佳方法就是避免不必要的同步。如果有除了同步以为的英他方法可以保证线程安全,例如让对象immutable,使用局部变量,那么就不用使用同步。如果不得不使用同步,那就讣•同步块尽可能小,并且尽量不要在同一时刻同步多个对象。4、集合的继承结构,集合中Map和Set的底层实现和区别?(1)集合的顶级接口是Collection,它下面有两个常用的子
5、接口List和Set(2)List的常用实现类为ArrayList和LinkedList(3)Set的常用实现类是HashSet(4)Set无序不可重复,List有序可重复,Map主要用于存放键值对,键不可重复。5、怎样理解进程和线程?进程是操作系统中正在执行的不同的应用程序,线程是一个应用程序进程中不同的执行路径,进程是不活泼的。进程从來不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而且它的整个寿命期都在该进程屮。6、程序设计的AOP、IOC理解?AOP(AspectOrientedProgramming):面向切面编程,AOP主要是通过代理模式
6、实现的。一个项冃中会存在很多系统级的应用,如日卷、事务处理、权限验证等,这些系统级的应用会分布在程序的各个角落,管理起來比较分散;我们将这些分散的系统级应用集中起來统一实现,在程序运行时根据需要“切入'湘关应用,这就是AOP的设计思想。Ioc一InversionofControl,即“控制反转”,不是技术,而是一种依赖倒转原则软件设计思想。Ioc意味着将设计好的对象交给容器控制把创建和杏找依赖对象的控制权交给了容器,由容器进行注入组合对象,而不是传统的在对象内部直接控制。从而设计出松耦合高度灵活的运用,也使得程序能更好的重用和扩展。SpringAOP是其实是通过动态代
7、理來实现业务逻辑的插入,是开发者在开发是不用关注其他与业务无关的点,通过代理的方式做到了插拔式操作。7、异常的分类及处理方法?分类:(1)所有杲常的超类是Throwable,它又分为Error和Exception(2)Error是JVM异常,我们无法处理(3)Exception是java程序屮的异常,乂分为非运行时异CheckedException(检测异常)和运行时异RuntimeException(非检测性界常),前者必须捕获处理,示者不用捕获处理。处理:(1)使用try{)catch()语句块进行捕获处理。(2)使用关键字throws在方法声明
此文档下载收益归作者所有