JAVA面试知识点[持续更新中]

一、网络通信

涉及OSI七层模型、TCP/UDP相关知识

1、OSI七层模型

一张图:OSI七层模型
七层模型详细解析.

当···时发生了什么?

2、TCP/UDP

一个http请求就是一个线程吗,java的服务是每收到一个请求就新开一个线程来处理吗
HTTP、TCP、UDP详解
阿里面试: HTTP、HTTPS、TCP/IP、三次握手四次挥手过程?
TCP三次握手和四次挥手.
RFC793文献(非官方).
「图解」TCP重传、滑动窗口、流量控制、拥塞控制)
传输层与应用层在TCP上的一点理解:
在这里插入图片描述

3、IO

Netty概念

  • Netty是由JBOSS提供的一个Java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

  • Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的Socket服务开发。

4、socket/Multicast

5、HTTP和HTTPS

http协议
HTTP协议详解1
HTTP协议详解2

HTTP的长连接和短连接

http与https的区别

http缺点:

  • 1、通信使用明文,不对数据加密(内容容易被窃听)
  • 2、不校验通信房身份(容易被伪装攻击)
  • 3、无法确定报文完整性(内容易被篡改)

https:
与SSL(安全套接层)组合使用的http就是https
http缺点&Https浅析

HTTPS 的 7 次握手以及 9 倍时延

6、RESTfull

  • REST 指的是一组架构(约束条件)和原则。满足这些(约束条件)和(原则)的应用程序或设计就是 RESTful
  • 每一个URI代表一种资源,支持HTTP动词(即get,post,put,delete)。
    详细说明

7、RPC

细说RPC1
细说RPC2

8、MQTT

MQTT V3.1–我的理解

MQTT 入门介绍

二、JAVA基础

Java基础面试题(总结最全面的面试题!!!)

1、基本类

1.1 Class


经典方法
forName
geMethod
等等
(待整理)

1.2 ClassLoader

类加载器
ClassLoader详解1

(待整理)

1.3 properties

package java.util;
可以解析 key=value的配置文件(例如resource下面的配置文件)
(待整理)

1.4 四种引用类型

Java四种引用类型

2、锁

2.1 Unsafe

Unsafe类详解

2.1 synchronized

Synchronized的实现原理

多线程锁的升级原理是什么?

synchronized 的基本认识

2.2 ReentrantLock

一文带你理解Java中Lock的实现原理
ReentrantLock原理

Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信

深入分析AQS实现原理

2.3 ReentrantReadWriteLock

ReadWriteLock读写锁的使用

ReentrantReadWriteLock源码及实现原理分析

2.4 CountDownLatch

2.5 cyclicbarrier

深入理解CyclicBarrier原理

2.6 Semaphore

信号量,保证只有指定数量的线程运行,相当于限流

2.7 死锁

如何理解产生死锁的4个必要条件

2.8 线程和进程

一篇让你明白进程与线程之间的区别与联系

3、线程

3.1 线程状态

线程状态

3.1 ThreadLocal

阿里架构师教你如何使用ThreadLocal及原理分析
美团面试问我ThreadLocal原理

面试夺命三问之《你真的了解ThreadLocal吗?》

3.2 线程池

Java线程池实现原理及其在美团业务中的实践
一次Java线程池误用引发的血案和总结
线程池原理(讲的非常棒)
并发容器之BlockingQueue
线程池ThreadPoolExecutor实现原理

Java线程池之—ForkJoinPool线程池的使用以及原理

java四种线程

4、JVM

jvm笔记
java内存模型JMM理解整理

5、集合

5.1 HashMap

HashMap底层实现原理及面试问题
Java中HashMap底层实现原理(JDK1.8)源码分析
看了这么多篇红黑树文章,你理解了嘛?

5.2 LinkedHashMap

LinkedHashMap 源码详细分析(JDK1.8)

5.2 ConcurrentHashMap

谈谈ConcurrentHashMap1.7和1.8的不同实现
死磕 java集合之ConcurrentHashMap源码分析(一)

ConcurrentHashMap实现原理及源码分析

5.2 ArrayBlockingQueue

异常

java异常类型分为哪几种

三、数据结构与算法

图解排序算法(三)之堆排序
Java的Arrays.sort()方法到底用的什么排序算法
刷了一个月算法,薪资终于Double了

四、数据库

五、框架

1、Spring

1.1 Bean

在计算机英语中,有可重用组件的含义。

创建bean的三种方式:

  • 使用默认构造函数创建
  • 使用普通工厂中的方法创建对象(使用某个类中的方法创建对象,并存入spring容器)
  • 使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入spring容器)

bean的作用范围

  • singleton:单例的(默认值)
  • prototype:多例的
  • request:作用于web应用的请求范围
  • session:作用于web应用的会话范围
  • global-session:作用于集群环境的会话范围(全局会话范围,当不是集群环境时,它就是session)

bean的生命周期

  • singleton(单例):
    出生:当容器创建时对象出生
    活着:只要容器还在,对象一直活着
    死亡:容器销毁,对象消亡
    总结:单例对象的生命周期和容器相同
  • prototype(多例):
    出生:当我们使用对象时,spring为我们创建
    活着:只要容器还在,对象一直活着
    死亡:当对象长时间不用,且没有别的对象引用时,有jvm回收

1.2 BeanFactory 和 ApplicationContext

二者的区别:

  • ApplicationContext(单例适用,用得更多):它在构建核心容器时,创建对象采取的策略是采用立即加载的方式。也就是说,只要一读取完配置文件马上就创建文件中配置的对象,继承BeanFactory接口,它是Spring的一各更高级的容器,提供了更多的有用的功能;
  1. 国际化(MessageSource)
  2. 访问资源,如URL和文件(ResourceLoader)
  3. 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层
  4. 消息发送、响应机制(ApplicationEventPublisher)
  5. AOP(拦截器)
  • BeanFactory(多例适用):它在创建核心容器时,创建对象采取的策略是采用延迟加载的方式。也就是说,什么时候根据id获取对象了,什么时候才真正的创建对象。

ApplicationContext三个实现类:

  • ClassPathXmlApplicationContext:它可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的话,加载不了。
  • FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有访问权限)
  • AnnotationConfigApplicationContext:它是用于读取注解创建容器的

1.3 注解

  • Component:
  • Controller:
  • Service:
  • Repository:
  • Autowired:
  • Qualifier
  • Resource:
  • Bean
  • Configuration
  • ComponentScan
  • Import
  • Value
  • PropertySource/PropertySources
  • RunWith
  • ContextConfiguration

1.4 IOC

名词解释:控制反转,把创建对象的权利交个框架
三种注入方式: 接口、setter、构造函数 (均是通过Autowired接口)

1.5 DI

名词解释:依赖注入

bean循环依赖1
bean循环依赖2

1.6 AOP

名词解释:面向切面编程,通过预编译方式和与星期动态代理实现程序功能的统一维护的一种技术。

作用:在程序运行期间,不修改源码对已有方法进行增强。

优势

  • 减少重复代码
  • 提高开发效率
  • 维护方便

Joinpoint(连接点):那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点。
Pointcut(切入点):我们要对哪些Joinpoint进行拦截。(切入点一定是连接点,但是连接点只有被增强,才是切入点)
Advice(通知/增强):拦截到Joinpoint之后所要做的事情就是通知。
通知的类型:前置通知、后置通知、异常通知、最终通知、环绕通知。
Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下,Introduction 可以在运行期为类动态地添加一些方法或Field。
Target(目标对象):代理的目标对象。
Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程。
spring采用动态代理织入,而AspectJ采用编译器织入和类装载期织入(静态)。
Proxy(代理):一个类被AOP织入增强后,就产生以一个结果代理类。
Aspect(切面):是切入点和通知(引介)的结合

5种通知类型

  • 前置通知(Before Advice): 在连接点之前执行的Advice,不过除非它抛出异常,否则没有能力中断执行流。使用 @Before 注解使用这个Advice。
  • 返回之后通知(After Retuning Advice): 在连接点正常结束之后执行的Advice。例如,如果一个方法没有抛出异常正常返回。通过 @AfterReturning 关注使用它。
  • 抛出(异常)后执行通知(After Throwing Advice): 如果一个方法通过抛出异常来退出的话,这个Advice就会被执行。通用 @AfterThrowing 注解来使用。
  • 后置通知(After Advice): 无论连接点是通过什么方式退出的(正常返回或者抛出异常)都会执行在结束后执行这些Advice。通过 @After 注解使用。
  • 围绕通知(Around Advice): 围绕连接点执行的Advice,就你一个方法调用。这是最强大的Advice。通过 @Around 注解使用。

spring事务失效的原因:
代码层:
1、加@Transactional方法所在的类不是bean(类没有加载到容器当然不会有代理类出现)
2、自调用(同一个类中非事务方法调用事务方法)(相当于this.method(),)
3、方法不是public
4、方法捕获了异常,造成不会回滚
5、事务注解默认配置,而异常抛出的是checkException(事务默认支持RuntimeException(uncheckException)及其子类,如需,可修改配置@Transactional(rollbackFor = Exception.class))
5、本类中事务方法A调用事务方法B(可能出现异常见:https://www.cnblogs.com/longxok/p/11418353.html)
配置层:
1、项目没有启动事务
数据库层
1、数据库或数据库引擎不支持事务或者

spring教程

一口气说出 过滤器 和 拦截器 6个区别,别再傻傻分不清了

面试题
面试问烂的 Spring AOP 原理、SpringMVC 过程

Spring AOP 最热门面试题及答案

Spring 框架之AOP的原理剖析(面试必备)

求求你,下次面试别再问我什么是 Spring AOP 和代理了!

spring面试题总结

spring事务传播属性

Spring5源码分析系列(九)Spring事务原理详解

Spring面试题总结的很全面,附带超详细答案
69道Spring面试题和答案

最全的Spring面试题和答案

三种方式在spring容器中为bean实现初始化方法和销毁方法

2、Spring MVC

SpringMVC实现原理及详解

SpringMVC - 运行流程图及原理分析

3、Spring boot

springboot教程

超详细的springBoot学习笔记

超详细Spring Boot面试问题集锦,死角一个不留

五、 分布式

一致性hash算法
JavaEE企业级分布式架构核心技术

1、CAP/BASE

CAP

  • C(consistency一致性): 所有节点上的数据,时刻保持一致
  • A(availability可用性): 每个请求都能够收到一个响应,无论响应成功或失败
  • P(Partition-tolerance 分区容错):表示系统出现脑裂,可能导致某些server与集群失去联系

一般要么CP,要么AP

再有人问你CAP理论是什么,就把这篇文章发给他

CAP理论仅适用Nosql,不适用数据库系统,因为更新一些错误的数据而导致数据出现紊乱
从分布式一致性谈到CAP理论、BASE理论
分布式系统中的CAP理论,面试必问,你理解了嘛?

神一样的CAP理论被应用在何方?

BASE

内存泄漏
如何排查Java内存泄漏
java中内存泄露8种情况的总结

2、Spring cloud

拜托!面试请不要再问我Spring Cloud底层原理
Spring Cloud常见的基础面试题
Spring Cloud的面试题
10道面试官喜欢问的微服务面试题Spring Cloud+Spring Boot

Spring Cloud Security OAuth2 实现分布式系统授权
零壹技术栈
Spring Cloud实战系列(九) - 服务认证授权Spring Cloud OAuth 2.0
Spring Cloud实战系列(十) - 单点登录JWT与Spring Security OAuth

SpringCloud从入门到精通教程/SpringCloud Alibaba从入门到精通教程

2.1 eureka

Eureka工作原理

2.2 ribbon

Ribbon负载均衡策略详解

Spring Cloud:使用Ribbon实现负载均衡详解(上)

Ribbon负载均衡策略详解

Ribbon结合eureka实时刷新,服务下线实时刷新

Spring Cloud Ribbon设计原理

3、 Zookeeper

zookeeper能够做什么

  • 数据的发布/订阅(配置中心:disconf)
  • 负载均衡(Dubbo利用zookeeper机制实现负载均衡)
  • 命名服务 (猜是全局ID生成器,也有用数据库作为ID生成器的)
  • master选举(kafka、hadoop、hbase )
  • 分布式队列
  • 分布式锁

zookeeper特性

  • 顺序一致性
    从同一个客户端发起的事务请求,最终会严格按照顺序被应用到zookeeper中
  • 原子性
    所有的事务请求的处理结果在整个集群中的所有机器上的应用情况是一致的,也就是说,要么整个集群中的所有机器都成功应用了某一事务、要么不应用
    -可靠性
    一旦服务器成功应用了某一个事务数据,并且对客户端做了相应,那么这个数据在整个集群中一定是同步并且保留下来的
    -实时性
    一旦一个事务被成功应用,客户端就能够立即从服务器端读取到事务变更后的最近数据状态(真实,也只是最终一致性,非强一致性)

zookeeper集群中的三种角色

  • leader
  • follower
  • observer

observer是一种特殊的zookeeper节点,可以帮组解决zookeeper的扩展(如果大量客户端访问我们zookeeper集群,需要增加zookeeper集群机器数量,从而增加zookeeper集群的性能。导致zookeeper写性能下降,zookeeper的数据变更需要半数以上服务器投票通过,造成网络消耗增加投片成本)
1、observer不参加投票,只接受投票结果。
2、部署zookeeper的关键部位(配置文件zoo.cfg中增加 peerType=observer )

zookeeper数据模型
zookeeper的数据模型和文件系统类似,每一个节点称为znode,是zookeeper中的最小数据单元,每一个znode上都可以保存数据和挂载子节点。从而构成一个层次化的属性结构

  • 持久化节点:节点创建后会一直存在zookeeper服务器上,直到主动删除
  • 持久化有序节点:每一个节点都会为她的一级子节点维护一个顺序
  • 临时节点:临时节点的生命周期和客户端的会话保持一致。当客户端会话失败,该节点自动清理
  • 临时有序节点:在临时节点上多了一个顺序性特性

Watcher
zookeeper提供了分布式数据发布/订阅,zookeeper允许客户端向服务器注册一个watcher监听,当服务器端的节点触发指定事件的时候会触发watcher。服务端会向客户端发送一个事件通知

ACL
zookeeper提供控制节点访问权限的功能,用于有效的保证zookeeper中数据的安全性,避免操作失误而导致系统出现重大事故

java api的使用
权限控制模式
schema: 授权对象
Digest: username:password
world: 开放式的权限控制模式,数据节点的访问权限对所有用户开放。 world:anyone
super:超级用户,可以对zookeeper上的数据节点进行操作

连接状态
KeeperStat.Expired 在一定时间内客户端没有收到服务器的通知, 则认为当前的会话已经过期了。
KeeperStat.Disconnected 断开连接的状态
KeeperStat.SyncConnected 客户端和服务器端在某一个节点上建立连接,并且完成一次version、zxid同步
KeeperStat.authFailed 授权失败

时间类型
NodeCreated 当节点被创建的时候,触发
NodeChildrenChanged 表示子节点被创建、被删除、子节点数据发生变化
NodeDataChanged 节点数据发生变化
NodeDeleted 节点被删除
None 客户端和服务器端连接状态发生变化的时候,事件类型就是None

Zookeeper的选举机制原理(图文深度讲解)——过半选举

程序员反问面试官Zookeeper底层原理,结果被吊打

ZooKeeper面试题(总结最全面的面试题!!!)

4、Dubbo

知道了这些内容,闭着眼面试Dubbo!
史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官
史上最强Dubbo面试28题答案详解:核心功能+服务治理+架构设计等

5、分布式锁

首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:

  • 互斥性。在任意时刻,只有一个客户端能持有锁。
  • 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。
  • 具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。
  • 解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。

实现方式

  • redis
  • zookeeper
  • 数据库

什么是分布式锁
redis实现1
redis实现2

分布式锁的实现与应用场景对比

拜托,面试请不要再问我Redis分布式锁的实现原理【石杉的架构笔记】

zookeeper实现主要靠 临时有序节点+watcher

6、分布式缓存

6.1 redis

redis三种集群模式

  • 主从模式:如果master宕机,slave不会主从切换,正常情况主从读写分离
  • Sentinel模式(哨兵模式):哨兵的引入就是为了当master下线是,实现主从切换
    当使用sentinel模式的时候,客户端就不要直接连接Redis,而是连接sentinel的ip和port,由sentinel来提供具体的可提供服务的Redis实现,这样当master节点挂掉以后,sentinel就会感知并将新的master节点提供给使用者。
  • Cluster模式:当数据过大到一个一台redis装不下时,就需要使用cluster(如果集群中某一master节点宕机,而且其没有slave,那么集群不可用,这个因为这一master宕机,没有slave来主备切换,导致插槽有空缺不可用)
    在这里插入图片描述

Redis三种集群详解

Redis详解(1)–原理和机制

Redis cluster集群:原理及搭建

Redis Sentinel机制与用法(一)

两种持久化机制RDB和AOF

redis的 rdb 和 aof 持久化的区别

Redis理解之缓存设计

阿里面试真题:redis的主从同步,aof和rdb区别,redis cluster原理,hash一致性

我们一起进大厂》系列- Redis基础

《吊打面试官》系列-Redis常见面试题(带答案)
几率大的Redis面试题(含答案)

redis淘汰策略

LRU原理和Redis实现——一个今日头条的面试题

Redis主从复制原理总结

redis(6)–redis集群之分片机制(redis-cluster)

Redis的内存淘汰策略

Redis内存淘汰策略,看这一篇就够了!

Redis的过期策略和内存淘汰策略搞混淆了。

Redis的过期策略和内存淘汰策略

基于redis实现的扣减库存

LRU算法四种实现方式介绍

Redis的三个框架:Jedis,Redisson,Lettuce

7、分布式消息中间件

面试官:消息队列这些我必问!

7.1 RocketMQ

在这里插入图片描述
分布式开放消息系统(RocketMQ)的原理与实践
面试被问到“零拷贝”!你真的理解吗?
轻松搞定RocketMQ入门
Rocketmq原理&最佳实践
芋道 Spring Boot 消息队列 RocketMQ 入门
专栏
源码及官方文档
如何保证 RocketMQ 不丢失消息
RocketMQ面试题
RocketMQ面试题
RocketMQ中分布式事务源码剖析,面试阿里,带上这个大杀器!
RocketMQ-延时消息Demo及实现原理分析
详解消息中间件RocketMQ的原理与实践
Rocketmq原理&最佳实践

RocketMQ——消息ACK机制及消费进度管理

RocketMq的负载均衡

RocketMQ是如何实现事务消息的

7.2 Kafka

再过半小时,你就能明白kafka的工作原理了
消息队列探秘-Kafka全面解析
Kafka的架构原理,你真的理解吗?

8、分布式事务

2PC协议

  • 1、提交事务请求( precommit 投票阶段)
  • 2、执行事务请求( docommit 提交或者中断)

数据一致性
提交数据过程中,碰到网络中断或宕机的情况,会造成数据不一致
同步阻塞

3PC协议

  • cancommit
  • precommit
  • docommit

XA/JTA
实现分布式事务的规范

框架atomikos

互联网行业分布式事务的解决方案
CAP
1、互联网行业对数据的绝对一致性要求没有传统企业那么高

柔性事务
最终一致性、TCC事务、补偿机制
1、避免分布式事务
2、最终一致性的解决方案 -eBay 模式 (BASE)

终于有人把“TCC分布式事务”实现原理讲明白了!

9、分布式数据库

9.1分库分表

为什么要分库分表

  • 1、超大容量问题
  • 2、性能问题

如何去做拆分

  • 1、垂直拆分
    • 垂直分库:解决的是表过多的问题
    • 垂直分表 :解决的是表列过多的问题
  • 2、水平拆分(大数据表拆分成小表,单表数据量太多)

常见的拆分策略

  • 1、垂直拆分(er分片)
  • 2、水平拆分
    • 一致性hash
    • 范围拆分(可以按照ID)
    • 日期拆分

拆分以后带来的问题

  • 1、夸库join的问题 (select a.x, b.y from a join b on a.id = b.id)
    (1)设计的时候考虑到应用层的join问题。
    (2)在服务层去做调用
    A服务里查询到一个list;
    bservice.select(list);
    (3)全局表
    数据变更比较少的基于全局应用的表
    (4)做字段冗余(空间换时间的做法)
    订单表中包含 商家id,商家名称
    商家名称变更时,定时任务、定时通知
  • 2、跨分片数据排序分页
    在应用层拼接
  • 3、唯一主键问题
    (1) 用自增id做主键 (多库会造成分歧)
    UUID性能比较低
    snowflake
    mongoDB
    zookeeper
    数据库表
  • 4、分布式事务问题
    多个数据库表之间保证原子性 性能问题

分区表改造:脚本模板生成

9.2 Mysql

MySQL 分库分表,写得太好了!
集群
同步延时的问题

存储引擎
在这里插入图片描述
主从复制
在这里插入图片描述

ACID事务
实现原理

持久化

通俗易懂-mysql事务持久化实现
MySQL日志系统:redo log、binlog、undo log 区别与作用

MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结

为什么MySQL数据库索引选择使用B+树?

为什么mysql用B+树做索引而不用B-树或红黑树

高效性MySQL集群详解(一)

MySql(十六):MySql架构设计——MySQL Cluster

MySQL运行机制原理&架构
浅谈 MySQL的外键的作用
mysql优化

阿里规定超过3张表,禁止JOIN,为何?

MySQL数据库优化的八种方式(经典必看)

最全 MySQL 优化方法,从此优化不再难

实践中如何优化MySQL(精)

100道MySQL常见面试题总结

9.3 MongDB

MongoDB 教程

MongoDB索引原理

mongo数据库索引原理

28个MongoDB经典面试题
高并发分布式环境中获取全局唯一ID[分布式数据库全局唯一主键生成]

MongoDB分片原理篇

MongoDB实战-分片概念和原理

MongoDB同步原理解析

MongoDB索引原理

mongoDB——自动分片介绍及简单实现

Mongodb存储特性与内部原理

5个要点,带你了解MongoDB的WiredTiger存储引擎

Mongodb持久化–journal探究(一)

mongodb持久化(不错)

MongoDB 4.0自动分片+手工分片+片键选择逻辑

深入理解MongoDB片键选择原则(一)

10、分布式任务调度中心Elastic-Job

分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn)
官网

Elastic-Job原理–简介与示例(一)
Elastic-job使用及原理

详解当当网的分布式作业框架 elastic-job

官网

11、Elasticsearch

Elasticsearch: 权威指南

Elasticsearch索引原理

深入浅出 spring-data-elasticsearch - 实战案例详解(四)

2019年常见Elasticsearch 高频面试题答案详细解析

JAVA 经典面试题:ES如何做到亿级数据查询毫秒级返回?

es 读数据过程

干货 | BAT等一线大厂 Elasticsearch面试题解读

Elasticsearch面试题汇总与解析

新年手打,24道进阶必备Elasticsearch 面试真题

2020最新Java工程师面试题-Elasticsearch 面试篇

突破Java面试(15)-分布式搜索引擎Elastic Search的工作流程

12、其他

微服务架构及幂等性

微服务下的数据一致性的几种实现方式之概述

六、面试分享

字节跳动

字节跳动Java研发面试总结:2个星期,4轮面试,我终于拿到offer
Java程序员字节跳动 后台开发岗三轮技术面试分享总结

阿里

阿里Java社招经历分享
Java程序员面试经验(北京) - 阿里巴巴
面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?
面试阿里P6,过关斩将直通2面,结果3面找了个架构师来吊打我?

阿里长达57分钟的电话一面,全程无尿点!

对于二本渣渣来说,面试阿里P6也太难了!(两年crud经验,已拿offer)

美团

美团三面被面试官问蒙redis、高并发、微服务、分布式一问三不知

京东

4轮面试,5个面试官,21天斩获京东商城offer(Java后台开发)

招银科技

最新!!招银网络科技Java面经,整理附答案

OPPO

OPPO-Java面试-社招-一面(2019/07)

OPPO社招-Java岗一面挂经

OPPO校招面试回忆,Java开发面试

OPPO java后台开发面经

oppo2019年Java开发工程师(面试题)

靠左神这套程序员代码面试指南入职阿里、腾讯、美团、百度不再难

Java面试:假如我是面试官,我会这样虐你

闭关修炼21天,“啃完”283页pdf,我终于4面拿下字节跳动offer

秒杀系统架构分析与实战

Java面试题精选汇总(答案)

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值