2021大厂Java面试真题(二)
2021大厂Java面试真题(二)
2021 【阿里】面试真题:
1、TCP 和 UDP 区别?
TCP 基于连接,UDP 基于无连接。
TCP 要求系统资源较多,UDP 较少。
UDP 程序结构较简单。
TCP 保证数据正确性,UDP 可能丢包。
TCP 保证数据顺序,UDP 不保证。
2、TCP/IP 协议涉及哪几层架构?
应用层 传输层 互连网络层 网络接口层。
3、描述下 TCP 连接 4 次挥手的过程?为什么要 4 次挥手?
因为 TCP 是全双工,每个方向都必须进行单独关闭。关闭连接时,当 Server 端收到 FIN
报文时,很可能并不会立即关闭 SOCKET,所以只能先回复一个 ACK 报文,告诉 Client
端,”你发的 FIN 报文我收到了”。只有等到 Server 端所有的报文都发送完了,我才能发
送 FIN 报文,因此不能一起发送。故需要四步握手。
4、计算机插上电源操作系统做了什么?
加电––––打开电源开关,给主板和内部风扇供电。
启动引导程序––––CPU 开始执行存储在 ROM BIOS 中的指令。
开机自检––––计算机对系统的主要部件进行诊断测试。
加载操作系统––––计算机将操作系统文件从磁盘读到内存中。
检查配置文件,定制操作系统的运行环境––––读取配置文件,根据用户的设置对操作
系统进行定制。
- 准备读取命令和数据––––计算机等待用户输入命令和数据。
5、Linux 操作系统设备文件有哪些?
字符设备、块设备。
6、多线程同步有哪些方法?
使用 synchronized 关键字
wait 和 notify
使用特殊域变量 volatile 实现线程同步
使用重入锁实现线程同步
使用局部变量来实现线程同步
使用阻塞队列实现线程同步
使用原子变量实现线程同步
7、一个对象的两个方法加 synchronized,一个线程进去 sleep,另一个线程 可以进入到另一个方法吗?
不能。
8、什么是可重入锁(ReentrantLock)?
举例来说明锁的可重入性
public class UnReentrant{
Lock lock = new Lock();
public void outer(){
lock.lock();
inner();
lock.unlock();
}
public void inner(){
lock.lock();
//do something
lock.unlock();
}
}
outer 中调用了 inner,outer 先锁住了 lock,这样 inner 就不能再获取 lock。其实调用
outer 的线程已经获取了 lock 锁,但是不能在 inner 中重复利用已经获取的锁资源,这种
锁即称之为不可重入可重入就意味着:线程可以进入任何一个它已经拥有的锁所同步着的代码
块。
synchronized、ReentrantLock 都是可重入的锁,可重入锁相对来说简化了并发编程的开发。
9、创建线程的三个方法是什么?
通过继承 Thread 类创建线程类。
实现 Runnable 接口创建线程类。
通过 Callable 和 Future 接口创建线程。
10、Java 怎么获取多线程的返回值?
主线程等待。
使用 Thread 的 join 阻塞当前线程等待。
实现 Callable 接口(通过 FutureTask 或线程池的 Future)。
11、线程池有哪几种创建方式? Java 通过 Executors(jdk1.5 并发包)提供四种线程池,分别为:
- newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵
活回收空闲线程,若无可回收,则新建线程。
- newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队
列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执
行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
12、线程池参数有哪些?
corePoolSize 核心线程大小。
maximumPoolSize 线程池最大线程数量。
keepAliveTime 空闲线程存活时间。
unit 空间线程存活时间单位。
workQueue 工作队列。
threadFactory 线程工厂。
handler 拒绝策略。
13、线程池拒绝策略有哪些?
- ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出 RejectedExecutionException 异常
(默认拒绝策略)。
ThreadPoolExecutor.DiscardPolicy:丢弃任务,但是不抛出异常。
ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新提交被
拒绝的任务。
- ThreadPoolExecutor.CallerRunsPolicy:由调用线程(提交任务的线程)处理该任务。
14、你认为对线程池的核心参数实现自定义可配置,三个核心参数是?
corePoolSize : 核心线程数线程数定义了最小可以同时运行的线程数量。
maximumPoolSize : 当队列中存放的任务达到队列容量的时候,当前可以同时运行的线
程数量变为最大线程数。
- workQueue**
2021大厂Java面试真题(二)相关推荐
- 2021大厂Java面试真题(一)
2021大厂Java面试真题(一) 大厂面试的基本流程 以下是一些大厂面试的基本流程,大家可以参考下: 字节跳动 阿里 腾讯 网易游戏 面试前需要准备: \1. **Java 八股文:**了解常考的题 ...
- 2021大厂Java面试真题(六)
2021大厂Java面试真题(六) * * 2021 [华为]面试真题* * : * * 1.Java 常用集合及特点?* * List:ArrayList.LinkedList.Vector.Sta ...
- 2021大厂Java面试真题集锦,深度解析,值得收藏
第一个:Alibaba[搜索推荐] 一面:算法题:长度为n的数组里放了n+1个大小在[1,n]的数,必然至少有一个重复的数,找出来 二面:概率题:求一根绳子被切两刀能组成一个三角形的概率. 三面主管面 ...
- 秋招如何抱佛脚?2022最新大厂Java面试真题合集(附权威答案)
2022秋招眼看着就要来了,但是离谱的是,很多同学最近才想起来还有秋招这回事,所以纷纷临时抱佛脚,问我有没有什么快速磨枪的方法, 我的回答是:有! 说起来,临阵磨枪没有比背八股文更靠谱的了,很多人对这 ...
- 金三银四如何抱佛脚?2022 最新大厂 Java 面试真题合集(附权威答案)
这些面试资料都是我通过各种渠道收集到的大厂面试真题,并附有最新的权威答案,绝不是网络上那些已经是几年前甚至十几年前的面试题所能媲美的,除面试题外还有我整理的一些经典 Java 学习电子书也都可以无偿分 ...
- “烤面经了“~2022最新大厂Java面试真题总结,可带劲了
前言 疫情到现在已经持续有3年的时间了,由于疫情的影响,无数行业都受到了影响,互联网寒冬下,许多程序员被裁,大环境格外困难. 我发现一个奇怪的现象:那些跳槽的人,总是从一个坑,跳进令一个坑中.毕竟一年 ...
- 2021京东Java面试真题:杭州java工资
第一家是美团 美团的话,三面下来,设计的内容知识也是挺广的吧,有MySQL.Redis.Kafka.线程.算法.+.volatile.线程.并发.设计模式等等- 一面问题:MySQL+Redis+Ka ...
- 2021京东Java面试真题:javadouble四舍五入取整
前言 正值金九银十面试旺季,现在的面试官一天少说得看几百份简历,你投出去的简历如果没有特别吸引人的点和新颖突出,毫无疑问你的简历不是在垃圾桶就是在回收站里边待着了,那么什么样的简历才能吸引到面试官的眼 ...
- SpringBoot整合Elasticsearch,2021最新Java面试真题解析
@Field(type = FieldType.Keyword) private String categroy; @Field(type = FieldType.Double) private Do ...
最新文章
- java maven项目构建ssh工程 父工程与子模块的拆分与聚合
- 求素数的方法完整归纳,学的不仅是“求素数”!
- 将一个数字划分成树状
- Apache Avro
- Bazel构建工具的安装
- HDU2855 Fibonacci Check-up 矩阵的应用
- 计算机房地板厚度,机房防静电地板 架空地板的技术参数与地板规格种类
- 技术转管理,用什么来拯救自己?
- 求和函数计算机语言,在 Excel 中,计算求和的函数是 ____。
- java简易计算器代码
- 磁盘加密软件(Secret Disk Pro 2020) v2020.03
- 早鸟票开售 | 世界级大师Sanjiv和他的敏捷领导力(CAL)认证课程
- 程序分析技术栈-测试/辅助证明/模型检验/保守静态分析/bug-finding
- fbx模型加载到html,three.js演示如何用FBXLoader来加载fbx模型
- QIIME 2:可重复、交互和扩展的微生物组数据分析流程
- (翻译)稀缺模式(Scarcity)
- 有关wifi配置工具wpa_cli以及wpa_supplicant简单分析
- 一个HR人给应届生的面试建议【推荐】
- Qt项目实战之网络电子白板-安晓辉-专题视频课程
- 从事人工智能行业,学什么专业比较好,需要学哪些基础知识
热门文章
- 面向对象的程序设计1 理解对象—— JS学习笔记2015-7-4(第75天)
- 取火柴小游戏python turtle库
- 计算机打不开关机选项,电脑什么都打不开也关不了机是什么原因
- 淘宝人生专属“小屋”——虚拟人和虚拟场景技术探索
- 思科的敌人是谁<转>
- Pymoo学习 (11):有偏随机密匙遗传算法 (BRKGA: Biased Random Key Genetic Algorithm) 的使用
- asmr软件测试,ASMR Room
- 用javascript实现控制打开网页窗口的大小 和HTML如何关闭窗口的技巧大全
- layer.js确认框
- golang单元测试一(简单函数测试)
- 2021大厂Java面试真题(一)