您的位置:首页 > 职场人生

java面试题(摘录)

2017-07-02 21:58 99 查看
1.抽象,继承,封装,多态

2.基本数据类型的字节数

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px Helvetica }
byte:1、int:4、char:2、long:8、float:4、double:8、boolean:1 和short:2

3.String , StringBuffer,StringBuilder的区别

字符串较少拼接时,用String

字符串频繁拼接时,单线程环境下应该使用StringBuilder来保证较好的性能,当需要保证多线程安全时,就 应该使用StringBuffer

4.servlet的生命周期,与CGI的区别

实例化,init(),service方法,doget或doPost方法,调用destroy()销毁

servlet一个实例服务于多个请求,CGI一个请求开一个进程,服务完成就销毁

5.JSP中动态INCLUDE与静态INCLUDE的区别

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px Helvetica }
6.round 方法返回与参数最接近的长整数,参数加1/2 后求其floor.

7.构造器Constructor是否可被override?

8.iterator

Iterator<String> it = books.iterator();
//这种形式遍历可以用it.remove()来删除元素,其他的方式都不可以,会引发异常.
while(it.hasNext()){
System.out.println(it.next());
}


9.集合安全

SortedSet<String> s = Collections.synchronizedSortedSet(new TreeSet<>());


10.Runnable 和 Thread 的区别

Runnable对象仅仅作为Thread对象的target,Runnable实现类里包含的run()方法仅作为线程执行体.而实际的线程对象依然是Thread实例,

只是该Thread线程负责执行其target的run()方法.

11.join()使用方法,先start(),再join();

public static void main(String[] args)throws Exception{
for (int i=0;i<100;i++){
if(i==20){
JoinThread jt = new JoinThread("join");
jt.start();
jt.join();
}
System.out.println(Thread.currentThread().getName()+"--- "+i);
}
}


12.后台线程

在后台运行,为其他线程提供服务,比如GCC,调用Thread的setDaemon(true)方法,可将其设置为后台线程。

如果一个进程的所有前台线程死亡,JVM会通知这个进程的后台线程令其死亡。

需要先调用setDaemon(true),再start(),否则会引发异常。

13.改变线程的优先级

Thread类提供了setPriority(int newPriority)和getPriority()来设置

和返回指定线程的优先级.10最大,1最小,正常为5

14.synchronized

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Monaco; color: #931a68 }
synchronized的本质是对象锁,锁定方法时,默认锁定this,当一个对象被锁时,无法调用有相同对象锁的其他被锁代码块。

15.wait()和sleep()的区别

wait()会释放同步监视器,sleep()和yield()不会释放同步监视器

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.5px Helvetica }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.5px Helvetica }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Monaco; color: #931a68 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: