首先三万的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的职位。在阿里是p6左右,在百度是t5左右,腾讯是t2-3左右,京东是t3-1,美团是p6左右,其他的我不了解。这种级别是他们主要码农层级,加班多,能解决大部分问题,但对系统的整体架构能力和深入分析瓶颈的能力还需要培养。

其次掌握的技能树主要有三个方面:
第一个是基础。

比如对集合类,并发包,类加载,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了解底层的设计。比如一般面试都会问ConcurrentHashMap,CopyOnWrite,线程池,CAS,AQS,虚拟机优化等知识点,因为这些对互联网的企业是绝对重要的。而且一般人这关都过不了,还发牢骚说这些没什么用,为什么要面试。举一例子,在使用线程池时,因为使用了无界队列,在远程服务异常情况下导致内层飙升,怎么去解决?你要是连线程池都不清楚,你怎么去玩?再举一例,由于对ThreadLocal理解出错,使用它做线程安全的控制,导致没能实现真的线程安全。还有遇到内存泄露怎么排查问题,怎么优化系统性能。所以作为一个拿三万的JAVA程序员这点基础是要有的。

第二你需要有全面的互联网技术相关知识

从底层说起,你起码得深入了解mysql,redis,nginx,tomcat,rpc,jms等方面的知识。你要问需要了解到什么程度,我可以给你说个大慨。首先对于MySQL,你要知道常见的参数设置,存储引擎怎么去选择,还需要了解常见的索引引擎,知道怎么去选择。知道怎么去设计表,怎么优化sql,怎么根据执行计划去调优。高级的你需要去做分库分表的设计和优化,一般互联网企业的数据库都是读写分离,还会垂直与水平拆分,所以这个也有经验的成分在里面。然后redis几乎是必须的技能,而nginx和tomcat几乎都是JAVA互联网方面必配。至于rpc相关的就多的去,必须各种网络协议,序列化技术,SOA等等,你要有一个深入的理解。现在应用比较广的rpc框架,在国内就是dubbo了,开源的还有spring cloud相关技术栈,可以自行搜索。至于jms相关的起码得了解原理吧,一般情况下不是专门开发中间件系统和支撑系统的不需要了解太多细节,国内企业常用的主要是activeMQ和kafka。你能对我说的都有研究,阿里p7都不是太大问题的。

第三就是编程能力,编程思想,算法能力,架构能力

首先2W程序员对算法的要求我觉得还是比较低,再高级也最多红黑树吧,但是排序和查询的基本算法得会。编程思想是必须的,问你个AOP和IOC你起码的清清楚楚,设计模式不说每种都用过,但也能了解个几种。编程能力这个我觉得不好去评价,但是拿一个2000W用户根据姓名年龄排序这种题目也能信手拈来。最后就是架构能力,这种不是说要你设计个多牛逼多高并发的系统,起码让你做一个秒杀系统,得有一个明确的思路和方向。

针对以上三点,小编整理了一整套的Java学习笔记,足够你的月薪达到3W左右!(为了不影响大家的阅读体验,这份笔记的免费获取方式在放在了文末!)

JVM篇

线程

JVM内存区域(程序计数器(线程私有)、虚拟机栈(线程私有)、本地方法区(线程私有)、堆(Heap-线程共享) -运行时数据区、方法区/永久代(线程共享))

JVM运行时内存(新生代、老年代、永久代

垃圾回收与算法(如何确定垃圾、标记清除算法(Mark-Sweep)、复制算法(copying)、标记整理算法(Mark-Compact)、分代收集算法

JAVA四种引用类型(强引用、软引用、弱引用、虚引用

GC分代收集算法VS分区收集算法(分代收集算法、分区收集算法

GC垃圾收集器(Serial垃圾收集器(单线程、复制算法)、ParNew垃圾收集器(Serial+多线程)、Parallel Scavenge收集器(多线程复制算法、高效)、Serial Old收集器(单线程标记整理算法)、Parallel Old收集器(多线程标记整理算法)、CMS收集器(多线程标记清除算法)

JAVA IO/NIO(阻塞IO模型、非阻塞IO模型、多路复用IO模型、信号驱动IO模型、异步IO模型、JAVA IO包、JAVA NIO、Channel 、Buffer、Selector

JVM类加载机制(加载、验证、准备、解析、符号引用、直接引用、初始化、类构造器< client>、类加裁器、双亲委派、OSGI (动态模型系统)

JAVA集合篇

接口继承关系和实现

List(ArrayList (数组)、Vector (数组实现、线程同步)、LinkList (链表)

Set(HashSet (Hash表)、TreeSet (二叉树)、LinkHashSet (HashSet+ LinkedHashMap)

Map(HashMap (数组+链表+红黑树)、ConcurrentHashMap、HashTable (线程安全)、TreeMap (可排序)、LinkHashMap (记录插入顺序)

多线程与高并发篇

JAVA并发知识库

JAVA线程实现/创建方式(继承Thread类、实现Runnable接口、ExecutorService、Callable <Class>、Future有返回值线程、基于线程池的方式

4种线程池(newCachedThreadPool、newFixedThreadPool、newScheduledThreadPool、newSingleThreadExecutor

线程生命周期(新建状态(NEW)、就绪状态(RUNNABLE)、运行状态(RUNNING)、阻塞状态(BLOCKED) 、线程死亡(DEAD)

终止线程4种方式(正常运行结束、使用退出标志退出线程、Interrupt方法结束线程、stop方法终止线程(线程不安全)

sleep与wait区别

start与run区别

JAVA后台线程

JAVA锁(乐观锁、悲观锁、自旋锁、Synchronized同步锁、ReentrantLock、Semaphore信号量、AtomicInteger、可重入锁(递归锁)、公平锁与非公平锁、ReadWriteLock读写锁、共享锁和独占锁、重量级锁(Mutex Lock)、轻量级锁、偏向锁、分段锁、锁优化

线程基本方法(线程等待(wait)、线程睡眠(sleep)、线程让步(yield)、线程中断(nterrupt)、Join等待其他线程终止、为什么要用join0方法?、线程唤醒(notiy)、其他方法

线程上下文切换(进程、上下文、寄存器、程序计数器、PCB-“切换桢”、上下文切换的活动、引起线程上下文切换的原因

同步锁与死锁

线程池原理(线程复用、线程池的组成、拒绝策略、Java线程池工作过程

JAVA阻塞队列原理(阻塞队列的主要方法、Java中的阻塞队列、ArrayBlockingQueue (公平、非公平)、LinkedBlockingQueue (两个独立锁提高并发)、PriorityBlockingQueue (compareTo排序实现优先)、DelayQueue (缓存失效、定时任务)、SynchronousQueue (不存储数据、可用于传递数据)、LinkedTransferQueue、LinkedBlockingDeque

CyclicBarrier. CountDownLatch. Semaphore的用法

volatile关键字的作用(变量可见性、禁止重排序)

如何在两个线程之间共享数据

ThreadLocal作用(线程本地存储)

synchronized和ReentrantLock的区别

ConcurrentHashMap并发(减小锁粒度、ConcurrentHashMap分段锁

Java中用到的线程调度(抢占式调度、协同式调度、JVM的线程调度实现(抢占式调度)、线程让出cpu的情况

进程调度算法(优先调度算法、高优先权优先调度算法、基于时间片的轮转调度算法

什么是CAS (比较并交换-乐观锁机制-锁自旋)

什么是AQS (抽象的队列同步器)

Spring原理篇

Spring特点(轻量级、控制反转、面向切面、容器

Spring核心组件

Spring常用模块

Spring主要包

Spring常用注解

Spring第三方结合

Spring IOC原理(概念、Spring容器高层视图、IOC容器实现、Spring Bean作用域、Spring Bean生命周期、Spring依赖注入四种方式、5种不同方式的自动装配

Spring APO原理(概念、AOP核心概念、AOP两种代理方式、实现原理

Spring MVC原理

Spring Boot原理(创建独立的Spring应用程序、嵌入的Tomcat,无需部署WAR文件、简化Maven配置、自动配置Spring、提供生产就绪型功能,如指标,健康检查和外部配置、绝对没有代码生成和对XML没有要求配置

JPA原理(事务、本地事务、分布式事务、两阶段提交

Mybatis缓存(一级、二级)

Tomcat架构

数据库篇

存储引擎(概念、InnoDB (B+树)、TokuDB (Fratal Tree节点带数据)、MyIASM、Memory

索引

数据库三范式.第一范式(1st NF -列都是不可再分)、第二范式(2nd NF-每个表只描述件事情、第三范式(3rd NF-不存在对非主键列的传递依赖)

数据库是事务(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、永久性(Durability)

存储过程(特定功能的SQL语句集)

触发器(一段能自动执行的程序)

数据库并发策略(乐观锁、悲观锁、时间戳

数据库锁(行级锁、表级锁、页级锁

基于Redis分布式锁

分区分表(垂直切分(按照功能模块)、水平切分(按照规则划分存储)

两阶段提交协议(准备阶段、提交阶段、缺点

三阶段提交协议(CanCommit阶段、PreCommit阶段、doCommit阶段

柔性事务

CAP(一致性 、可用性、分区容忍性

这份知识点内容真的太多了,一篇文章根本写不完,我让大家看看这份笔记的目录吧

这份笔记的每一个部分都涵盖了很多内容,从基础到进阶,同时这份笔记有近1000页,全部都是笔记作者自己最精华部分的总结,今天是免费赠送的,需要免费领取的朋友,麻烦帮忙转发一下这篇文章+关注我

想拿到三万月薪在北上深杭做Java开发如何,需要什么程度技术?相关推荐

  1. 在北上深杭做Java开发如何拿到三万月薪,需要什么程度技术?

    首先三万的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的职位.在阿里是p6左右,在百度是t5左右,腾讯是t2-3左右,京东是t3-1,美团是p6左右,其他的我不了解.这种级别是他们主要码农层 ...

  2. 在北上深杭做Java开发如何拿到三万月薪,需要什么程度的技术?

    首先三万的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的职位.在阿里是p6左右,在百度是t5左右,腾讯是t2-3左右,京东是t3-1,美团是p6左右,其他的我不了解.这种级别是他们主要码农层 ...

  3. 在“北上广深杭”做Java开发如何月薪达到2w,需要技术水平达到什么程度?

    前言: 最近群里有朋友一直在聊就是月薪多少多少,说在北京上海等一线城市做java怎么样可以达到2w块钱的水平,今天就来唠唠这么个话题 首先两万的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的 ...

  4. 在一线做Java开发,月薪达到两万的都是什么水准?

    在一线做Java开发,月薪达到两万的都是什么水准?下面和小编一起来看看吧! 第一个是基础 比如对集合类,并发包,类加载,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了 ...

  5. 互联网办公地点搬迁(北上深杭)

    互联网公司搬家的 N 种理由 搬家是一件大事儿,本质上体现的是公司的选址和人才引进策略:不同量级的互联网企业,搬迁办公室的原因也有所不同. 1.初创型企业,每一分钱都要用在刀刃上,搬迁动机主要是「节流 ...

  6. 大数据产业版图:东南沿海引领 独角兽扎堆北上深杭

    当今世界最有价值的资源是什么?数据一定是不可回避的.数据是重要的基础性战略资源,大数据发展正在驱动经济社会诸多领域发生深刻变革--目前已成为各界的共识.大数据也是信息经济的关键生产要素,大数据产业的发 ...

  7. 中国大数据产业版图:东南沿海继续引领 独角兽扎堆北上深杭

    当今世界最有价值的资源是什么?数据一定是不可回避的.数据是重要的基础性战略资源,大数据发展正在驱动经济社会诸多领域发生深刻变革--目前已成为各界的共识.大数据也是信息经济的关键生产要素,大数据产业的发 ...

  8. “北上深杭”成大数据企业聚集地

    根据北京市长城企业战略研究所日前发布的<2016中国大数据独角兽企业发展报告>显示,在大数据领域,我国已经出现4家估值超过100亿美元的超级独角兽企业,分别是蚂蚁金服(估值750亿美元). ...

  9. 想做分布式开发,需要懂哪些技术?

    [阅读建议]文章多处链接别处详细文章,客观莫急建议先把文章总体阅读完毕后,再点进去慢慢品味具体细节点,阅读本文大概需要10分2秒. 目录 一.前言 二.分布式篇 1 这个技术框架,它是什么东西? 2 ...

最新文章

  1. visual assist x太卡了_LeetCode69. x 的平方根
  2. Linux服务器网页显示乱码
  3. java 填充字符串_如何用Java填充字符串?
  4. Dataset之Cityscapes:Cityscapes数据集的简介、安装、使用方法之详细攻略
  5. [攻防世界 pwn]——guess_num
  6. 关于魔方里的工具修改方法
  7. 给ecshop后台增加管理功能页面
  8. Linux查看非root流程执行
  9. 一元云购php源码,一元云购完整源码 云购CMS系统 带安卓和ios手机客户端
  10. mysql中获取时间的年月日_Mysql获取系统时间,年,月,日
  11. 装修细节注意问题 装修细节有哪些
  12. JS计算字符串在浏览器中显示的宽度
  13. 非企用户该如何推广?什么事非企户呢?
  14. Paste Image插件初始化设置:修改图片保存路径、自动插入图片描述信息
  15. Linux碎片整理工具,Linux不需要磁盘碎片整理
  16. Golang位运算符
  17. XSS挑战之旅(1-9)
  18. java腾讯地图根据经纬度获取具体位置
  19. 情境领导者-第一章、人员管理
  20. 自己写的忽略大小写查找字符串的子串的函数

热门文章

  1. pdf.js改成base64方式加载
  2. CDISC的ADaMIG (V1.2) 中英文对照【2】_第二章 ADaM标准的基础
  3. CSS渐变颜色和浏览器前缀、opacity透明度以及设置多个背景图片写法
  4. 110道python面试笔试题汇总,你能答对几道?
  5. 腾讯校招笔试题之纸牌游戏
  6. 百度的凤巢广告系统多了些什么?
  7. 函数求导及求微分的基本公式
  8. esp8266 micropython mqtt_ESP8266 使用 micropython 编程ntp数显tm1637 mqtt 上传 温湿度 气压到Domoticz 集中......
  9. Python做游戏很难吗—来看看我做的多有意思~
  10. 函数内部的this指向/call()方法