博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小猿圈之常见java面试题总结,你学会了吗?
阅读量:6961 次
发布时间:2019-06-27

本文共 1530 字,大约阅读时间需要 5 分钟。

今年的6月份又到了,又是一年一度的毕业季,但是你真的做好准备了吗?。应届毕业生很多,怎么让你自己在这群人中脱颖而出呢?那你就要做万分的准备,不打没准备的仗,下面为你总结了常见的java面试题,希望对你的面试有所帮助。

1.list中存放可重复字符串,如何删除某个字符串

调用iterator相关方法删除

倒删,防止正序删除导致的数组重排,index跳过数组元素问题

2.concurrenthashmap为何读不用加锁

jdk1.7

1)HashEntry中的key、hash、next均为final型,只能表头插入、删除结点

2)HashEntry类的value域被声明为volatile型

3)不允许用null作为键和值,当读线程读到某个HashEntry的value域的值为null时,便知道产生了冲突——发生了重排序现象(put设置新value对象的字节码指令重排序),需要加锁后重新读入这个value值

4)volatile变量count协调读写线程之间的内存可见性,写操作后修改count,读操作先读count,根据happen-before传递性原则写操作的修改读操作能够看到

jdk1.8

1)Node的val和next均为volatile型

2)tabAt和casTabAt对应的unsafe操作实现了volatile语义

3.ContextClassLoader(线程上下文类加载器)的作用

越过类加载器的双亲委派机制去加载类,如serviceloader实现

使用线程上下文类加载器加载类,要注意保证多个需要通信的线程间的类加载器应该是同一个,防止因为不同的类加载器导致类型转换异常(ClassCastException)

4.如何结束一个一直运行的线程

使用退出标志,这个flag变量要多线程可见

使用interrupt,结合isInterrupted()使用

5.如何从FutureTask不阻塞获取结果

get(longtimeout,TimeUnitunit),超时则返回

轮询,先通过isDone()判断是否结束,然后调用get()

6.线程池从启动到工作的流程

刚创建时,里面没有线程

调用execute()添加任务时:

1)如果正在运行的线程数量小于核心参数corePoolSize,继续创建线程运行这个任务

2)否则,如果正在运行的线程数量大于或等于corePoolSize,将任务加入到阻塞队列中

3)否则,如果队列已满,同时正在运行的线程数量小于核心参数maximumPoolSize,继续创建线程运行这个任务

4)否则,如果队列已满,同时正在运行的线程数量大于或等于maximumPoolSize,根据设置的拒绝策略处理

5)完成一个任务,继续取下一个任务处理

6)没有任务继续处理,线程被中断或者线程池被关闭时,线程退出执行,如果线程池被关闭,线程结束

7)否则,判断线程池正在运行的线程数量是否大于核心线程数,如果是,线程结束,否则线程阻塞。因此线程池任务全部执行完成后,继续留存的线程池大小为corePoolSize

7.阻塞队列BlockingQueuetake和poll区别

poll(time):取走BlockingQueue里排在首位的对象,若不能立即取出,则可以等time参数规定的时间,取不到时返回null

take():取走BlockingQueue里排在首位的对象,若BlockingQueue为空,阻塞直到BlockingQueue有新的对象被加入

总结java面试题就到这里了,看到这篇文章的小伙伴们一定要好好看看这篇面试题,都是老师用心总结的,最后祝愿各位大学生找到一份满意的工作,加油!

转载地址:http://nrqil.baihongyu.com/

你可能感兴趣的文章
Windows7设置局域网文件共享
查看>>
Linux的五种I/O模式
查看>>
Oracle2
查看>>
CALayer图层的基本介绍
查看>>
php自动加载的两个函数__autoload和__sql_autoload_register
查看>>
JAXP使用Stax API时格式化输出XML 2
查看>>
第五章.面向对象.总结
查看>>
html 引入上下文路径
查看>>
xsehll常规
查看>>
关于工资的隐喻
查看>>
Python错误和异常
查看>>
Practical Vim Edit Text at the Speed of Thought笔记
查看>>
组件 layui 表单抓取数据四步走
查看>>
Ka的回溯编程练习 Part2|八皇后问题和N皇后问题
查看>>
引入UEditor后其他列表项不显示
查看>>
《软件需求与分析》阅读笔记
查看>>
linux磁盘管理之df和du命令
查看>>
Xsell连接ubuntu
查看>>
python实现微信接口——itchat模块
查看>>
正则表达式
查看>>