有人回答说这只能是大企业或者互联网企业的工程师才能拿到.也许是的,小公司或者非互联网企业拿两万的不太可能是码农了,应该是已经转管理后才有可能.还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难. 还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,Android等等的,或者表达能力强,击中面试官痛点肯定加分是吧.如果你达到我说的水准,我们谈的起薪就是2w,有其他优秀的表现我们在这个基础…
具有一到五年开发经验 需要学习内容很多 JVM/分布式/高并发/性能优化/Spring MVC/Spring Boot/Spring Cloud/MyBatis/Netty源码分析等等等 01.透彻理解Tomcat原理手写动静态资源的实现 02.分享能源领域的分布式监测系统架构 03.分布式系统关键技术Rpc框架详解与实现 04.自己写一个SpringMVC框架 05.使用Jsoup实现网页爬虫功能 06.JAVA高级进阶之NIO通信架构原理详解 07.高手必过之路透彻理解Spring容器IOC…
Java工作中常见的并发问题处理方法总结 好像挺久没有写博客了,趁着这段时间比较闲,特来总结一下在业务系统开发过程中遇到的并发问题及解决办法,希望能帮到大家 问题复现 1. "设备Aの奇怪分身" 时间回到很久很久以前的一个深夜,那时我开发的多媒体广告播放控制系统刚刚投产上线,公司开出的第一家线下生鲜店里,几十个大大小小的多媒体硬件设备正常联网后,正由我一台一台的注册及接入到已经上线的多媒体广告播控系统中. 注册过程简述如下: 每一个设备注册到系统中后,相应的在数据库设备表中都会新增一条…
我相信很多工作了3-5年的开发人员都会经常问自己几个问题: 1.为什么总是感觉技术没有质的提高? 2.如何能够有效和快速的提高自身的技术水平? 3.如何进入到一个牛逼的大公司,认识牛逼的人? 这篇文章就针对是这种情况的Java后端的开发人员来写的,以我们的经验来帮助大多数的技术人员来突破瓶颈,从而走上升职.加薪.赢取白富美的成功之路. 那么如何突破瓶颈呢,就我来看就是从三个方面加强技术: 1.自己先把基础知识加强巩固. 2.提升自己某一块领域的深度 3.提升自己对后端技术的视野广度 那么下面我将…
郑重声明:本片博客是学习<深入理解Java虚拟机>一书所记录的笔记,内容基本为书中知识. Java程序员有一个共识,以编译方式执行本地代码比解释方式更快,之所以有这样的共识,除去虚拟机解释执行字节码时额外消耗时间的原因外,还有一个很重要的原因就是虚拟机设计团队几乎把对代码的所有优化措施都集中在了即时编译器之中(在JDK 1.3之 后,Javac就去除了-O选项,不会生成任何字节码级别的优化代码了),因此一般来说,即时编译器产生的本地代码会比Javac产生的字节码更加优秀[1].本篇博客,我们将…
最近跟朋友在一起聚会的时候,提了一个问题,说 Java 程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到.也许是的,小公司或者非互联网企业拿二万的不太可能是码农了,应该已经转管理.还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难达到. 还有人提到这个水平不止 2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是 985,top10,或者研究生学历,也或者懂点 node,懂点大数据等等,或者表达能力强,击中面…
最近跟朋友在一起聚会的时候,提了一个问题,说Java程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到.也许是的,小公司或者非互联网企业拿二万的不太可能是码农了,应该已经转管理.还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难达到. 还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,懂点大数据等等,或者表达能力强,击中面试官痛点都…
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这个问题应该这么问--sleep和wait有什么相同点.因为这两个方法除了都能让当前线程暂停执行完,几乎没有其它相同点. wait方法是Object类的方法,这意味着所有的Java类都可以调用该方法.sleep方法是Thread类的静态方法. wait是在当前线程持有wait对象锁的情况下,暂时放弃锁…
Java后端,应该日常翻看的中文技术网站 1.内容生产者 InfoQ 中文技术第一站,佩服霍老板,真金白银地为中国程序员们生产内容. ImportNew 专门面向Java的内容生产者兼聚合者,偶然也有些面向入门的小白文. 并发编程网 面向高并发,Java,开源的社区. 2. 内容聚合者 现在写博客,没人用RSS读了,在微博里的传播也就一两天,好在有它们负责挖掘整理散落在各个角落的技术文章. 开发者头条 与 <码农周刊> 人气慢慢上来了,我博客阅读量很大一部分源于它, APP也好用. <编…
LZ常常思考自己的未来,也从自己的思考中总结出了一些东西,作为第一部分来谈谈.LZ认为一名程序员应该有几个阶段(以下时间都算上实习期). 第一阶段:三年 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发.我们知道如何团队协作.如何使用项目管理工具.项目版本如何控制.我们写的代码如何测试如何在线上运行等等,积累了一定的开发经验,也对代码有了一定深入的认识,是一个比较纯粹的Coder…
1.什么是事务控制?答:事务控制就是将一系列操作当成一个不可拆分的逻辑单元,保证这些操作要么都成功,要么都失败.在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序.事务是恢复和并发控制的基本单位.事务应该具有4个属性:原子性.一致性.隔离性.持续性.这四个属性通常称为ACID特性.原子性(atomicity).一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做.一致性(consistency).事务必须是使数据库从一个一致性状态变到另一个一致性状态.一致…
2014年6月,刚刚踏上社会那会儿,我记得我第一次面试啥都不知道,穿的也不修边幅去应聘一家4s销售,面试官看到我,我明细感觉到了对方厌恶的神色,这是我上社会的第一课,找工作不管是什么工作,衣着得体,是必备的. 后来被我爸一发电话莫名其妙去了大城市. 这次我理了个清爽的发型, 挎了个公务包, 去人才市场找工作了, 我找的工作是做机床操作, 面试官极力推荐我做销售, 我还是坚持机床. ps:当时如果我去做了销售, 可能现在也不会做java这一行. 在大城市的第一份工作, 以劳务派遣的身份进入某国企工…
所谓线程的“工作内存”到底是个什么东西?有的人认为是线程的栈,其实这种理解是不正确的.看看JLS(java语言规范)对线程工作 内存的描述,线程的working memory只是cpu的寄存器和高速缓存的抽象描述. 可能 很多人都觉得莫名其妙,说JVM的内存模型,怎么会扯到cpu上去呢?在此,我认为很有必要阐述下,免 得很多人看得不明不白的.先抛开java虚拟机不谈,我们都知道,现在的计算机,cpu在计算的时候,并不总是从内存读取数据,它的数据读取顺序优先级 是:寄存器-高速缓存-内存.线程耗费…
从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源软件推动者之一,Smart Framework 开源框架创始人.热爱技术交流,乐于分享自己的工作经验.著有<架构探险--从零开始写Java Web框架>一书. 我的十年技术之路 和大家介绍下我目前所从事的工作. 我目前从事分布式服务架构的设计与开发工作,在阿里的大数据平台上进行应用程序开发.我们整个系统架构采用了…
本人是17年6月份毕业的,3月份出来实习,算起来也是工作一年了吧,金三银四,博主也考虑换一份工作,于是最近面试了几家,总结一下面试中的问题,大家一起交流学习. 第一次面试  ①说下java类的加载 ②说一下zookeeper的原理 ③说一下你对dubbo的理解 ④说一下nio和io的区别 ⑤说一下并发锁 第二次面试 ①网络的七层协议从底层往上说一下 ②什么是sql注入 ③你平时怎么预防的sql注入(答使用PreparedStatement,预编译之后,使用占位符,而不是直接把参数写入sql中)…
关于自学Java能不能通过社招找到一份互联网公司Java开发的工作,有无数的人问出这样的问题,答案没有标准的,只能从概率去考虑.有的人可以,有的人不可以,有的人自学就业的概率就是高,有的概率就是低. 比如一本院校学习通信的学生,他肯定是学过编程的,学习能力也不错.他学成的概率就很高. 比如一个初中学历的人,他想要自学编程,想要达到就业的水平,那么这样的概率一定是非常低的,他需要付出比别人更多的努力. 不管是什么人,把Java编程自学成功就业的人,都可以利用专业的角度去提升自己学成Java的概率.…
JAVA虚拟机系列文章 http://developer.51cto.com/art/201001/176550.htm Java语言引入了Java虚拟机,具有跨平台运行的功能,能够很好地适应各种Web应用.同时,为了提高Java语言的性能和健壮性,还引入了如垃圾回收机制等新功能,通过这些改进让Java具有其独特的工作原理. 1.Java虚拟机 Java虚拟机(Java Virtual Machine,JVM)是软件模拟的计算机,它可以在任何处理器上(无论是在计算机中还是在其他电子设备中)安全兼…
3年工作经验的Java程序员应该具备的技能 一.Java基础 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. 3.反射中,Class.forName和classloader的区别 4.session和cookie的区别和联系,session的生命周期,多个服务部署时session管理. 5.Java中的队列都有哪些,有什么区别. 6.Java的内存模型以及GC算法 7.Java7.Java8的新特性(baidu问的,好BT) 8.Java数组和链表两种结…
黄勇( 博客),从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源软件推动者之一,Smart Framework 开源框架创始人.热爱技术交流,乐于分享自己的工作经验.著有<架构探险——从零开始写Java Web框架>一书. 我的十年技术之路 CSDN:请和大家介绍下你和目前所从事的工作. 黄勇:大家好,我是黄勇. 我目前从事分布式服务架构的设计与开发工作,在阿…
刚看但网上一篇Java最流行工具的文章,结合自己日常应用总结一下开发工作中常用到的工具. 一,Java版本,jdk8,也是Java普及最快的版本,除了本身性能提升外,新增的函数式编程特性也让开发效率更高,推荐使用. 二,web容器,tomcat,也是微服务项目首选容器. 三,单元测试,junit,加上moc工具,测试驱动开发很方便. 四,对象容器IOC,AOP,Spring 五,web MVC,全面从struts2切换到Spring mvc 六,jar包依赖管理,maven 用对工具很重要,开发…
start 去年公司空了几台台式机,当时看了下似乎配置比我用的乞丐版 air 略高一些,而且除了 ssd 以外还有一个 1T 的大硬盘,加上后面可能会有一段时间不做 iOS 了,那就不需要 macOS 了,于是顺了一台过来桌上用来打算做开发机,当时可选的方案有 Windows 10 和 Linux,思考了下机器上 60G 的 ssd 估计是不能装那么多东西的,而 Windows 要把好多东西装到 D 盘,其实用起来好麻烦,感觉自己不太会用,于是选择了 Linux 本文写在我使用 Linux 作为…
这个问题相信每个学习java的同学都不陌生,作为一个经典的面试题,到现在工作这么多年了我真是认为挺操蛋的一个问题,在网上到现在你仍然可以看见很多讨论这个问题的人,其中不乏工作很多年的人都有争论,我认为还是有必要来说一说这个问题的. 从方法区说起 常量池存在于方法区,而方法区在jdk1.7版本前后改变比较大,所以还是先来说说方法区的演变. 在jdk1.7版本之前,常量池存在于方法区,方法区是堆的一个逻辑部分,他有一个名字叫做非堆. 1.7版本把字符串常量池放到了堆中. 而在1.8以后,则是移除了永…
插件的配置与使用 在mybatis-config.xml配置文件中配置plugin结点,比如配置一个自定义的日志插件LogInterceptor和一个开源的分页插件PageInterceptor: <plugins> <plugin interceptor="com.crx.plugindemo.LogInterceptor"></plugin> <plugin interceptor="com.github.pagehelper.P…
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言:授业解惑 我知道,你不知道的还有很多! 你了解计算机要从哪里开始学习吗?你清楚为了能找到工作要学习多少知识吗?你知道承接需求到开发交付上线串联了多少个技术栈吗? 对于这些内容即使从事编程2-3年的研发,大部分人也没有一个全局的概括,而在校大学生更是不清楚自己是从哪开始要到哪里去.收集了几十G到几百G的资料也不知道要从哪开始看,看哪些是对自己当前阶段帮助最大的. 所以在这个22年的1…
环境 1. Jvm最简生存指南: http://www.importnew.com/10127.html 2. 所有路径中,不要出现中文,即使开始的时候,调试Tomcat时,路径有中文也可以,你真不知道哪个SB组件就不支持中文.搞死你.:http://bbs.csdn.net/posts/393143967 3. IDE做的事,就是 编译Java,把资源所包到 zip 文件里,修改扩展名为 jar 或 war 4.…
public class Hellow { int eyes = 2; int ears = 2; int legs = 4; void run(){ //方法 System.out.println("I can run"); } void drink(){ System.out.println("I can run"); } void eat(){ System.out.println("I can eat"); } void info(){…
一.Java工作集: Eclipse有一个小功能,就是创建Java Working Set.它的作用是解决Package Explorer窗格中创建很多工程时出现拥挤的麻烦. 在创建(New对话框)时可以加入原来存在的Java工程.创建完后,在左方Package Explorer窗格的右上方下拉菜单中选择Select Working Set然后选择Selected Working Sets打开创建的工作集.之后切换就可以直接在下拉菜单中选择即可(自动出现在下拉菜单中). 如果希望加入新的工程到工…
最近浏览了一下阿里巴巴的Java开发手册,感觉内容确实非常的赞,发现了不少自己在编程中的误区,因此决定通过成文牢固掌握,文中将选取个人认为比较重要的部分进行描述与分析."愿站在巨人的肩膀上,码出高效,码出质量". 概述 手册中内容很多,包括编码规约.工程结构.MySQL数据库.异常日志.安全规约.单元测试等6大部分.其中工程结构部分在整体上对项目进行了把控,编码规约和MySQL设计规约中有非常多的"最佳实践",个人认为是最为有价值的部分.次重点安全规约很符合互联网场…
 在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器.这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口.编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行.在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode)(class文件的内容),它不面向任何特定的处理器,只面向虚拟机.每一种平台的解释器是不同的,但是实现的虚拟机是相同的.Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行…
阿里巴巴技术大牛黄勇的经验分享,感觉很受用. 关于IT 职场经验 1. 把技术当成工具 技术这东西,其实一点都不神秘,它只不过是一个工具,用这个工具可以帮助我们解决实际问题,就这么简单. 我们每天在面对技术,市面上也有很多技术,真的没有必要把这些技术都拿过来学习一遍,然后想办法找个场景去应用它.如果真的这样做了,那么只能说明技术不是工具,而是玩具,技术不是这样玩的. 我们应该从另一个角度来看待技术,不妨从自己的实际工作环境出发,现在需要什么,我们就学什么,而不要漫无目的的追求一些新技术.当然,对…