备战两个月成功拿阿里offer

前言

工作三年有余,第一份工作是在一家外包公司,第二份工作是在一家做SAAS平台的公司,第一家公司让我入门,进入了软件开发的行业,了解了一些基础的东西;第二家公司由于规模不大,很多活儿都是一个人来做,从产品到开发、测试、运维我都了解了,对于整体的软件开发流程有了很大的了解。但是,为了自己的更好发展,决定去一家大公司,于4月初提出了离职,虽然领导挽留,但是我还是离职了,然后我自己面试了很多家公司,大公司小公司都有,积累了足够的经验,开始向大公司投递简历,面了几家之后,终于拿到了自己满意的offer(已入职阿里),我是在积累了足够的经验之后才提出离职的,离职时一件很重大的事情,自己要慎重考虑,要从职业发展和个人规划上考虑清楚再去做出选择。

大公司面试考验基础和项目经验,小公司比较偏向于项目经验。这里我都总结下,给大家一个参考,希望可以帮助到正在面临跳槽的同志。

面试整体事项

1.简历要准备好,联系方式一定要正确清晰醒目,项目经历按照时间倒序阐述,注意描述自己在项目中承担的职责,简历的模板尽量选择简洁的,毕竟程序员大部分还是喜欢简单明了的。
2.推荐boss直聘,我觉得很好用(不是广告)。
3.一般的整体面试流程都是电面->现场面->HR面->等着。
4.不要觉得HR说让你回去等消息就是GG了,他们也要跟你之前的面试官讨论,再向领导汇报,如果说不急可能还要和其他候选人比较,所以HR让你回去等消息绝对不是说明你完蛋了。
5.面试前准备好自我介绍,1分钟左右就可以,可以写在纸上,电面可以照着念,等你到了现场面了基本也都快背下来你的自我介绍了。
6.准备好扎实的基础,这是一切的根源,没实力怎么都没用的。
7.面试中你可以把你的面试官往你会的知识上引导(我遇到过你会什么他不问什么的)。
8.遇到了设计类题目不要着急,面试官不是为了让你几分钟设计一个高并发高可用设计模式完美的架构,只是想看看你的思路,看看你应变的能力,然后给你些提示看看你能否迅速的调整。
9.offer都会有的,不要着急,把面试当成一个交流的过程。

需要准备的知识

以下为在近期面试中比较有印象的问题,也就不分公司了,因为没什么意义,大致分类记录一下,目前只想起这么多,不过一定要知道这些问题只是冰山一角,就算都会了也不能怎么样,最最重要的,还是坚实的基础,清醒的头脑。

Java基础

1.HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化。
2.HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。
3.HashMap,HashTable,ConcurrentHashMap的区别。
4.极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。
5.HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么。
6.java中四种修饰符的限制范围。
7.Object类中的方法。
8.接口和抽象类的区别,注意JDK8的接口可以有实现。
9.动态代理的两种方式,以及区别。
10.Java序列化的方式。
11.传值和传引用的区别,Java是怎么样的,有没有传值引用。
12.一个ArrayList在循环过程中删除,会不会出问题,为什么。
13.@transactional注解在什么情况下会失效,为什么。

数据结构和算法

1.B+树
2.快速排序,堆排序,插入排序(其实八大排序算法都应该了解
3.一致性Hash算法,一致性Hash算法的应用

JVM

1.JVM的内存结构。
2.JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。
3.JVM的栈中引用如何和堆中的对象产生关联。
4.可以了解一下逃逸分析技术。
5.GC的常见算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。
6.标记清除和标记整理算法的理解以及优缺点。
7.eden survivor区的比例,为什么是这个比例,eden survivor的工作过程。
8.JVM如何判断一个对象是否该被GC,可以视为root的都有哪几种类型。
9.强软弱虚引用的区别以及GC对他们执行怎样的操作。
10.Java是否可以GC直接内存。
11.Java类加载的过程。
12.双亲委派模型的过程以及优势。
13.常用的JVM调优参数。
14.dump文件的分析。
15.Java有没有主动触发GC的方式(没有)。

多线程

1.Java实现多线程有哪几种方式。
2.Callable和Future的了解。
3.线程池的参数有哪些,在线程池创建一个线程的过程。
4.volitile关键字的作用,原理。
5.synchronized关键字的用法,优缺点。
6.Lock接口有哪些实现类,使用场景是什么。
7.可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁(ConcurrentHashMap中的segment)。
8.悲观锁,乐观锁,优缺点,CAS有什么缺陷,该如何解决。
9.ABC三个线程如何保证顺序执行。
10.线程的状态都有哪些。
11.sleep和wait的区别。
12.notify和notifyall的区别。
13.ThreadLocal的了解,实现原理。

数据库相关

1.常见的数据库优化手段
2.索引的优缺点,什么字段上建立索引
3.数据库连接池。
4.durid的常用配置。

计算机网络

1.TCP,UDP区别。
2.三次握手,四次挥手,为什么要四次挥手。
3.长连接和短连接。
4.连接池适合长连接还是短连接。

设计模式

1.观察者模式
2.代理模式
3.单例模式,有五种写法,可以参考文章单例模式的五种实现方式
4.可以考Spring中使用了哪些设计模式

分布式相关

1.分布式事务的控制。
2.分布式锁如何设计。
3.分布式session如何设计。
4.dubbo的组件有哪些,各有什么作用。
5.zookeeper的负载均衡算法有哪些。
6.dubbo是如何利用接口就可以通信的。

缓存相关

1.redis和memcached的区别。
2.redis支持哪些数据结构。
3.redis是单线程的么,所有的工作都是单线程么。
4.redis如何存储一个String的。
5.redis的部署方式,主从,集群。
6.redis的哨兵模式,一个key值如何在redis集群中找到存储在哪里。
7.redis持久化策略。

框架相关

1.SpringMVC的Controller是如何将参数和前端传来的数据一一对应的。
2.Mybatis如何找到指定的Mapper的,如何完成查询的。
3.Quartz是如何完成定时任务的。
4.自定义注解的实现。
5.Spring使用了哪些设计模式。
6.Spring的IOC有什么优势。
7.Spring如何维护它拥有的bean。

一些较新的东西

1.JDK8的新特性,流的概念及优势,为什么有这种优势。
2.如何设计双11交易总额面板,要做到高并发高可用。

一些小建议

1.可以去leetcode上刷题换换思路。
2.八大排序算法一定要手敲一遍(快排,堆排尤其重要)。
3.了解一些新兴的技术。
4.面试之后面试官都会问你有没有什么问题,千万不要没问题,也别傻乎乎的问一些敏感问题。
5.了解你要面试的公司的产品及竞争产品。

无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。

面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。

希望大家都能找到适合自己的公司,开开心心的撸代码~

JVM、高并发、spring原理、多线程等互联网面试必备题答案分享(以上面试题都有所总结)

关注转发后免费送给粉丝

开发三年Java程序员的面试经验总结,备战两个月成功拿阿里offer

阿里必备面试题及答案

开发三年Java程序员的面试经验总结,备战两个月成功拿阿里offer

Java面经

关注转发后免费送给粉丝

<think>嗯,用户问的是如何用两个时间备战蓝桥杯C/C++赛区的比赛。首先,我需要考虑用户可能的背景。蓝桥杯是一个编程竞赛,参赛者通常需要掌握数据结构和算法,以及熟悉编程语言。用户可能有一定的基础,但时间紧迫,只有两个,所以需要高效的计划。 首先,我应该确定用户对C/C++的掌握程度。如果用户是初学者,可能需要先巩固语言基础,比如指针、内存管理、标准库的使用。但用户可能已经有一定基础,所以重点应该放在算法和真题练习上。 接下来,分析蓝桥杯的考试内容。蓝桥杯通常包括填空题和编程题,涉及算法如排序、搜索、动态规划、图论等。数据结构方面,数组、链表、树、图都是重点。因此,复习计划需要覆盖这些知识点。 然后,时间分配。两个大约8周,可以划分为几个阶段:基础知识复习(1-2周)、专项突破(3-4周)、真题模拟(2-3周)、最后冲刺(1周)。每个阶段的目标要明确,比如第一阶段巩固语言和基本数据结构,第二阶段重点突破难点算法,第三阶段通过真题练习提高速度和准确率,最后阶段查漏补缺。 另外,用户可能没有提到的需求是资源推荐,比如参考书籍、在线平台、刷题网站等。需要推荐一些经典书籍如《算法导论》或者《挑战程序设计竞赛》,以及像LeetCode、洛谷这样的刷题平台。 还要注意蓝桥杯的考试形式,比如填空题可能需要数学思维或找规律,编程题注重算法实现。因此,练习时要区分题型,针对性训练。 用户可能遇到的困难包括时间管理、算法理解不深、调试效率低等,所以建议中需要包含每日练习计划、错题总结、调试技巧等内容。 最后,鼓励用户保持坚持,每日刷题,参加模拟赛,培养竞赛心态。可能还需要提醒考试策略,比如合理分配时间,先易后难,确保会的题目不丢分。</think>备战蓝桥杯C/C++赛区比赛需要系统的规划和高效的执行力。以下是为期两个的备考建议,分为四个阶段,帮助你快速提升竞赛能力: ### 一、基础巩固阶段(第1-2周) 1. **语言特性强化** - C++标准模板库(STL)精通: ```cpp // 重点掌握容器与算法 #include <vector> #include <algorithm> #include <queue> using namespace std; vector<int> v = {5,3,7,1}; sort(v.begin(), v.end()); // 快速排序 priority_queue<int> pq; // 优先队列(堆) ``` - C语言指针与内存管理: ```c int* dynamic_arr = (int*)malloc(100 * sizeof(int)); // 必须手动释放内存 free(dynamic_arr); ``` 2. **基础算法通关** - 排序算法手写实现(快排/归并) - 基础搜索算法(DFS/BFS模板) - 简单动态规划(背包问题/斐波那契) ### 二、专项突破阶段(第3-5周) 1. **高频考点攻坚** - 图论算法: ```cpp // Dijkstra最短路径模板 void dijkstra(int start) { priority_queue<pair<int, int>> pq; dist[start] = 0; pq.push({0, start}); while(!pq.empty()) { auto [d, u] = pq.top(); pq.pop(); if(visited[u]) continue; visited[u] = true; for(auto &[v, w] : graph[u]) { if(dist[v] > dist[u] + w) { dist[v] = dist[u] + w; pq.push({-dist[v], v}); // 最小堆技巧 } } } } ``` 2. **数学与技巧训练** - 质数筛法(埃氏筛/欧拉筛) - 组合数学(排列组合公式) - 位运算优化技巧 ### 三、真题实战阶段(第6-7周) 1. **近三年真题精练** - 严格模拟考场环境(4小时限时) - 重点分析填空题解题技巧: ```python # 常见填空题解法示例(注意蓝桥杯支持Python填空) # 求2023的二进制表示中1的个数 print(bin(2023).count('1')) # 输出:6 ``` 2. **错题分类整理** - 建立错题本记录典型错误 - 针对薄弱环节专项突破 ### 四、冲刺调整阶段(第8周) 1. **查漏补缺** - 重做高频错题 - 整理常用算法模板: ```cpp // 并查集模板 vector<int> parent(1000); int find(int x) { return parent[x] == x ? x : parent[x] = find(parent[x]); } void unite(int x, int y) { parent[find(x)] = find(y); } ``` 2. **应试技巧强化** - 时间分配策略(填空30min+编程题分配) - 调试技巧(打印关键变量/边界测试) ### 每日学习安排建议: - 上午:3小时算法理论学习 - 下午:4小时编程实践 - 晚上:2小时错题复盘+1小时数学基础 ### 推荐资源: 1. 蓝桥杯官方练习系统(www.lanqiao.cn) 2. 算法竞赛入门经典(刘汝佳著) 3. LeetCode精选200题(按频度排序) 4. Codeforces Div2竞赛题(锻炼思维) ### 注意事项: 1. 重视基础数据结构实现(手写链表/树) 2. 掌握常见输入输出优化技巧 3. 注意代码规范(变量命名/注释) 4. 培养数学建模思维(将实际问题转化为算法问题) 坚持每日有效学习6-8小时,两个完全可以在省赛中取得优异成绩。最后一周注意调整作息,保持良好心态,祝您竞赛成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值