好文档 - 专业文书写作范文服务资料分享网站

2016最新java面试题 - 详细版

天下 分享 时间: 加入收藏 我要投稿 点赞

9

Java中线程的四种状态分别是_运行_______、_______就绪______、挂起、结束;让线程

从运行状态转换为暂停状态的有___________睡眠__、等待。

10 struts2框架中为了处理中文乱码问题,需在JSP页面中设置___pageEncoding=utf-8__________,同时也应该在__struts.i18n.encoding=utf-8___________。

11 Spring简化了Bean的配置,提供了自动装配(autowire)机制,根据指定的原则(通过的autowire属性指定)进行Bean的自动装配,Spring本身为autowire属性提供了____byName_________、__byType___________、____constructor_________、autodetect以及no五个选项。

12 java.io包中的______ObjectInputStream_____和___ObjectOutputSteam__________类主要用于对对象(Object)的读写。

13 谈谈hashmap和hashtable的区别,如何去遍历一个map 答:

Hashtable继承了Dictionary,是线程安全的,键值对中不能出现null。

Hashmap实现了Map接口,是Hashtable的轻量级实现(非线程安全的实现),即多个线程访问Hashmap时需要为其准备外同步,且Hashmap的键、值均可以为null。 遍历map有两种方式:keyset(效率低)和entryset(效率高),两种方式都需要创建Iterator迭代器对象,不同的是使用keyset需要从迭代器中获取map的key,并且通过key获取value(key=iterator.next(); value=map.get(key));使用entryset则需要从迭代器中获取Map.Entry对象,再从中获取map的key和value(Map.Entry

entry=(Map.Entry)iterator.next(); key=entry.getKey(); value=entry.getValue())。

Map map=new HashMap();

Iterator iterator=map.entrySet().iterator();

struts.xml

中设置

while(iterator.hasNext()){

Map.Entry entry=(Map.Entry)iterator.next(); Object key=entry.getKey(); Object value=entry.getValue(); }

Map map=new HashMap();

Iterator iterator=map.keySet().iterator(); while(iterator.hasNext){ Object key=iterator.next(); Object value=map.get(key); } 14 答:

synchronized同步代码块:synchronized(同步监视器){…}

synchronized修饰的同步方法:public synchronized 返回值 方法名(){…} wait();:wait方法必须在用有synchronized修饰的地方才能使用

notify();:唤醒了有相同同步监视器的wait(),从wait()的下一行代码开始执行 notifyAll();:唤醒了所有调用wait()的方法 15

java中char占几个字节,为什么 字节 16

. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行?什么时候被执行?在return之前还是之后

答:会被执行,在return之后执行,finally{}中的语句只有在虚拟机停止的情况下才不执

行。

17

从操作系统角度请阐述一下线程与进程的区别

答: 2个字节。java是采用unicode编码,使用16位的编码空间,即每个字符都占两个

.说出线程同步的几个方法

答:进程是系统进行资源分配和调度的一个独立单位,线程是CPU调度和分派的基本单位 进程和线程的关系:

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。

(3)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

(4)处理机分给线程,即真正在处理机上运行的是线程。 (5)线程是指进程内的一个执行单元,也是进程内的可调度实体。 线程与进程的区别:

(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。

(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行。 (3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。

(4)系统开销:在创建或撤销进程的时候,由于系统都要为之分配和回收资源,导致系统的明显大于创建或撤销线程时的开销。但进程有独立的地址空间,进程崩溃后,在保护模式下不会对其他的进程产生影响,而线程只是一个进程中的不同的执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但是在进程切换时,耗费的资源较大,效率要差些。 18 请阐述一下你对java多线程中同步的几种方式,区别,及其重要性。 (1) wait方法:

该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所在的代码块的锁,并在其他线程调用notify或者notifyAll方法时恢复到竞争锁状态(一旦获得锁就恢复执行)。 调用wait方法需要注意几点:

第一点:wait被调用的时候必须在拥有锁(即synchronized修饰的)的代码块中。 第二点:恢复执行后,从wait的下一条语句开始执行,因而wait方法总是应当在while循环中调用,以免出现恢复执行后继续执行的条件不满足却继续执行的情况。 第三点:若wait方法参数中带时间,则除了notify和notifyAll被调用能激活处于wait状态(等待状态)的线程进入锁竞争外,在其他线程中interrupt它或者参数时间到了之后,该线程也将被激活到竞争状态。

第四点:wait方法被调用的线程必须获得之前执行到wait时释放掉的锁重新获得才能够恢复执行。

(2) notify方法和notifyAll方法:

notify方法通知调用了wait方法,但是尚未激活的一个线程进入线程调度队列(即进入锁竞争),注意不是立即执行。并且具体是哪一个线程不能保证。另外一点就是被唤醒的这个线程一定是在等待wait所释放的锁。

notifyAll方法则唤醒所有调用了wait方法,尚未激活的进程进入竞争队列。

(3) synchronized关键字:

第一点:synchronized用来标识一个普通方法时,表示一个线程要执行该方法,必须取得该方法所在的对象的锁。

第二点:synchronized用来标识一个静态方法时,表示一个线程要执行该方法,必须获得该方法所在的类的类锁。

第三点:synchronized修饰一个代码块。类似这样:synchronized(obj) { //code.... }。表示一个线程要执行该代码块,必须获得obj的锁。这样做的目的是减小锁的粒度,保证当不同块所需的锁不冲突时不用对整个对象加锁。利用零长度的byte数组对象做obj非常经济。

(4) atomic action(原子操作):

在JAVA中,以下两点操作是原子操作。但是c和c++中并不如此。

第一点:对引用变量和除了long和double之外的原始数据类型变量进行读写。 第二点:对所有声明为volatile的变量(包括long和double)的读写。 另外:在java.util.concurrent和java.util.concurrent.atomic包中提供了一些不依赖于同步机制的线程安全的类和方法。 19 、final,finally,finalize的区别。

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清

2016最新java面试题 - 详细版

9Java中线程的四种状态分别是_运行_______、_______就绪______、挂起、结束;让线程从运行状态转换为暂停状态的有___________睡眠__、等待。10struts2框架中为了处理中文乱码问题,需在JSP页面中设置___pageEncoding=utf-8__________,同时也应该在__struts
推荐度:
点击下载文档文档为doc格式
0b6ur18ptn9vfqw3dfkb
领取福利

微信扫码领取福利

微信扫码分享