大厂Java岗面试百日冲刺试题分享(这还不把这个offer拿下)

精选2020年大厂高频Java面试真题集锦(含答案),面试一路开挂 本文涵盖了阿里巴巴、腾讯、字节跳动、京东、华为等大厂的Java面试真题,不管你是要面试大厂还是普通的互联网公司,这些面试题对你肯定是有帮助的,毕竟大厂一定是行业的发展方向标杆,很多公司的面试官同样会研究大厂的面试题。 与此同时,今年算法面试一定是会被问的,而算法不是光靠背面试题就有用的,它是需要数学逻辑思维的,因此,小编会在文末为大家准备一份非常优质的算法学习手册,重点在于学习思维方法,话不多说,直接开始上精选的大厂面试真题! 由于文章篇幅限制,不可能将所有面试题以文字形式把大厂面试题展示出来,本篇为 阅读详情

面试题1:分布式id生成方案有哪些?

分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。但一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题。

唯一ID的特性:

  • 全局唯一
  • 趋势有序,方便进行时间先后判断
  • 高可用
  • 信息安全,ID虽然趋势有序,但是不可以被看出规则,免得被爬,例如爬取你项目的商品URL列表是有序的https://xxxx.xxx/1-10000,有手就能爬

延伸:基于MAC地址生成UUID的算法造成的MAC地址泄露,这个漏洞曾被用于寻找梅丽莎病毒的制作者位置。

常见的方案有:UUID,数据库主键自增,Redis自增ID,雪花算法。

描述优点缺点

追问1:雪花算法生成的ID由哪些部分组成?

如上图的所示,Snowflake 算法由下面几部分组成:

  • 1位符号位:

由于 long 类型在 java 中带符号的,最高位为符号位,正数为 0,负数为 1,且实际系统中所使用的ID一般都是正数,所以最高位为 0。

  • 41位时间戳(毫秒级):

需要注意的是此处的 41 位时间戳并非存储当前时间的时间戳,而是存储时间戳的差值(当前时间戳 - 起始时间戳),这里的起始时间戳一般是ID生成器开始使用的时间戳,由程序来指定,所以41位毫秒时间戳最多可以使用 (1 << 41) / (1000x60x60x24x365) = 69年。

  • 10位数据机器位:

包括5位数据标识位和5位机器标识位,这10位决定了分布式系统中最多可以部署 1 << 10 = 1024 s个节点。超过这个数量,生成的ID就有可能会冲突。

  • 12位毫秒内的序列:

这 12 位计数支持每个节点每毫秒(同一台机器,同一时刻)最多生成 1 << 12 = 4096个ID加起来刚好64位,为一个Long型。

SnowFlake算法实现了:

  • 生成的id按时间趋势递增
  • 唯一,整个分布式系统内不会产生重复id(datacenterId和workerId来做区分)
  • 更多试题链接

面试题2:分布式锁在项目中有哪些应用场景

说使用场景前我们要知道为什么用分布式锁,正所谓“从哪来,到哪去”。在从前用户体量小时,单机就可以满足用户请求数,虽然有一定的并发度,但通过简单的锁机制就可以控制资源获取。随着业务体量增大,并发度单机抗不住了,为满足业务高可用开始使用集群,集群间的并发事务毕竟不能通过各台的单机锁实现,各玩儿各的还不乱套了,于是就出现了分布式锁。

分布式锁是协调集群中多应用之间的共享资源的获取的一种方式,可以说它是一种约束、规则 。

那么分布式锁应该满足什么条件呢?也就是它应该具备怎样的约束、规则?

锁的互斥性
可重入
高效的加锁和解锁
阻塞、公平

更多试题链接

面试题3:分布式锁有哪些解决方案

分布式锁在面试中问到的常见实现方式有以下三种: 数据库分布式锁 、 Redis实现分布式锁 、 ZooKeeper实现分布式锁 。

3-1、数据库分布式锁

该方案利用了主键惟一的特点,若多个请求同时提交到数据库,基于ACID特性,能保证只有一个线程能够操做成功。

如果是使用悲观锁(排它锁) select ... where ... for update 的加锁方式,由于其复杂的加锁和解锁、事务等一系列消耗性能的操作,满足不了多少并发。

而乐观锁是基于 版本号控制 的方式实现,类似于 CAS(Compare And Swap 比较并替换) 锁,它认为操作的过程并不会存在并发的情况,只有在update version的时候才会去比较。

乐观锁实现方式还是存在很多问题的,一个是 并发性能问题 ,再者 不可重入 以及 没有失效时间的功能 、 非公平锁 ,只要当前的库表中已经存在该信息,执行插入就会失败。

当然也有相对的解决方案:比如针对 不可重复 的问题,可以通过增加字段保存当前线程的信息以及可重复的次数,只要判断是当前线程,可重复的次数就会+1,每次执行释放锁就会-1,直到为0。

再比如针对 非公平锁 可以增加一个中间表的形式,作为一个排队队列,竞争的线程都会按照时间存储于这个中间表,当要某个线程尝试获取某个方法的锁的时候,检查中间表中是否已经存在等待的队列来解决。每次只要获取中间表中最小的时间的锁,也能实现公平的排队等候效果。

3-2、基于redis实现分布式锁

Redis实现分布式锁的方式有多种,可以使用 setnx 、 getset 、 expire 、 del 这四个命令来实现。

如果key不存在,就会执行set命令,若是key已经存在,不会执行任何操作
设置key生存时间

加锁实际上就是在redis中,给Key键设置一个值,为避免死锁,并给定一个过期时间。

SET lock_key random_value NX PX 10000

值得注意的是:

  • random_value 是客户端生成的唯一的字符串。
  • NX 代表只在键不存在时,才对键进行设置操作。
  • PX 10000 设置键的过期时间为10000毫秒。

说到Redis分布式锁,目前基本都是直接引入了Redisson框架,做了很好的封装,非常简便,看看下面的代码片段感受一下:

Rlock rlock = redisson.getLock("myLock");
rlock.lock();
rlock.unlock();

是不是感觉很简单,因为多线程竞争共享资源的复杂的过程它在底层都帮你实现了,屏蔽了这些复杂的过程,而你也就成为了优秀的API调用者。

当然,面试中大概率会考察其实现原理,下面通过Redisson的架构图,看看这个开源框架对Redis分布式锁的实现原理;

3-2-1、加锁机制

  • 线程去获取锁,获取成功:执行lua脚本,保存数据到redis数据库。(lua脚本实现了业务执行的 原子性 ,语法简单好上手)
  • 线程去获取锁,获取失败:一直通过while自旋尝试获取锁,获取成功后,执行lua脚本,保存数据到redis数据库。

3-2-2、watch dog自动延期机制

在一个分布式环境下,假如一个线程获得锁后,突然服务器宕机了,那么在一定时间(过期时间)后这个锁要自动释放,如果不设置默认是30s,这个过期时间的目的是防止死锁的发生。

而实际开发中会有这种情况,比如过期时间设了10s,但由于网络延迟或接口本身慢查询等原因,导致请求时间超过10s还没结束(注意,这里并未宕机,不应该释放锁),但在10s时锁被释放,其他线程进来也操作该数据,就可能造成数据不一致问题。

所以这个时候看门狗就出现了,它的作用就是线程1业务还没有执行完,时间就过了,线程1还想持有锁的话,就会启动一个 watch dog 后台线程,不断的延长锁key的生存时间。

值得注意的是,正常这个看门狗线程是不启动的,还有就是这个看门狗启动后对整体性能也会有一定影响,所以不建议开启 watch dog 。

3-2-3、为啥要用lua脚本呢?

这个不用多说,主要是如果你的业务逻辑复杂的话,通过封装在lua脚本中一起发送给redis,像存储过程,因为redis是单线程的,这样就保证这段复杂业务逻辑执行的原子性。

3-2-4、可重入锁机制

可重入锁是指一个锁在被一个线程持有后,在该线程未释放锁前的任何时间内,只要再次访问被该锁锁住的函数区都可以再次进入对应的锁区域。可重入锁有一个可重入度的概念,即每次重新进入一次该锁的锁住的区域都会递增可重入度,每次退出一个该锁锁住的区域都会递减可重入度,最终释放全部锁后,可重入度为0。

可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,如果没有可重入锁的支持,在第二次尝试获得锁时将会进入死锁状态。

Redisson的可重入锁机制和Hash类型有关,比如下面是一个key值:

127.0.0.1:6379> HGETALL myLock
1) "285475da-9152-4c83-822a-67ee2f116a79:52"
2) "2"

Hash类型相当于我们java的 <key,<key1,value>> ,Hash数据类型的key值包含了当前线程信息,hash 结构的 key 是锁的名称,key1 是客户端 ID,value 是该客户端加锁的次数。

  • 缺点
  1. 获取锁是非阻塞
  2. 非公平锁,不支持须要公平锁的场景
  3. redis主从存在延迟,在master宕机发生主从切换时,可能会致使锁失效

3-3、基于zookeeper实现分布式锁

基于以上两种实现方式,有了基于zookeeper实现分布式锁的方案。由于zookeeper有以下特点:

  1. 维护了一个有层次的数据节点,类似文件系统。
  2. 有以下数据节点:临时节点、持久节点、临时有序节点(分布式锁实现基于的数据节点)、持久有序节点。
  3. zookeeper可以和client客户端通过心跳的机制保持长连接,如果客户端链接zookeeper创建了一个临时节点,那么这个客户端与zookeeper断开连接后会自动删除。
  4. zookeeper的节点上可以注册上用户事件(自定义),如果节点数据删除等事件都可以触发自定义事件。
  5. zookeeper保持了统一视图,各服务对于状态信息获取满足一致性。

Zookeeper的每一个节点,都是一个天然的顺序发号器。在每一个节点下面创建子节点时,只要选择的创建类型是有序(EPHEMERAL_SEQUENTIAL 临时有序或者PERSISTENT_SEQUENTIAL 永久有序)类型,那么,新的子节点后面,会加上一个次序编号。这个次序编号,是上一个生成的次序编号加一

  • 排他锁(非公平锁)

排他锁核心是保证当前有且仅有一个事务获得锁,并且锁释放之后,所有正在等待获取锁的事务都能够被通知到。

Zookeeper的强一致性特性,能够很好地保证在分布式高并发情况下节点的创建一定能够保证全局唯一性,即Zookeeper将会保证客户端无法重复创建一个已经存在的数据节点。可以利用Zookeeper这个特性,实现排他锁。

  1. 定义锁:通过Zookeeper上的数据节点来表示一个锁
  2. 获取锁:客户端通过调用 create 方法创建表示锁的临时节点,可以认为创建成功的客户端获得了锁,同时可以让没有获得锁的节点在该节点上注册Watcher监听,以便实时监听到lock节点的变更情况
  3. 释放锁:以下两种情况都可以让锁释放
    – 当前获得锁的客户端发生宕机或异常,那么Zookeeper上这个临时节点就会被删除
    – 正常执行完业务逻辑,客户端主动删除自己创建的临时节点

基于Zookeeper实现排他锁流程:

三、共享锁

共享锁与排他锁的区别在于,加了排他锁之后,数据对象只对当前事务可见,而加了共享锁之后,数据对象对所有事务都可见。

定义锁
获取锁
  • 判断读写顺序 :大概分为几个步骤
    • 创建完节点后,获取 /lockpath 节点下的所有子节点,并对该节点注册子节点变更的Watcher监听
    • 确定自己的节点序号在所有子节点中的顺序
    • 对于读请求:1. 如果没有比自己序号更小的子节点,或者比自己序号小的子节点都是读请求,那么表明自己已经成功获取到了共享锁,同时开始执行读取逻辑 2. 如果有比自己序号小的子节点有写请求,那么等待
    • 对于写请求,如果自己不是序号最小的节点,那么等待
    • 接收到Watcher通知后,重复步骤1)
Java大厂面试题大全(整理版)1000+面试题附答案详解 进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,其中概括的知识点有Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ、Kafka、Linux等技术栈共有1000+道面试题。39、你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?... 阅读详情

相关推荐

Zabbix在Ubuntu 22.04上的性能优化与监控实战:从基础安装到高级配置

本文详细介绍了在Ubuntu 22.04系统上部署和优化Zabbix监控系统的完整流程,从基础安装到高级配置。内容包括MySQL数据库设置、Zabbix服务器与Web前端优化、性能调优策略以及实战监控场景应用,帮助用户构建高效的企业级监控解决方案。

sss66的博客 893

面向面试编程:分布式ID生成策略

Snowflake,雪花算法是由Twitter开源的分布式ID生成算法,以划分命名空间的方式将64bit位分割成了多个部分,每个部分都有具体的不同含义,在Java中64Bit位的整数是Long类型,所以在Java中Snowflake算法生成的ID就是long来存储的。

m0_71777195的博客 341

区块链入门:用账本、乐高和三台旧电脑讲懂分布式账本

区块链是一种去中心化的分布式账本技术,其核心原理是通过密码学哈希、共识机制和链式结构实现数据不可篡改与多方共同验证。它不依赖单一中心,而是将交易记录同步复制到多个节点,依靠数学规则而非人工信任达成一致,从而在数字世界构建可验证的信用基础设施。这种‘集体见证’模式显著提升了系统抗单点故障与人为干预的能力,广泛应用于供应链溯源、数字身份、教育管理及公益透明等需强信任保障的场景。本文以账本类比、乐高拆解和Ganache实操为线索,面向零基础读者通俗解析哈希值、挖矿与智能合约等关键概念。

weixin_30517215的博客 274

2023 最新互联网大厂Java面经分享:25 分类、1000 道 Java 面试真题(50w 字解析)

我们程序员的技术一直在更新迭代,如果一直固步自封的话,是很难跟上技术的潮流的,所以一定要不断的学习。如果你想在未来能够自我突破,圆梦大厂,那或许以上这份485 页的“1000 道 Java 程序员面经”也能帮的上你!

qq13321123的博客 1012

Allegro模块复用:从原理图到PCB的完整流程与关键细节

本文详细介绍了Allegro模块复用从原理图到PCB的完整流程与关键细节,包括DSN和MDD文件的创建、模块调用的实战技巧以及双向同步与版本控制方法。通过标准化处理和高级复用技巧,能显著提升PCB设计效率,减少重复工作时间。适用于智能硬件和工业控制等领域的工程师。

weixin_30252709的博客 332

模型优化系列——模型剪枝/量化概述

模型优化目的:通过减少模型大小,提高推理速度等使模型成功部署在各个硬件中并实时有效运作。

qq_61210574的博客 1293

互联网一线大厂最全Java面试题及答案整理(2023最新版)

2023秋招即将来临,很多同学会问Java面试八股文有必要背吗?很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。国内的互联网面试,恐怕是现存的、最接近科举考试的制度。而且,我国的八股文确实是独树一帜。以美国为例,北美工程师面试比较重视算法(Coding),近几年也会加入Design轮(系统设计和面向对象设计OOD)和BQ轮(Behavioral question,行为面试问题)。那么为什么国内面试不采取这样的考察方式呢?

qq13321123的博客 809

实战指南:CentOS 7下VOS3000 8.0从零部署到授权激活全流程

本文提供了一份详尽的CentOS 7系统下部署VOS3000 8.0的实战指南。从环境准备、使用FileZilla上传安装包、执行自动化安装脚本,到获取软件码、利用注册机生成授权文件并激活,手把手带领用户完成从零部署到投入商用的全流程,确保系统稳定运行。

zero1的博客 895

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

面试是跳槽涨薪最直接有效的方式,各位做好面试造飞机,工作拧螺丝的准备了吗?掌握了这些知识点,面试时在候选人中又可以夺目不少,暴击 9999 点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。

csdn1234561231的博客 632

【电容/电感】电路板会“滋滋”的响,我们称它为啸叫

一、啸叫的起源 大部分硬件工程师应该都遇到过,PCBA上电后出现“滋滋滋”的叫声,其声响或大或小,或时有时无,或深沉或刺耳,或变化无常者皆有。该现象我们称为“啸叫”,一般分为电感啸叫和电容啸叫。

云轩阁 6万+

6.4 实战项目:基于Agent内核构建Code Review智能体

本文介绍了一个基于Agent内核构建的智能Code Review系统实战项目。系统采用多Agent协作架构,包含代码质量分析、安全漏洞识别、性能优化建议等核心功能模块。文章详细展示了系统架构设计,采用协调器Agent管理多个专业Agent协同工作,并提供了基础Agent框架和协调器Agent的TypeScript实现代码。项目结合了AI Agent核心原理和多Agent协作机制,实现了自动化的代码审查流程,能够生成详细的审查报告,帮助开发者提升代码质量和安全性。

yonggeit的博客 3104

Java面试八股文必备闯关秘籍:第一章-Java基础篇

基本数据类型,如int,float,double,boolean,char,byte,不具备对象的特征,不能调用方法。装箱:将基本类型转换成包装类对象拆箱:将包装类对象转换成基本类型的值java为什么要引入自动装箱和拆箱的功能?主要是用于java集合中,List list=new ArrayList();list集合如果要放整数的话,只能放对象,不能放基本类型,因此需要将整数自动装箱成对象。

qq_46053741的博客 1652

2024年CSP-X复赛真题题解(T1:购物)

2024年CSP-X复赛真题题解(T1:购物)

王老师青少年编程 1177

(2023 最新版)大厂面试必问的1000道Java面试题附答案详解

不论是技术经理还是架构师,没有绝对地说哪条路是对还是错,适合自己才是最重要。小公司的可能没有架构师这个概念,大公司的架构师职位又不是那么容易拿下。但不管怎样,不断去学习新的技术,提升自己的层次是很有必要的,无论你在哪一家公司,过硬的技术水平才能吃得开。

csdn1234561231的博客 690

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

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

2019年Java后端工程师常见面试题和感想

来新公司有5个月了,从第二个月开始就参与公司后端工程师的面试工作了,包括校招在内,面试超过100个(包括40个校招的终面)应聘者了,应聘者中有超过10年的技术经理,有6年以上的高级开发,有3到5年的中级开发,有刚毕业的初级开发,当然还有未毕业的硕士生本科生,有入职公司的,也有外包公司来参与公司项目的,总之,各种水平层次的都有,每个人的素质也参差不齐,今天就分两个部分讲一讲,一个是作为技术面试官,我...

东皋长歌的专栏 1046

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

春招,秋招,社招,我们 Java 程序员的面试之路,是挺难的,过了 HR,还得被技术面,小刀在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个独角兽公司,安稳从事喜欢的工作至今...

qq13321123的博客 5064

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

2023互联网大厂最全Java面试八股(涵盖所有Java核心面试知识点)

不知道最近面试是否顺利,是否会经常问到一些自己不熟悉的问题,不知道怎么去回答这些问题,今天小编给大家整理了 2023 年大厂经常问到了的一些面试真题及解析,内容点包含有 java 集合,jvm,并发编程,spring,mybatis,springMVC,微服务,Dubbo,netty,网络,zookeeper,kafka,rabbitMQreadis 缓存,数据库,设计模式。等一线大厂互联网大厂常问到的面试真题,大家可以学习下用来突击金九银十。

m0_50180963的博客 248

大厂Java面试总结+详细解答,全套学习

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性。

m0_63102527的博客 1065

面试题——基础篇

面试题1:Java 中操作字符串都有哪些类?它们之间有什么区别? 正经回答: 操作字符串的类有:String、StringBuffer、StringBuilder。 String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 Stri

想着百万年薪努力的小赵 469

膨胀!有了这份P9架构师推的2800页Java面试大礼包,金九银十稳了

程序员一步入中年,不知不觉便会被铺天盖地的“危机感”上身,曾经的那个少年已经不在,时间就是这样公平。就算你能发明Java语言,随着时间的推移,你注定还是要成为慢慢变蔫的茄子,缓缓变黑的葡萄。 看着金九银十马上就要来临的消息,吓得我周末赶紧拿出了面试资料,只读了一小部分我就发现一个事实,果然有很多的知识点都模棱两可,相信很多的人都跟我一样有这样的危机感。怎么办呢??? 今天给大家分享一份阿里P9架构师推荐的Java后端领域巅峰之作《Java面试资源大礼包》,我看完这份PDF之后彻底颠覆了我对Java的

+W❤:bjmsb2019 1598

互联网大厂精选Java面试真题集锦(JVM、多线程、MQ、MyBatis、MySQL、Redis、微服务、分布式、ES、设计模式)

近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备了一整套Java复习面试的刷题以及答案,我知道很多同学不知道怎么复习,不知道学习过程中哪些才是重点,其实,你们经历过的事情,小马也经历过,正应为经历过,所以不愿意看到还有万千学子为此伤神,也许这篇文章帮不到万千学子,但是能够在知乎这个平台上帮助到正在看这篇文章的那个迷茫的你!MyBatis 面试题。

qq13321123的博客 454

Java 最常见的 1000+ 大厂面试题及答案整理:持续更新

每年的金九银十都是各大公司招聘程序员的最佳时期,在这段时间内有好多程序员为面试而发愁,不知道如何才能收到好的offer,拿到理想的薪资,实现自我的人生价值!我想告诉大家的是,其实都不用愁的,好好准备一下就可以了。这不,为了满足大家这些需求,小编特意准备了一套java面试题及答案分享给大家学习。这套面试题可是被boss直聘转发过多而“封杀”的一套面试题,希望大家能够好好学习准备一下,抓住金三银四的尾巴,找到好的工作岗位和薪资,并且能够进入一线大厂来磨炼和提升自己。

csdn1234561231的博客 237

2025 年 Java 秋招面试!带你斩获大厂 Offer!

在 2025 年的秋招战场上,单纯背诵面试题已无法应对面试官的深度考察。唯有将技术知识转化为系统思维,将解题能力升华为决策哲学,才能在面试中脱颖而出。立即扫码领取《2025 Java 秋招面试题全集》,开启你的大厂 Offer 之路!限时福利有需要的,查看下方名片获取~

2401_83384536的博客 1600

互联网一线大厂Java岗面试题库(2023年版),看完轻松拿offer

本文是为了帮大家快速回顾了Java中知识点,这套面试手册涵盖了诸多Java技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果。本来想将文件上传到github上,但由于文件太大有的都无法显示所以直接整理成多个PDF,供大家学习。

m0_71777195的博客 177

15道大厂Java高频面试题(二)

15道大厂Java高频面试题(二)

努力才是唯一的入场券。 30万+

3月冲刺突击面试,价值20K的Java中高级核心全解析笔记

文中资料已整理打包存放网盘,有需要的朋友可以点击下方的名片自取!

m0_73311735的博客 226
上一篇: 兄弟们这些java中的枚举你们知道?
下一篇: 为什么 MySQL 索引要用 B+tree,用就算了还真就这么快?
在酒吧写代码
博客等级 码龄7年 210粉丝 330原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值