Java工程师一般月薪是多少?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java工程师一般月薪是多少?相关的知识,希望对你有一定的参考价值。
java工程师月薪具有效数据调查收入为9870元,远远要高于其他行业的月薪水平。
并且java的薪资也并不是属于一程不变的那种,也是会随着工作时间和经验的增加而薪资以及自身的价值也会随之增长。
参考技术A 今天聊点大家喜欢的东西,薪资。现在这么多人进入互联网行业,我们来盘一下Java的薪资。首先我们聊聊程序员的薪资结构程序员的工资构成一般包含以下几个方面:基本工资、绩效工资、五险一金、年终奖、项目奖等等,有的公司福利比较好还有过节费,不过也发不了多少钱。
1.基本工资
基本工资就不说了,这个一般是入职的,HR和你约定好的,一般都是几千块钱。
2.绩效工资
大头还是你的绩效工资,绩效一般是由你的组长来评定,给你A、B、C、D,正常的公司都会按照你的工作来给你对应的绩效,一般都会给你满绩效。但是,不排除其他情况。之前网易的那个得病的员工,就是因为主管把他的绩效打了D。
3.五险一金
此外,员工的五险一金也是值得关注的点,有的公司给你15k的月薪,但是公积金的缴费基数按照6000或者最低的档次来交。
举个例子:
假如按照6000来交(15000-6000)*12=1080,你就损失了1080块钱,这些钱都是到你的公积金账户上日后可以提现。所以,入职之前一定要问清楚你的五险一金。有的公司如果不交五险一金,我建议你最好不要去。
4.年终奖
年终奖这个东西你要佛系对待,因为这个东西不一定会有,今年有明年也不一定有。一般来说是一个月的工资,当然像腾讯王者荣耀团队年终奖是据说都是十几个月的工资。这个一般根据公司的经营状况。不过现在是互联网寒冬,大家还是且拿且珍惜。
5.项目奖
这个一般在外包公司比较多,一般完成一个项目,有几千块钱不等,当然也可能是几百或者几万,看项目的重要程度。
一般来说,北上深外加杭州的薪资水平基本上是一个档次的,但是广州虽然也是一线城市,但是广州的薪资水平是真的不高,一般三年工作经验的Java程序员大约10k左右。此外,像成都,西安,南京,苏州这些地方和基本上都比北上深杭差一个档次。大家想知道本地的薪资水平,可以去招聘网站上自己搜看看。
一个普通的本科应届生在北京一月大约是6k左右,
有一年工作经验之后大约是8k左右,
两年的话基本上10k上下,
三年的15k左右,
四年的17k左右,
五年的20k左右。(稍有偏差)
再往上的话都是算年薪,30w,50w,100w都是可能的,那就不是工作经验决定的了的。当然这些工资都是税前工资,都是需要交纳税的,之前没有税改之前,交税都是好几千的交,很肉疼。
当然,这是针对大部分普通的程序员,你不能说我有个同事刚进阿里一年20万,一个在普通公司的普通的Java程序员的薪资大致就这些。
还有一点就是,不是说你干了5年,你就必须拿到20k,不然的话,就是公司压榨你。如果你天天上班划水摸鱼,不去更新技术,那当然不可能拿到20k,毕竟用人单位也不傻。
此外,有个很重要的点就是比如你工作一年,但是你技术还不错,你想要15k,这个难度比较大,大家基本上都是按照工作年限和能力来综合给薪酬的。如果面试不太有把握,薪资可以写面议,如果面试发挥的比较好,就多要一些,面试的不好,可以少要一些。 参考技术B java工程师一般月薪是多少?企业在招聘java工程师的时候,除了要看基础知识掌握了多少,还要看java工程师在这方面有什么优势。
要求java工程师月薪10万或者100万也是可能的。
首先来说,java工程师岗位的薪资大多数为8-15k,行业标准薪资。
其次工作经验问题,一般而言,公司如果希望招到有3年工作经验的,那么能够肯定的说,月薪基本上是10万以上。而且这10万之中,有一半还是税前。
最后面试题难度,面试可能是每年都会面试,每年都觉得自己一无所知,还是很容易败下阵来的。也不是大神不敢回答你,是一些大公司的基础题每年都会重复考试。
java程序员面试怎么问这类问题呢?下面给大家分享了一份阿里面试阿里java工程师面试题,也算是这份面试题的中档集。同学们在面试的时候能够根据这些知识点,进行反复的练习,搞清楚其中的答案和为什么是对的。
这份资料不是最好的,但是是最全面的,助力每一位java工程师找到满意的工作,在这里表示感谢!资料整理不易,找到份好的面试题资料不容易,有什么问题的同学,可以加我微信【15164616357】交流讨论!待遇肯定不同地区的差异是很大的,每个地区岗位薪资肯定也是不同的,我就说下各地区的大概收入吧,仅供参考哈!以下一部分所说的是校招生,社招情况会有差异。
中上等水平:1w+北京、上海、广州3-5w其他地区薪资水平较低中等偏上:1w+北京3-5w其他地区薪资水平较高中等偏下:1w+北京3-5w其他地区薪资水平较低如果月薪超过2w,就看公司经营情况,是否生意很好,整体工作环境如何,有其他年终奖金发放情况等诸多因素了。这个问题一句两句也说不清,建议提前打听清楚工资大概水平,尽早了解清楚。薪资待遇参考网站:阿里巴巴集团招聘广州、深圳、佛山等杭州公司应届生:10k+北京、上海、广州、佛山等其他地区应届生:5k-10k其他地区应届生:3k-5k北京技术岗位校招薪资水平:如下以上为杭州和广州两个地区的校招薪资状况,仅供参考!实习生薪资水平:只能通过公司合作的实习机构去了解。
以上信息仅供参考!楼主可以关注公众号【求职伴侣】菜单栏:java源码分析、bat、华为、小米、字节跳动、搜狐、tmd等全球互联网面试题笔试题加分题免费下载!无偿回答任何java学习、面试问题,共同进步!如果感觉可以的话,记得帮忙点赞。有什么问题也可以在我的公众号留言,大家一起交流学习!讲真,这个话题对你不够友好。
你的主要矛盾是1.拿不到理想的薪资不在java就业大数据的平均水平的边缘。 参考技术C 移动互联网发展非常迅猛,各种创业公司、小团队如雨后春笋般冒出来,对安卓开发、Java、Web的需求变大。但存在人才发展跟不上市场的需求的现状,相对应的给优秀Java人才开出的薪资待遇随之水涨船高。从第三方平台统计的数据可以看到,Java工程师在2019年平均月薪接近20K,其中20K-30K的薪资占比为30.3%。岗位需求方面,从100offer招聘网发布的各技术类岗位企业面邀数占比可以看出,Java工程师企业需求为第一位,占比60%,同比增长了11%。由此可见,Java岗位需求仍然呈现持续上升趋势,供不应求。要求计算机技术或是相关专业的大学生,Java对从业人员素质,计算机相关行业会了解最基本的互联网的相关知识,以及简单的语言基础;从事Java开发行业,招聘公司对学历有要求,大部分要求是专科以上。并不排除有非计算机专业的从事Java行业的开发人员,但是万事开头难很多人抱着很大的希望去学习,学习过程中遇到的困难越来越多,慢慢就放弃了,因此有一部分人在入门的路上就淘汰了
Java软件工程师一般月薪范围在8K-14k之间,远远超过了应届毕业生月薪4500元的平均水平。通常来说,稍微用点心,出去工作一年。有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—17万左右。
以北京为例,目前北京地区Java开发工程师的平均薪资为20020元每月,应届生的平均月薪都有1万以上。从这可以看出目前Java开发人才在招聘市场上还是很吃香的,企业愿意给Java开发人才开出很好的薪资待遇。 参考技术D 3年以下java开发工作经验为初级工程师,3-5年java开发工作经验为中级工程师,5-8年为java开发工作经验为高级工程师,那么他们对应的薪资是:java初级是5-10k总之一般不会超过10k。java中级为12k左右,java高级在15-20k。
所以java工程师的薪资是根据自身的技术以及经验来算的,当然从动力节点毕业的学员 平均薪资差不多都是在一万左右。
新鲜出炉!两万月薪的Java工程师面试题,看看你能做出来多少?
接口和抽象类的区别
接口.
一个类实现了多个接口,那么必须实现接口中所有的抽象方法,如果方法相同,那么只需要Override一次。
所有接口中的默认方法也可以被继承,但是如果两个接口有重名的默认方法,类必须Override这个方法。
一个类,有基类,同时实现了接口,接口中有默认方法,且接口中的默认方法和基类的方法同名,那么会优先使用基类中的方法。
一个接口可以继承一个或多个接口,即接口是可以多继承的。
接口里不能有成员变量,构造函数,static静态代码块,不可以创建对象
接口里可以有常量:public static final
抽象类
抽象类用来描述一种类型应该具备的基本特征与功能, 具体如何去完成这些行为由子类通过方法重写来完成
如:猫和狗都属于动物类并且狗和猫都吃食物,但是吃的食物是不同的,所以动物类规定了有吃食物功能,但并不明确吃食物的细节。吃食物的细节应该由猫与狗这样的动物子类重写吃食物的方法具体实现。即抽象方法指只有功能声明,没有功能主体实现的方法。
具有抽象方法的类一定是抽象类,但是抽象类不一定包含抽象方法,抽象类可以有非抽象方法
抽象类,抽象方法的定义
public abstract 返回值类型 方法名(参数); 抽象类定义的格式: public abstract class 类名 { } 看如下代码: //员工 public abstract class Employee{ public abstract void work();//抽象函数。需要abstract修饰,并分号;结束 } //manager public class Teacher extends Employee { public void work() { System.out.println("正在赋予权限"); } } //customer public class Assistant extends Employee { public void work() { System.out.println("正在使用该系统"); } } //开发人员 public class Manager extends Employee { public void work() { System.out.println("正在维护此系统"); } }
抽象类无法直接创建对象,只能被子类继承后,创建子类对象。
子类需要继承抽象父类并完成最终的方法实现细节(即重写方法,完成方法体)。而此时,方法重写不再是加强父类方法功能,而是父类没有具体实现,子类完成了具体实现,我们将这种方法重写也叫做实现方法。
抽象类一定是个父类,因为抽象类是不断抽取共性需求而来的。
抽象类中是可以不定义抽象方法的,此时仅仅是不让该类创建对象,用于某些特殊的设计需要。
设计时由具体类抽取出抽象类,而开发阶段应该先定义抽象父类,再根据不同需求由父类定义子类。
接口与抽象类的区别
接口的默认方法是public,所有的方法在接口中不能有实现(JDK8开始接口方法可以有默认实现,JDK9的接口允许定义私有方法),而抽象类可以有非抽象的方法。
接口中除了static、final变量,不能有其他变量,而抽象类中不一定。
一个类可以实现多个接口,但只能实现一个抽象类,接口本身可以通过extends关键字拓展多个接口
接口方法默认修饰符是public,抽象方法可以有public、protected和default这些修饰符(抽象方法不能用private修饰)
从设计层面来说,抽象是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范。
==与equals
==:
? 它的作用是判断两个对象的地址是不是相等。即判断两个对象是不是同一个对象。如果进行比较的两个操作数都是数值类型,即使他们的数据类型不相同,只要他们的值相等,也都将返回true.如果两个操作数都是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,而且这两个引用必须指向同一个对象,才会返回true。
equals():
? equals()方法是Object类中的方法,它的作用也是判断两个对象是否相等,我们知道所有的类都继承Object,而且Object中的equals()方法内部实际就是使用==进行比较的而且没有用final修饰,所以我们在使用equals()方法的时候需要关注的就是这个类有没有重写Object中的equals()方法。
? 如果没有重写,则通过equals()比较该类两个对象时,等价于通过==比较
如果面试官问你区别,你可以这么说
1)对于==,比较的是值是否相等 如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址 2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址; 诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
几点解释
有如下代码
public static void main(String[] args) { //-128 ~ +127 之间 Integer a = 5; int b = 5; Integer c = new Integer(5); Integer d = 5; System.out.println(a.equals(b)); System.out.println(a == b); System.out.println(a.equals(c)); System.out.println(a == c); System.out.println(a == d); //-128 ~ +127 之外 a = 128; b = 128; c = new Integer(128); d = 128; System.out.println(a.equals(b)); System.out.println(a == b); System.out.println(a.equals(c)); System.out.println(a == c); System.out.println(a == d); }
结果
//-128 ~ +127 之间 true true true false true //-128 ~ +127 之外 true true true false false Process finished with exit code 0
疑问:
ystem.out.println(a == d); 同样的表达式,不同的值为什么结果不同
System.out.println(a == c); 与 System.out.println(a == d); 同样的对象类型,为什么复制方式不一样,比较结果不一样
System.out.println(a == c); 与 System.out.println(a.equals©); 不同的比较方式,结果为什么不同
解答:
? 首先我们看a,c,d三个变量的赋值方式,其中a和d的赋值方式都是直接赋值,没有调用new关键字,只有d的赋值方式调用了new关键字.然后我们在看赋值的具体数值,一组是在-128 ~ +127 之间,另一组是128在/-128 ~ +127 之外.我们可以通过已知的不同点去阅读源码.(其中不同的比较方式为什么结果不同,这个可以猜出一定是Integer重写了equals()方法.)
? 赋值方式中如果调用了new关键字,一定会在内存中给你分配一个新的地址
? 给Integer类型赋值的时候,如果没有调用new关键字,并且值在-128与+127之间,包括-128和+127,那么指向的都是同一个内存位置.
? Integer类中重写了equals()方法,使用equals()方法进行比较的时候,实际上比较的内存中最终指向的值的内存位置,不是直接比较变量的内存位置.
? 重写的equals()方法:
public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; }
一点总结
【强制】所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。 说明:对于 Integer a = ? 在-128 至 127 范围内的赋值,Integer 对象是在IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑, 推荐使用 equals 方法进行判断。
线程、程序、进程的基本概念以及之间的关系
? 线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一款内存空间和一组系统资源,所以系统产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小很多,也正因为如此,线程也被称为轻量级进程。
? 程序是含有指令和数据的文件,被存储在磁盘或者其他数据存储设备中,也就是说程序是静态的代码。
? 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志。
? 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
? 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
? 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;
为何不使用多进程而是使用多线程?
? 线程廉价,线程启动比较快,退出比较快,对系统资源的冲击也比较小。而且线程彼此分享了大部分核心对象(File Handle)的拥有权
如果使用多重进程,但是不可预期,且测试困难
以上是关于Java工程师一般月薪是多少?的主要内容,如果未能解决你的问题,请参考以下文章
新鲜出炉!两万月薪的Java工程师面试题,看看你能做出来多少?