哭了,我终于熬出头了,Java开发4年,费时8个月,入职阿里,涨薪14K

1233 篇文章 11 订阅
978 篇文章 11 订阅

前言

你的努力,终将成就无可替代的自己

本科毕业后就一直从事Java开发的工作,和多数人一样,最开始从事crud的工作,看着自己的同学一步一步往上走,自己还是在原地踏步,说实话这不是自己想要的状态。

一年半后开始沪漂生活,又摸爬滚打了一年半,薪资基本上在16K。为了进大厂,得到更多的学习机会,开始了系统的学习,也是为了自己到所谓的“35岁”之后,也能在老家恰一口好饭。

努力也没有白费,8个月时间的系统性学习成功上岸Alibaba,直接涨薪14K,下面分享一下我的学习指南,面试真题以及个人心得体会。(晒一下入职offer)

阿里面试真题(3轮技术面 + 1轮HR )

一面(电话面+后期在线coding)

①你们为什么要使用mongdoDb?你们的这个系统中涉及到哪些表?

②hytrix 的实现原理是什么?隔离策略有哪些?你们使用的是哪一些?你们项目中哪些地方使用到了,使用场景是什么?为什么要使用?

③spirng 源码。

④rocketMq 的设计理念,数据存储,设计思想等。

⑤ConcurrentHashMap的底层实现原理

⑥你线上问题解决经验是什么?遇到了什么问题?应该怎么去解决?

⑦在线编码: 两个有序链表,合并成一个链表,然后进行算法的时间复杂度,空间复杂度分析。

二面(电话面+后期在线coding)

①tcp协议和uDP 协议的区别是什么?

②3次握手和4次挥手的过程是什么样的?

③怎么保证接口的幂等性?

④mysql的存储引擎的数据结构是什么?相比其余的数据结构,有什么优缺点?

⑤说一下你对SpringCloud,SpringBoot,Spring的理解

⑥java 在编译和运行过程中分别作了什么?

⑦在线编码: 给定一个字符串,单词之间以空格分隔,要求里面的单词倒装过来。

三面(电话面,技术交叉面)

①介绍一下springCloud 的组件,各组件的作用,你们是怎么用,你的理解是什么?

②springCloudbus 关联的消息中间有几种?支持哪几种?你觉的什么场景下,会用到springCLoudBus?

③springCloud里面的限流,限流是怎么内部实现的?怎么去挡住多余的请求,怎么实现限流的(线程池的工作原理)?

④什么时候该用mongoDB,什么时候使用mysql?该如何选择?

⑤你做过的项目数据量有多大呢?如果现在数据量特别大,或者一张表一种放不下了,应该怎么处理?分布分表应该怎么做?具体的某一张表怎么拆?(涉及到主键生成,各种主键生成策略对比,数据分片,以及关联数据的存储,主从复制)

⑥java 官方提供的创建的线程池的方式有几种?分别是什么?

⑦你们使用的java 版本是什么?java最新的版本是多少?你们为什么还在使用java8呢?

⑧你们的垃圾回收器是什么的? 为什么是使用CMS而不是G1? 你能介绍一下像CMS垃圾回收器,从对象创建,内存分配到垃圾回收整个过程吗?

⑨介绍一下策略模式,应该怎么用? 它能解决什么问题?从编码领域系统设计方,介绍一下我们怎么去实现一个策略模式?

程序员想要成功,首先要成就自己。

我的学习指南

这份Java笔记内容齐全,包括以下几个方面:

  • Java筑基(基础):Tomcat+Mysql+设计模式+并发编程+JVM+Netty

  • 开源框架(SSM框架):Spring+SpringMVC+Mybatis

  • 微服务架构:Dubbo、SpringBoot、SpringCloud、Docker

  • 分布式:分布式限流+分布式缓存+分布式通讯(限流:Nignx+Zookeeper/缓存:Redis+MongoDB+Memcached/通讯:RabbitMQ+RocketMQ+Kafka)

  • 性能优化:Mysql优化+Java性能调优+JVM调优+Tomcat调优

这几个方面究竟需要掌握多少?见下文揭晓吧。不过文章篇幅有限,不能全部描述出来,有完整的pdf版,关注公主号:JavaAC,即可

一、Java筑基(基础)

1.Tomcat

2.Mysql

  • MySQL体系结构和存储引擎

  • InnoDB存储引擎

  • 索引与算法

  • 事务

  • 性能调优

3.设计模式

  • 24种设计模式与6大设计原则

4.并发编程

  • Java线程

  • 线程池

  • 生命周期

  • 阻塞队列

  • CAS

  • AQS

5.JVM

  • 线程

  • JVM内存区域

  • JVM运行时内存

  • 垃圾回收与算法

  • GC

  • IO/NIO

  • 类加载机制

6.Netty

  • Netty原理

  • Netty高性能

  • NettyRPC实现

  • RMI实现方式

  • Protoclol Buffer

  • Thrift

二、开源框架(SSM框架)

1.Spring

  • Spring特点、核心组件、常用模块、主要包、常用注解、第三方结合

  • Spring IOC、AOP

2.Spring MVC

3.Mybatis

三、微服务架构

1.Dubbo

  • 基于XML配置实现

  • Dubbo注册中心

  • Dubbo扩展点加载机制

  • Dubbo启停原理解析

  • Dubbo远程调用

  • Dubbo集群容错

  • Dubbo扩展点

  • Dubbo高级特性

  • Dubbo过滤器

  • Dubbo注册中心扩展实践

  • Dubbo服务治理平台

  • Dubbo未来生态

2.SpringBoot

  • Spring Boot入门

  • 配置文件

  • 日志

  • Web开发

  • Docker

  • SpringBoot与数据访问

  • 启动配置原理

  • 自定义starter

3.SpringCloud

四、分布式

1.分布式限流(Nignx+Zookeeper)

2.分布式缓存(Redis+MongoDB+Memcached)

3.分布式通讯(RabbitMQ+RocketMQ+Kafka)

五、性能优化

1.Java性能调优

2.Mysql调优

3.JVM调优

4.Tomcat调优

总结

从熟练到精通,从CRUD到架构师,这是一个漫长的过程,需要的是积累,更需要的是坚持。文章中也深刻剖析了,想要进阶成大牛,需要学习的知识有很多,要想完全掌握技术栈,并非一朝一夕,但每天学一点,总有一天能溢出来。

所以,你也想成为人才,那么Java全能笔记必不可少

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值