跳槽不算频繁,但参加过不少面试(电话面试.face to face 面试),面过大 / 小公司.互联网 / 传统软件公司,面糊过(眼高手低,缺乏实战经验,挂掉),也面过人,所幸未因失败而气馁,在此过程中不断查缺补漏,养成了踏实.追本溯源.持续改进的习惯,特此将自己经历过.构思过的一些面试题记录下来,如果答案有问题,欢迎拍砖讨论,希望能对找工作或者感兴趣的同学有所帮助,陆续整理中. 1. synchronized 和 reentrantlock 异同 相同点 都实现了多线程同步和内存可见性语义 都…
跳槽不算频繁,但参加过不少面试(电话面试.face to face面试),面过大/小公司.互联网/传统软件公司,面糊过(眼高手低,缺乏实战经验,挂掉),也面过人,所幸未因失败而气馁,在此过程中不断查缺补漏,养成了踏实.追本溯源.持续改进的习惯,特此将自己经历过.构思过的一些面试题记录下来,如果答案有问题,欢迎拍砖讨论,希望能对找工作或者感兴趣的同学有所帮助,陆续整理中. 1. synchronized和reentrantlock异同 相同点 都实现了多线程同步和内存可见性语义 都是可重入锁 不同…
本文由尚学堂学员们根据自己参加过的面试回忆.总结而成,一线互联网企业常见的14个Java面试题,包括各大互联网企业.创业小公司,互联网企业.传统软件公司.对于刚毕业和想要跳槽的宝宝们,再适用不过啦,赶紧拿起小本本记下来,下次面试就可以用上啦~ 01.synchronized和reentrantlock异同   相同点 都实现了多线程同步和内存可见性语义 都是可重入锁 不同点 实现机制不同 synchronized通过java对象头锁标记和Monitor对象实现 reentrantlock通过CA…
1. synchronized和reentrantlock异同 相同点 都实现了多线程同步和内存可见性语义 都是可重入锁 不同点 实现机制不同 synchronized通过java对象头锁标记和Monitor对象实现 reentrantlock通过CAS.ASQ(AbstractQueuedSynchronizer)和locksupport(用于阻塞和解除阻塞)实现 synchronized依赖jvm内存模型保证包含共享变量的多线程内存可见性 reentrantlock通过ASQ的volatil…
上周看了西乔的博客“西乔的九卦”.<神秘的程序员们>系列漫画感觉很喜欢,很搞笑.这些漫画经常出现在CSDN“程序员”杂志末页的,以前也看过一些. 后来就想下载下来,但是一张一张的点击右键“另存为”,还有很多时候要点击“下一页,”确实让人淡疼.就想着写个程序搞定,自认确实水平一般,查阅了很多资料后,终于搞定... 大体的下载过程就是从网页url不断获取html源码的字符串,遇到图片地址,就下载,遇到下一页的地址,就修改原来的url为下一页的url,然后重复上一过程. 1.下载网络图片 首先要解决…
前路漫漫,吾将上下而求索! 最近有时在知乎上逛逛,发现很多人对自学编程及转行程序员有困惑.我是在25岁读研时转程序员,正赶上好时候(中国云计算刚刚起步及移动互联网正红的阶段),同时又走了不少弯路,因此,基于自己的开发经历及思考认识(目前有八年 Java 开发经验),希望能够给后来者一些建议和参考. 本文主要面向编程初学者.大学生.初中级工程师(三年以下). 为什么要学编程 编程能够有力地锻炼人的逻辑思维能力,而逻辑思考是理性思考和决策的必要件,也是思考任何问题所不可或缺的基本思维能力; 编程是一…
转自:http://www.douban.com/group/topic/50353428/ 基础篇 ·Java核心技术 卷1 基础知识(原书第9版)最新版·中文版 第13届Jolt生产效率大奖获奖图书.Java领域最有影响力和价值的著作之一,与<Java编程思想>齐名的Java图书泰山北斗,案头查阅工具书的最佳选择.   ·Java语言程序设计·基础篇(原书第8版) java语言经典教材,入门必读.   ·Java编程思想 (原书第4版) 全球程序员广泛赞誉!全球程序员必备图书!第9届Jol…
IT行业一直是就业的热门岗位,程序员这个职业稳定性和收入比都有着不错的前景,那么学Java的前景和就业是什么样的呢?随着入行Java的准程序员越来越多,各种学习Java的流派也层出不穷!其实在编程的世界里,Java一直是企业级别开发最喜欢选择的编程语言,从java目前的就业形势来看还是相当不错的,由于手机安卓开发的需要,许多人也开始转战Java的学习. ​ 从各种大型用人机构分析来说,银行.证券等等金融行业,阿里.京东等电商行业,移动.电信等通信行业,电.水.能源等公共服务行业,政府的电子政务,…
程序员的三个阶段(转载) 第一阶段:三年 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人. 这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发. 我们知道如何团队协作.如何使用项目管理工具.项目版本如何控制.我们写的代码如何测试如何在线上运行等等,积累了一定的开发经验,也对代码有了一定深入的认识,是一个比较纯粹的Coder的阶段. 第二阶段:五年 五年又是区分程序员的第二个门槛.有些人在三年里,除了完成工作,在空余时间基本不会研…
跳槽不算频繁,但参加过不少面试(电话面试.face to face面试),面过大/小公司.互联网/传统软件公司,面糊过(眼高手低,缺乏实战经验,挂掉),也面过人,所幸未因失败而气馁,在此过程中不断查缺补漏,养成了踏实.追本溯源.持续改进的习惯,特此将自己经历过.构思过的一些面试题记录下来,如果答案有问题,欢迎拍砖讨论,希望能对找工作或者感兴趣的同学有所帮助,陆续整理中. 一. synchronized和reentrantlock异同 相同点 都实现了多线程同步和内存可见性语义 都是可重入锁 不同…