网易面经(Java开发岗)

网易面经(Java岗)

网易两面面经整理

岗位:我投递的是杭研所的Java开发岗位。
行程:半天的时间南京=杭州之间穿行,单程2个小时,从杭州东站=网易大厦,单程1个小时(如果能买到城站高铁动车票可以从城站触发。)
吃饭:可以去网易食堂,免费吃,只要人进去,到吃饭时间点就可以蹭饭。
面试:3面,很遗憾我没有HR面,本来想的是去一面游的,划水过了一面,也算是知足了。
下面主要从Java核心技术、多线程并发编程、数据库、个人项目和课题、框架技术等方面标记出我还记得的问题。

一面:65分钟左右

1)自我介绍(个人信息:一分钟说完了);
2)抽象类和接口的区别(Java核心技术:全部讲了一通后,抛出第三个问题)
3)抽象类内方法如果全部是抽象的,是不是就是接口?为什么有的类继承一个类后,还要实现多个接口?(Java核心技术:我说了个接口隔离原则,实在不知道他想要啥答案)
4)多线程中,线程池用过哪些线程池?(多线程并发:没用过,讲了一些自己了解的);
5)线程池中所有的参数讲解一下(多线程并发:corePoolSize,maximumPoolSize,Factory之类的扯了一通)
6)线程池中从corePoolSize到maximumPoolSize转变过程,然后一直问我反向转变的操作(多线程并发:就是并发量突然降低了,这个过程怎么实现的,参数如何变化)
7)HTTP发送请求和接收响应的整个流程;(web技术:扯了一下客户端和服务端之间的流程)
8)403和500状态分别讲解一下,他们之间有什么区别;(web技术)
9)淘宝里如果按照1-5星的店面,从五家店里一共推送出10个同一类产品,都是随机推送,但是最后大量的随机测试后,要保证五颗星的店家推送的商品数量大概是一颗星店家推送的商品数量的五倍,且不能破坏其他概率输出(思维能力:这个问题跟他讨论了有10几分钟,最后他问我有没有优化。。。我哪知道怎么优化)
10)一个已知存储了数据的HashMap中如何让所有的键修改成"网易+原来的键",意思是在所有的key中添加"网易"这个前缀。(Java核心技术:我说迭代处理,但是会有fail-fast问题,然后我就瞎扯了同步操作一下)
11)spring的AOP原理和底层实现(框架技术:扯了一下概念和反射机制)
12)Spring的注解讲一下;(框架技术)
13)静态代理和动态代理区别讲一下;(Java核心技术)
14)静态代理和适配器设计模式的区别;(Java核心技术)
15)tcp和udp的区别;(计算机网络知识:就从可靠性,通讯方式,数据大小,应用方面说了说)
16)cglib底层实现;(框架技术:懵逼)
17)数据库的乐观锁原理和实现;(数据库:懵逼)
差不多这么多吧,还有的记不得了,主要是实际问题考虑和讨论的时间长一点。

二面:差不多也是1个小时

1)数据库索引的设计原理以及意义(数据库:讲了一下概念和聚集索引,非聚集索引)
2)接着上面的问题,问了给定一个数据库,如何设计索引,有什么要注意的?(数据库:我说我没用过,没设计过基本上,就讲了一下语法,还有那些索引的使用场景)
3)给定淘宝秒杀场景,请设计系统实现秒杀(思维能力:又是淘宝,我就说了一下多线程,生产者消费者也扯上去了,他说是多节点实现,其实我没听明白他想让我说啥。。。)
4)微博粉丝和关注者,以及用户信息,请实现数据库表,来关联起这些表(数据库:我画图,然后讲了一下,问我有没有优化,我说想不出来)
5)针对我设计的表,进行查询操作,问我所有的表查询完后,多少次操作。(数据库)
6)之前实习的做了什么项目?讲解一下。(项目经验)
7)就着项目,提出海量数据的时候,集合存不下怎么办(Java核心技术:我实在想不到方法,就说了一下把文件进行分割然后再存集合里。)
8)Spring中的事务原理讲一下;(框架技术:只说了个声明性事务,其他的也不了解)
9)数据库里的事务原理讲一下;(数据库:我就扯了一下隔离级别以及脏读,不可重复读以及幻读中事务的问题)
10)手写jdbc连接数据库的代码(Java核心技术:真心记不得了,只记得流程和类,直接写了一堆注释上去)
10)数据库的事务特性有哪些?(数据库)
11)课题讲一下做的什么;(个人课题)
12)通信是偏软件还是硬件?为什么学Java(听到这个我就有点崩溃了,依据我的直觉,gg了)(职业发展规划)
13)最后问我有什么要问的?(提问环节:我真想问问他是不是搞数据库的,大部分都是数据库,虐死。。最后就问了两个小问题,让我回到前台那边等通知)

果不其然,二面终结,毕竟我是渣硕渣技术,被虐成狗,没有什么项目经验,被两个面试官实际问题问的不知所措。不过也算知足了,本来实习完后,去面这些公司,啥东西也没准备,就是准备一面游一下杭州,知足了,对我来说,网易问的东西广而深,算是让我长见识了,好好学习,天天向下。0.0

转载于:https://www.cnblogs.com/Andya/p/7456511.html

### Java开发岗面试经验分享(三年工作经验) 在准备Java开发岗位的面试时,尤其是拥有三年工作经验的候选人,需要重点关注以下几个方: #### 1. **基础知识** - **Java核心语法**:包括类与对象、继承、多态、异常处理、泛型等。这些问题通常是必问的基础内容。 - **集合框架**:熟悉常见的集合类如`ArrayList`、`HashMap`、`HashSet`,并了解它们的内部实现机制和线程安全性问题。 - **多线程与并发编程**:掌握`Thread`类的基本使用、`Runnable`接口、`Callable`接口以及`ExecutorService`的用法。此外,还需要理解`volatile`关键字、`synchronized`关键字的作用及其底层实现原理。 #### 2. **框架与工具** - **Spring Boot**:作为现代Java开发的核心框架之一,Spring Boot的相关知识尤为重要。例如: - 核心注解:`@SpringBootApplication`是组合注解,包含了`@Configuration`、`@EnableAutoConfiguration`和`@ComponentScan`的功能[^3]。 - 自动配置机制:Spring Boot通过条件化配置自动加载所需的Bean,简化了传统Spring项目的配置流程。 - 配置文件管理:熟练使用`application.properties`或`application.yml`进行外部化配置,并能解释如何通过`@Value`或`@ConfigurationProperties`注入配置值。 - **MyBatis/MyBatis Plus**:这些ORM框架在企业级应用中非常常见。掌握其基本用法,如动态SQL、缓存机制、分页插件等。 - **Maven/Gradle**:构建工具的使用也是面试中的常考点,特别是依赖管理和生命周期的概念。 #### 3. **设计模式** - 虽然很多开发者可能没有系统地学习过设计模式,但在实际项目中可能会无意间用到一些经典的模式,比如单例模式、工厂模式、观察者模式等。因此,建议提前复习常见的设计模式,并尝试结合自己的项目经历来阐述这些模式的应用场景。 #### 4. **数据库与SQL优化** - 熟悉MySQL的基本操作,包括索引优化、事务隔离级别、锁机制等。 - 掌握SQL调优技巧,例如执行计划分析、慢查询日志的解读等。 - 对于分布式数据库(如TiDB、OceanBase)有所了解的话,可以作为加分项提及。 #### 5. **JVM调优** - 理解JVM内存模型,包括堆、栈、方法区等区域的作用。 - 熟悉垃圾回收算法及常见的GC收集器(如G1、CMS)的工作原理。 - 能够使用工具(如VisualVM、JConsole)监控JVM性能指标,并进行简单的调优。 #### 6. **微服务架构** - 如果有相关的微服务开发经验,应该重点准备以下内容: - Spring Cloud组件的使用,如Eureka、Feign、Ribbon、Zuul、Config Server等。 - 服务注册与发现机制的理解。 - 分布式事务的解决方案,如Seata、TCC等。 - 服务熔断与降级策略的设计思路。 #### 7. **软技能与项目经验** - 在技术能力之外,面试官也会关注候选人的沟通能力和团队协作意识。因此,在描述个人项目时,不仅要突出技术难点,还要强调自己在整个项目中的角色以及与其他成员的合作方式。 - 准备好几个典型的项目案例,能够清晰地讲述项目的背景、目标、实现过程以及最终成果。 #### 8. **算法与数据结构** - 尽管对于中级工程师来说,算法题的比例相对较低,但仍然不可忽视。常见的题目类型包括排序、查找、链表操作、树遍历等。 - 可以通过LeetCode、牛客网等平台进行练习,提高编码效率和逻辑思维能力。 --- ### 示例代码:快速排序实现 ```python def quick_sort(arr): if len(arr) <= 1: return arr else: # 选择基准值 pivot = arr[len(arr) // 2] # 分别存放比基准小和大的元素 left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] # 递归地对左右两边进行快排,并合并结果 return quick_sort(left) + middle + quick_sort(right) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值