今年的6月份又到了,又是一年一度的毕业季,但是你真的做好准备了吗?。应届毕业生很多,怎么让你自己在这群人中脱颖而出呢?那你就要做万分的准备,不打没准备的仗,下面小猿圈java讲师为你总结了常见的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面试题就到这里了,看到这篇文章的小伙伴们一定要好好看看这篇面试题,都是老师用心总结的,最后祝愿各位大学生找到一份满意的工作,加油!

小猿圈之常见java面试题总结,你学会了吗?相关推荐

  1. 猿圈 题库_小猿圈总结常见HTML5基础知识面试题汇总

    现在对于刚刚毕业的大学生来说,面试是一种一点自信都没有的,但是对于一些有职场经验的人来说,是轻车熟路的,今天作为IT行业中的老油条,小猿圈web前端讲师为你简单讲解HTML5基础知识面试题汇总. 1. ...

  2. 小猿圈之学习java web需要有什么基础?

    有很多人想学java,因为java虽然已经火了多年,但是其发展前景还是很不错的,有很大一部分人选择走java web方向,那么java web应该提前掌握哪些知识呢?小猿圈加加下面说一下. 首先找准自 ...

  3. 小猿圈分享使用Java模拟三道门的游戏

    美国以前有一个综艺节目.参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊.当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启 ...

  4. 小猿圈python之python期末考试测试题(二)_小猿圈Python开发面试题(二)

    原标题:小猿圈Python开发面试题(二) 小猿圈Python老师继上一次python面试题一,接着更新python面试题二,同学们测试一做的怎么样呢?有没有把握呢,想要看答案的同学们,可以在小猿圈上 ...

  5. 猿圈笔试系统java_小猿圈分享Java面试题

    马上又到毕业季了,很多同学都很迷茫,不知道该选择哪个方向,也有的同学害怕找不到工作,今天小猿圈就给大家分享一下关于初学者的Java面试题 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几 ...

  6. 小猿圈Java学习分享2019Java面试题

    虽然金三银四已经过去了但是我门毕业季马上又要来了,每天有很多同学私聊小猿圈老师,想请教一下面试的技巧,老师只能说面试最重要的还是能力,所以小猿圈就给大家整理了一些出现频率比较高的面试题,希望可以帮助到 ...

  7. 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍

    Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...

  8. 小猿圈linux之运维工程师面试题(答案版)

    小编在前几篇文章中写过两篇运维工程师面试题,今天接着上次的内容继续,如果做完这套面试题,感觉还不错,可以翻一下小编前两套,小猿圈带你突破面试的难关,走上自己热爱的运维岗位. 1.常见的Linux发行版 ...

  9. java length()函数_小猿圈介绍java函数式编码结构及优势

    对于java大家都已经不陌生了吧,今天小猿圈Java讲师就分享一篇关于java函数式编码结构及优势的知识点,希望对于学习java的你有一定的帮助,想学习就需要积累. 探讨三种下一代JVM语言:Groo ...

最新文章

  1. SAP咨询顾问被客户投诉的几个原因
  2. 如何在Java 8中使用filter()方法
  3. 算法十——深度优先搜索和广度优先搜索
  4. 电脑换ip软件_如何使用爱加速换iP软件
  5. ShotCut——视频处理剪辑神器
  6. VS2010 asp.net development server 无法展示svg图片
  7. OpenDDS系列(1) —— OpenDDS 简介
  8. 智慧职教云答案在哪里找_云课堂智慧职教答案哪里找?
  9. arduino/Mixly心知天气
  10. vue中使用(瀑布流)vue-waterfall-easy插件
  11. 基于蓝牙5(BTIoT-5)的物联网架构
  12. 微信小程序支付绑定商户号问题
  13. DBMS_AW_EXP: not AW$
  14. DSM -- 软件安装
  15. ProxmoxVE折腾记录(一)--安装
  16. linux 内存占用过高
  17. word2003下的神秘咒语——灵活的棕色狐狸跳过懒狗
  18. STM32主从模式 精确脉冲数PWM (已实现)
  19. Linux 不需要磁盘清理
  20. 人工智能其实就是『八卦』

热门文章

  1. 微信小程序开发(三)——IE盒子,Flex弹性布局,色子六面
  2. 90行代码轻松实现!结合 Whisper + Stable-diffusion 的语音生成图像任务!
  3. 自学Java!三面蚂蚁核心金融部,Java岗
  4. 树莓派homebridge开机启动和后台运行
  5. python axis到底如何理解?
  6. 校招社招互联网面试经验总结
  7. 计算机动画类型及创作原理,计算机动画的原理和制作.ppt
  8. 软工实践(五)——获小黄衫有感
  9. 四川大学软件学院 2017级系统级编程 复习知识点-很零碎的那种
  10. CS61A fa2021 Composing Programs 2.7 Object Abstraction 对象抽象