1、String 和StringBuffer的区别

JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。

2、简述synchronized和java.util.concurrent.locks.Lock的异同?

主要相同点:Lock能完成synchronized所实现的所有功能

主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。

3、List、Map、Set 三个接口,存取元素时,各有什么特点?

List 以特定次序来持有元素,可有重复元素。

Set 无法拥有重复元素,内部排序。

Map 保存key-value 值,value 可多值。

4、sleep() 和wait() 有什么区别? 

sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep 不会释放对象锁。

wait 是Object 类的方法, ,进入等待此对象的等待锁定池,只有针对此对象发出notify 方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

5、请说出你所知道的线程同步的方法。

wait():使一个线程处于等待状态,并且释放所持有的对象的lock;

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException 异常;

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM 确定唤醒哪个线程,而且不是按优先级;

notityAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

6、启动一个线程是用run()还是start()?

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM 调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

7、运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

大佬对大佬,史诗级面试现场!!!相关推荐

  1. 【面试现场】如何在10亿数中找出前1000大的数

    小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已经挂了两家,今天小史去了BAT中的最后一家面试了. 简单的 ...

  2. 面试现场:小伙伴美团一面的分享和分析「含解答」

    作者:小傅哥 博客:https://bugstack.cn ❝ 沉淀.分享.成长,让自己和他人都能有所收获!???? ❞ 目录 一.前言 二.面试现场 三.总结 四.系列推荐 一.前言 最近给大家整理 ...

  3. 「BAT面试现场」如何判断一个数是否在40亿个整数中?

    https://www.toutiao.com/a6699639753467232771/ 作者:channingbreeze 来自:公众号互联网侦察 小史是一个应届生,虽然学的是电子专业,但是自己业 ...

  4. mysql存储base64位用什么类型_【漫画】面试现场:为什么MySQL数据库要用B+树存储索引?...

    推荐阅读:MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒! 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 话说 ...

  5. 【BAT面试现场】如何判断一个数是否在40亿个整数中?

    作者 channingbreeze 如需转载,请联系原作者授权. 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT. 今天他就去BAT中的一家面试了. ...

  6. 300小时成为java程序员_直击面试现场: Java程序员3轮6小时面试, 成功拿到阿里offer!...

    原标题:直击面试现场: Java程序员3轮6小时面试, 成功拿到阿里offer! 今天给大家分享一位Java程序员小伙去阿里应聘的经历! 从Java开发要掌握的技术来讲,前面已经说得差不多了.我主要想 ...

  7. GitHub 狂飙 30K+star 面试现场, 专为程序员面试打造, 现已开源可下载

    <2022 程序员面试现场>上线 2 个月已经在 GitHub 上已经狂飙到 30K+star(能在在 GitHub 上拿到 30K+的 star,有没有干货,我就不多说了)总结的很全面, ...

  8. 面试现场说要轮岗,实际岗位是地推

    一些公司在招聘上手段五花八门,比如挂着招行政文员/前台的岗位,面试现场说要轮岗,实际岗位是地推,销售物品是笔,如果是推广app地推我都可以理解,不是很理解为什么要卖笔,3元一支的笔要卖多少才能高收入呢 ...

  9. GitHub狂飙30K+star面试现场,专为程序员面试打造,现已开源可下载

    <程序员面试现场>上线2个月已经在GitHub上已经狂飙到30K+star(能在在GitHub上拿到30K+的star,有没有干货,我就不多说了)总结的很全面,主要是针对面试之前的准备工作 ...

最新文章

  1. 引人遐想,用 Python 获取你想要的 “某个人” 摄像头照片
  2. python语言怎么学-Py列为黑客应该学的四种编程语言之一 新手该怎么学
  3. Swoft 源码剖析 - Swoft 中的注解机制
  4. 2020蓝桥杯省赛---java---B---6(成绩分析)
  5. Mybatis(5)自定义Mybatis分析以及自定义实现
  6. Power Pivot表属性无法切换回表预览模式的问题
  7. html中radio单选按钮控件标签用法解析及如何设置默认选中
  8. VB.NET LDAP 用户身份验证
  9. 推送后更改git commit消息(假设没有人从远程拉出)
  10. maven jetty的eclipse 插件
  11. 凤凰 Remix android x86,主流 Android x86系统分享
  12. 天线分类特征学习笔记(1)偶极子天线
  13. xposed模拟器安装
  14. 阿里云服务器申请免费试用图文教程(个人和企业均可申请)
  15. 【机器学习】缺失值处理总结
  16. 双重差分法之空间DID
  17. 《浦岛太郎》——太宰治
  18. 16秋南开计算机应用答案,南开16秋学期《计算机应用基础》在线作业.doc
  19. eovs实训报告总结心得_实训心得体会(精选15篇)
  20. 数学——行向量和列向量

热门文章

  1. Java的native方法-----你必须要知道的JAVA知识
  2. tableViewcell的删除
  3. linux常用命令总结-第一次考试
  4. EOS Platform 7.2 安装
  5. 第5 章持久化类(Persistent Classes)
  6. 更灵活的定位内存地址的方法05 - 零基础入门学习汇编语言36
  7. Oracle share server
  8. VOIP侵蚀电信利益,未来最赚钱的行业.
  9. [Big Data - Kafka] Kafka设计解析(四):Kafka Consumer解析
  10. 初创企通过哪里报名可参与赛事活动