Java大厂面试100道题(7 道集合面试题总结)

各大厂800道Java后端经典面试题合集 另外,面试题答案的话,可以私信我, 希望大家都能找到自己理想的offer呀。 阅读详情

Q1:说一说 ArrayList

ArrayList 是容量可变的非线程安全列表,使用数组实现,集合扩容时会创建更大的数组,把原有数组复制到新数组。支持对元素的快速随机访问,但插入与删除速度很慢。ArrayList 实现了 RandomAcess 标记接口,如果一个类实现了该接口,那么表示使用索引遍历比迭代器更快。

elementData是 ArrayList 的数据域,被 transient 修饰,序列化时会调用 writeObject 写入流,反序列化时调用 readObject 重新赋值到新对象的 elementData。原因是 elementData 容量通常大于实际存储元素的数量,所以只需发送真正有实际值的数组元素。

size 是当前实际大小,elementData 大小大于等于 size。

modCount 记录了 ArrayList 结构性变化的次数,继承自 AbstractList。所有涉及结构变化的方法都会增加该值。expectedModCount 是迭代器初始化时记录的 modCount 值,每次访问新元素时都会检查 modCount 和 expectedModCount 是否相等,不相等就会抛出异常。这种机制叫做 fail-fast,所有集合类都有这种机制。


Q2:说一说 LinkedList

LinkedList 本质是双向链表,与 ArrayList 相比插入和删除速度更快,但随机访问元素很慢。除继承 AbstractList 外还实现了 Deque 接口,这个接口具有队列和栈的性质。成员变量被 transient 修饰,原理和 ArrayList 类似。

LinkedList 包含三个重要的成员:size、first 和 last。size 是双向链表中节点的个数,first 和 last 分别指向首尾节点的引用。

LinkedList 的优点在于可以将零散的内存单元通过附加引用的方式关联起来,形成按链路顺序查找的线性结构,内存利用率较高。


Q3:Set 有什么特点,有哪些实现?

Set 不允许元素重复且无序,常用实现有 HashSet、LinkedHashSet 和 TreeSet。

HashSet 通过 HashMap 实现,HashMap 的 Key 即 HashSet 存储的元素,所有 Key 都使用相同的 Value ,一个名为 PRESENT 的 Object 类型常量。使用 Key 保证元素唯一性,但不保证有序性。由于 HashSet 是 HashMap 实现的,因此线程不安全。

HashSet 判断元素是否相同时,对于包装类型直接按值比较。对于引用类型先比较 hashCode 是否相同,不同则代表不是同一个对象,相同则继续比较 equals,都相同才是同一个对象。

LinkedHashSet 继承自 HashSet,通过 LinkedHashMap 实现,使用双向链表维护元素插入顺序。

TreeSet 通过 TreeMap 实现的,添加元素到集合时按照比较规则将其插入合适的位置,保证插入后的集合仍然有序。


Q4:TreeMap 有什么特点?

TreeMap 基于红黑树实现,增删改查的平均和最差时间复杂度均为 O(logn) ,最大特点是 Key 有序。Key 必须实现 Comparable 接口或提供的 Comparator 比较器,所以 Key 不允许为 null。

HashMap 依靠 hashCode 和 equals 去重,而 TreeMap 依靠 Comparable 或 Comparator。 TreeMap 排序时,如果比较器不为空就会优先使用比较器的 compare 方法,否则使用 Key 实现的 Comparable 的 compareTo 方法,两者都不满足会抛出异常。

TreeMap 通过 put 和 deleteEntry 实现增加和删除树节点。插入新节点的规则有三个:① 需要调整的新节点总是红色的。② 如果插入新节点的父节点是黑色的,不需要调整。③ 如果插入新节点的父节点是红色的,由于红黑树不能出现相邻红色,进入循环判断,通过重新着色或左右旋转来调整。TreeMap 的插入操作就是按照 Key 的对比往下遍历,大于节点值向右查找,小于向左查找,先按照二叉查找树的特性操作,后续会重新着色和旋转,保持红黑树的特性。


Q5:HashMap 有什么特点?

JDK8 之前底层实现是数组 + 链表,JDK8 改为数组 + 链表/红黑树,节点类型从Entry 变更为 Node。主要成员变量包括存储数据的 table 数组、元素数量 size、加载因子 loadFactor。

table 数组记录 HashMap 的数据,每个下标对应一条链表,所有哈希冲突的数据都会被存放到同一条链表,Node/Entry 节点包含四个成员变量:key、value、next 指针和 hash 值。

HashMap 中数据以键值对的形式存在,键对应的 hash 值用来计算数组下标,如果两个元素 key 的 hash 值一样,就会发生哈希冲突,被放到同一个链表上,为使查询效率尽可能高,键的 hash 值要尽可能分散。

HashMap 默认初始化容量为 16,扩容容量必须是 2 的幂次方、最大容量为 1<< 30 、默认加载因子为 0.75。


Q6:HashMap 相关方法的源码?

JDK8 之前

hash:计算元素 key 的散列值

① 处理 String 类型时,调用 stringHash32 方法获取 hash 值。

② 处理其他类型数据时,提供一个相对于 HashMap 实例唯一不变的随机值 hashSeed 作为计算初始量。

③ 执行异或和无符号右移使 hash 值更加离散,减小哈希冲突概率。

indexFor:计算元素下标

将 hash 值和数组长度-1 进行与操作,保证结果不会超过 table 数组范围。

get:获取元素的 value 值

① 如果 key 为 null,调用 getForNullKey 方法,如果 size 为 0 表示链表为空,返回 null。如果 size 不为 0 说明存在[链表](),遍历 table[0]链表,如果找到了 key 为 null 的节点则返回其 value,否则返回 null。

② 如果 key 为 不为 null,调用 getEntry 方法,如果 size 为 0 表示链表为空,返回 null 值。如果 size 不为 0,首先计算 key 的 hash 值,然后遍历该链表的所有节点,如果节点的 key 和 hash 值都和要查找的元素相同则返回其 Entry 节点。

③ 如果找到了对应的 Entry 节点,调用 getValue 方法获取其 value 并返回,否则返回 null。

put:添加元素

① 如果 key 为 null,直接存入 table[0]。

② 如果 key 不为 null,计算 key 的 hash 值。

③ 调用 indexFor 计算元素存放的下标 i。

④ 遍历 table[i] 对应的链表,如果 key 已存在,就更新 value 然后返回旧 value。

⑤ 如果 key 不存在,将 modCount 值加 1,使用 addEntry 方法增加一个节点并返回 null。

resize:扩容数组

① 如果当前容量达到了最大容量,将阈值设置为 Integer 最大值,之后扩容不再触发。

② 否则计算新的容量,将阈值设为 newCapacity x loadFactor 和 最大容量 + 1 的较小值。

③ 创建一个容量为 newCapacity 的 Entry 数组,调用 transfer 方法将旧数组的元素转移到新数组。

transfer:转移元素

① 遍历旧数组的所有元素,调用 rehash 方法判断是否需要哈希重构,如果需要就重新计算元素 key 的 hash 值。

② 调用 indexFor 方法计算元素存放的下标 i,利用头插法将旧数组的元素转移到新数组。

JDK8

hash:计算元素 key 的散列值

如果 key 为 null 返回 0,否则就将 key 的 hashCode 方法返回值高低16位异或,让尽可能多的位参与运算,让结果的 0 和 1 分布更加均匀,降低哈希冲突概率。

put:添加元素

① 调用 putVal 方法添加元素。

② 如果 table 为空或长度为 0 就进行扩容,否则计算元素下标位置,不存在就调用 newNode 创建一个节点。

③ 如果存在且是链表,如果首节点和待插入元素的 hash 和 key 都一样,更新节点的 value。

④ 如果首节点是 TreeNode 类型,调用 putTreeVal 方法增加一个树节点,每一次都比较插入节点和当前节点的大小,待插入节点小就往左子树查找,否则往右子树查找,找到空位后执行两个方法:balanceInsert 方法,插入节点并调整平衡、moveRootToFront 方法,由于调整平衡后根节点可能变化,需要重置根节点。

⑤ 如果都不满足,遍历链表,根据 hash 和 key 判断是否重复,决定更新 value 还是新增节点。如果遍历到了链表末尾则添加节点,如果达到建树阈值 7,还需要调用 treeifyBin 把链表重构为红黑树。

⑥ 存放元素后将 modCount 加 1,如果 ++size > threshold ,调用 resize 扩容。

get :获取元素的 value 值

① 调用 getNode 方法获取 Node 节点,如果不是 null 就返回其 value 值,否则返回 null。

② getNode 方法中如果数组不为空且存在元素,先比较第一个节点和要查找元素的 hash 和 key ,如果都相同则直接返回。

③ 如果第二个节点是 TreeNode 类型则调用 getTreeNode 方法进行查找,否则遍历链表根据 hash 和 key 查找,如果没有找到就返回 null。

resize:扩容数组

重新规划长度和阈值,如果长度发生了变化,部分数据节点也要重新排列。

重新规划长度

① 如果当前容量 oldCap > 0 且达到最大容量,将阈值设为 Integer 最大值,return 终止扩容。

② 如果未达到最大容量,当 oldCap << 1 不超过最大容量就扩大为 2 倍。

③ 如果都不满足且当前扩容阈值 oldThr > 0,使用当前扩容阈值作为新容量。

④ 否则将新容量置为默认初始容量 16,新扩容阈值置为 12。

重新排列数据节点

① 如果节点为 null 不进行处理。

② 如果节点不为 null 且没有next节点,那么通过节点的 hash 值和 新容量-1 进行与运算计算下标存入新的 table 数组。

③ 如果节点为 TreeNode 类型,调用 split 方法处理,如果节点数 hc 达到6 会调用 untreeify 方法转回链表。

④ 如果是链表节点,需要将链表拆分为 hash 值超出旧容量的链表和未超出容量的链表。对于hash & oldCap == 0 的部分不需要做处理,否则需要放到新的下标位置上,新下标 = 旧下标 + 旧容量。


Q7:HashMap 为什么线程不安全?

JDK7 存在死循环和数据丢失问题。

数据丢失:

  • 并发赋值被覆盖: 在 createEntry 方法中,新添加的元素直接放在头部,使元素之后可以被更快访问,但如果两个线程同时执行到此处,会导致其中一个线程的赋值被覆盖。
  • 已遍历区间新增元素丢失: 当某个线程在 transfer 方法迁移时,其他线程新增的元素可能落在已遍历过的哈希槽上。遍历完成后,table 数组引用指向了 newTable,新增元素丢失。
  • 新表被覆盖: 如果 resize 完成,执行了 table = newTable,则后续元素就可以在新表上进行插入。但如果多线程同时 resize ,每个线程都会 new 一个数组,这是线程内的局部对象,线程之间不可见。迁移完成后resize 的线程会赋值给 table 线程共享变量,可能会覆盖其他线程的操作,在新表中插入的对象都会被丢弃。

死循环: 扩容时 resize 调用 transfer 使用头插法迁移元素,虽然 newTable 是局部变量,但原先 table 中的 Entry 链表是共享的,问题根源是 Entry 的 next 指针并发修改,某线程还没有将 table 设为 newTable 时用完了 CPU 时间片,导致数据丢失或死循环。

JDK8 在 resize 方法中完成扩容,并改用尾插法,不会产生死循环,但并发下仍可能丢失数据。可用 ConcurrentHashMap 或 Collections.synchronizedMap 包装成同步集合。

推荐学习视频课程:

Java基础视频教程_java从入门到精通_java300集新手必看教程

【尚学堂】Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程_Java语言入门到精通

1. Java基础知识【 精选大厂高频 Java 面试题 100 道与答案详解 】 问题背景小红在编程课上发现,当她尝试修改一个字符串变量时,Java实际上创建了一个新的字符串对象,而不是修改原来的。她很困惑,为什么字符串不能像数组一样直接修改?问题定义在Java中,String类被设计为不可变的,这意味着一旦String对象被创建,它的内容就不能被修改。任何看似对String的修改操作实际上都是创建了一个新的String对象。问题分析与解决String类被声明为final,不能被继承字符数组value被声明为private final,不能被修改没有提供修改内部状态的方法。 阅读详情

相关推荐

使用CubeMX生成的项目在Keil下添加DSP库并包含arm_math头文件后报错的解决办法

问题描述: 最近使用Cube生成工程后,在Keil中使用Manage Runtime Environment即绿色小饼干按钮添加CMSIS的DSP库后编译报错。很有意思的是,STM32论坛上有外国朋友报告的同样的错误,都是30个Errors,5个Warning。 问题分析: 参考国内论坛某帖子(具体想不起来了),认为因该是Cube复制了库后,Keil从原始Packs目录下引用DSP库导致和Cub...

qq_32256951的博客 7003

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day12】—— 集合框架2(HashMap)

同学们,HashMap实在是重点中的重点,面试考察概率很高!各面试官对其掌握的认知程度却并不相同,若你的理解超出面试官的认知范围,自然是强加分项,一定要掌握!上车!

陈哈哈的菜园子 1万+

Windows如何使用Anaconda 3进行keras环境的配置

** Windows如何使用Anaconda 3进行keras环境的配置 搭建Keras环境* Anaconda3如何安装keras,主要包括下面三步: 1.安装mingw libpython 2.安装theano 3.安装keras 若你还没有按装anaconda,赶紧下载安装吧! 下载途径有两个 (1)Anaconda版本为Anaconda 4.4.0,对应的python版本为3.6,附上An...

Lance_liangliang的博客 1601

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day19】—— 集合框架3

百日闭关修炼,每日三道高频面试题。一起冲进大厂!看什么看?快上车!

陈哈哈的菜园子 1万+

Xilinx的DDR4 IP

Xilinx的DDR4 IP

weixin_39896700的博客 4459

量子城域网建设设备系列(三):网络管理系统(NMS)

本文对量子网络中的网络管理系统进行了初步的介绍。

量子领域相关话题 2013

Java面试题读这一篇就够了:100个互联网大厂Java面试真题整理面试必考点【值得收藏】

Java 虚拟机是一个可以执行Java 字节码的虚拟机进程。Java 源文件被编译成能被Java虚拟机执行的字节码文件。Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。byteshortintlongfloatdoublebooleanchar自动装箱是Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。

qq_24428851的博客 822

【制作100个unity实战之2】实现一款简单的FPS游戏

你将学到: fps武器脚本 基础瞄准功能 僵尸敌人AI 巡逻范围 攻击间 搜寻半径 追击 枪声吸引周围的僵尸 击中僵直效果

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3553

BAT大厂流题出的数百道 Java 经典面试

BAT 常问的 Java基础39道常见面试题 1.八种基本数据类型的大小,以及他们的封装类 2.引用数据类型 3.Switch能否用string做参数 4.equals与==的区别 5.自动装箱,常量池 6.Object有哪些公用方法 7.Java的四种引用,强弱软虚,用到的场景 8.Hashcode的作用 9.HashMap的hashcode的作用 10.为什么重载hashC...

Java0257的博客 846

【3D无序抓取】--终极技术详解

3D无序抓取技术详解:从感知到执行的全流程技术方案 本文系统梳理了3D无序抓取(Bin Picking)的核心技术栈,涵盖3D感知、抓取规划和机器人执行三大环节。在3D感知层,详细介绍了点云采集与预处理方法(PCL/Open3D)、物体分割(PointNet++)和位姿估计(PVN3D/DenseFusion)等关键技术。抓取规划部分重点解析了抓取生成(GraspNet)、质量评估(Dex-Net)和动态避障(MoveIt!)算法。机器人执行环节则涉及路径规划、力控技术和末端执行器选型。同时提供了完整的工具

weixin_45590420的博客 598

滴滴数据分析80道面试题及参考答案

常见的模型评价指标有准确率、召回率、F1 值、均方误差、均方根误差、R 方等。准确率是指模型预测正确的样本数占总样本数的比例,它反映了模型预测的准确性。召回率是指模型预测为正例的样本中实际为正例的比例,它衡量了模型对正例的捕捉能力。F1 值是准确率和召回率的调和平均数,综合考虑了两者的平衡。均方误差是预测值与真实值之差的平方的平均值,它衡量了模型预测值与真实值的平均偏离程度。均方根误差是均方误差的平方根,与均方误差类似,但更直观地反映了误差的大小。

大模型大数据攻城狮的专栏 1698

Java 2022年面试题及答案 100道(持续更新)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Java 高频面试题。 本套Java面试题大全,汇总了大量经典的Java程序员面试题以及答案,包含Java语言常见面试题、Java工程师高级面试题及一些大厂Java开发面试宝典 这套Java面试题大全,希望对大家有帮助哈~ 博主已将以下这些面试题整理成了一个面试手册,是PDF版的 1、什么是ThreadPoolExe

m0_61083409的博客 456

9、 量子支持向量机:从经典到量子的跨越

本文详细介绍了量子支持向量机(QSVM)的基本原理及其在PennyLane和Qiskit框架中的实现方法。从经典SVM的基础知识出发,逐步深入到量子领域的应用,包括如何定义量子核函数、与scikit-learn集成以及在模拟器和实际量子计算机上的训练和评估过程。最后通过表格和流程图总结了不同框架下的实现要点,为未来量子机器学习的研究提供了参考。

weixin_42433737的博客 184

35个Java岗位面试题全曝光,刷完这1024道,金九银十大厂等你

千千万万要记得:多刷题!!多刷题!!之前算法是我的硬伤,后面硬啃了好长一段时间才补回来,算法才是程序员的灵魂!!!!篇幅有限,以下只能截图分享部分的资源!!(1)多线程(这里以多线程为代表,其实整理了一本JAVA核心架构笔记集)(2)刷的算法题(还有左神的算法笔记)(3)面经+真题解析+对应的相关笔记(很全面)(4)视频学习(部分)ps:当你觉得学不进或者累了的时候,视频是个不错的选择在这里,最后只一句话:祝大家offer拿到手软!!

2401_83641443的博客 1070

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

什么!靠着这些大厂面试题竟然成功入职了腾讯!真是不可思议

前言 腾讯一面: 1.自我介绍 2.擅长哪方面的技术? 3. Java有哪些锁种类? (乐观锁&悲观锁、可重入锁&Synchronize等) 4.比较重要的数据结构,如链表,队列,栈的基本理解及大致实现 5. J.U.C下的常见类的使用。ThreadPool的深入考察; BlockingQueue的使用 6. Java内存分代模型,GC算法, JVM常见的启动参数; CMS算法的过程。 7. volatile关键字有什么用(包括底层原理) 8.线程池...

weixin_46577306的博客 9979

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java岗大厂面试百日冲刺【Day46】— Linux2 (日积月累,每日三题)

Linux,是面试中常问到的方面,一问就蒙?劝你好自为之,来看看高频问题,一起卷。

陈哈哈的菜园子 5740

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最火大厂面试题、面试技巧汇总及简历编写(附简历模版下载)

最近有粉丝反馈金三银四已到,准备跳槽或整体提升一下技术,有没有一些优秀的大厂面经、面试题、简历编写技巧、简历模版等资料,所以本文就统一整理一些瓶子君所知道的面试资料。大佬们的面试历程一位前...

我本可以容忍阳光,如果我不曾见过太阳,然而阳光已使我荒凉,成为更新的荒凉。 2067

火爆大厂的100道Java面试题及答案(2022年整理,持续更新) --基础篇

前言:这是一个基本涵盖Java初中级大部分核心知识点的面试题集,包含了Java基础、容器、多线程、Spring、SpringBoot、MyBatis、Linux、MySQL、Redis、MongoDB、网络协议、JVM等方向。所有题目都是我亲自整理的。 因为无法生成自动跳转的目录,同时我也按照分类汇总整理成了PDF版,排版上相比更加整齐并且带有书签 阅读起来也比较方便全部。前前后后花费半个月的时间,共计24W字。 收藏的时候,顺便点个赞呗~ 收藏的时候,顺便点个赞呗~ 收藏的时候,顺便点个赞呗~

q1472750149的博客 6130

盘点2024年Java岗面试被问得最多的100道题「附PDF」,你能答对几道?

165. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?123. 在 hibernate 中 getCurrentSession 和 openSession 的区别是什么?118. 在 hibernate 中使用 Integer 和 int 做映射有什么区别?46. 线程池中 submit() 和 execute() 方法有什么区别?29. 在 Queue 中 poll()和 remove()有什么区别?

jjc4261的博客 1070

大厂最全1100道Java面试题及答案整理(2023最新版)

春招,秋招,社招,我们 Java 程序员的面试之路,是挺难的,过了 HR,还得被技术面,小刀在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个独角兽公司,安稳从事喜欢的工作至今…近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备了一整套 Java 复习面试的刷题以及答案,我知道很多同学不知道怎么复习,不知道学习过程中哪些才是重点,其实,你们经历过的事情,小马也经历过,正应为经历过,所以不愿意看到还有万千学子为此伤神,也许这篇文章帮不到万千学子,

m0_74823561的博客 597

Java后端面试题200道(2026最新版)

互联网公司Java后端面试重点考察Java基础、集合框架、并发编程、Spring生态、数据库及分布式系统等核心领域。《Java后端面试题200道(2026最新版)》全面覆盖主流技术知识点,包含Java基础与JVM、集合与并发、Spring/Spring Boot、MySQL/Redis、微服务架构等高频考点。题库提供详细解析和AI模拟面试功能,适合准备大厂面试的开发者系统复习。完整版包含1000+题目,涵盖80%互联网公司常见面试问题。

huazaijake的博客 921

大厂Java面试题300道(阿里+腾讯+字节)——2026最新版

摘要: 本文整理了互联网大厂Java技术面试的核心考点,涵盖Java基础、集合框架、JVM、并发编程、数据库优化、Redis缓存、微服务架构等高频面试题,提供300道精选题目。内容分为五个部分:Java基础(数据类型、多态、泛型等)、集合框架(HashMap、ConcurrentHashMap等)、并发编程(线程池、锁机制等)、JVM(内存结构、GC调优等)以及数据库与微服务(MySQL索引、Redis集群等)。适用于准备阿里、腾讯、字节跳动等大厂面试的开发者,完整题库含详细解析和AI讲解,可访问指定链接获

huazaijake的博客 698

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day14】—— 数据库3

百日闭关修炼,每日三道高频面试题。一起冲进大厂!看什么看?快上车!

陈哈哈的菜园子 8736

花费半年整理拼多多、饿了么、蚂蚁金服等大厂Java面试题大集合

年初,我整理的拼多多、饿了吗、蚂蚁金服Java面试大合集获得了很多读者的肯定,谢谢大家支持。事实上,笔者结合自己过往的面试经验,整理了一些核心的知识清单,试图帮助读者更好地回顾与复习 Java 服务端核心技术。然而还有一部分内容,小编没有更新上去,因为我认为和技术无关,笔者觉得还是对大家有所帮助。此外,笔者还会补充一部分知识清单。因此,我重新整理一篇 [Java面试突击手册【终极版】],致敬大家。 题库非常全面 包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、M

m0_50180963的博客 355

常见的Java面试题,Java基础 - 网络编程,必看的100道MySQL数据库经典面试题解析

mysql: 3306oracle: 1521web: 80tomcat: 8080QQ: 4000feiQ: 2425为计算机网络中进行数据交换而建立的规则、标准或约定的集合。UDP* 用户数据报协议(User Datagram Protocol)面向无连接,数据不安全,速度快。不区分客户端与服务端。TCP* 传输控制协议(Transmission Control Protocol)* 面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。A:Socket套接字概述:网络上具有唯一标识的IP地址和

wfegre的博客 582
上一篇: Java大厂面试100道题(6 道 IO 流面试题)
下一篇: Java大厂面试100道题(10 道面向对象面试题)
java_500
博客等级 码龄5年 12粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值