作者:tony carson
链接:https://www.zhihu.com/question/39890405/answer/94373233
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://www.zhihu.com/question/39890405/answer/94373233
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
坐标北京刚刚面试了几家公司,要求都是17k左右,拿到两个offer,谈谈体会,建议学习的时候又一个精简的笔记,是概括的过程,复习的过程,心得的过程
1)thinking in java 4 看完90%,仔细看了其中85%的代码例子,手动运行了30%的代码。 复习的话一周到两周。有些部分如讲回字的四种写法的可以不看,当然这部分小于10%,多线程,内部类,io,集合框架,反射是重点
2)effective java 这本书很好,看了这本书才能理解为啥需要设计模式,这本书不厚,大约需要1周左右看完90%
3)java与模式,这本书需要反复体会,一般达到面试的要求1周左右就可以,类与类的关系;设计模式总的原则;创建,结构,行为,每种会5-7个模式即可
4)sql 基础,深入浅出mysql, 这部分一周吧,要了解数据库的三个设计范式,四种隔离级别,jdbc的主要操作,mysql的索引。
5)ssh 部分,spring 结合那个随着安装包的reference看最好,因为版本变动的原因,有些书籍讲的可能落伍了,当然不用全看,因为短时间内也看不完,ioc,bean的作用域,完整的生命周期,beanpostprocessor, aop, spring mvc,web service,jax-ws,spring mvc的各种注解,DispatchServlet,HandlerMapping,ViewResovler,Interceptor,事务
6) linux 基础命令 1到两天,最好自己安装个虚拟机,敲一下
7)redis 这个一到两天吧,就string,map,set, list,sorted set 5种,一般问和memecache 有啥区别,问问内存申请,分配啥的,java一般用jedis.
8) hibernate,mybatis 各两到三天吧,结合spring mvc 用或者不用maven自己配一下,自己用mysql 做一个小的demo,如果你能知道性能,缓存,那就nb了,反正我现在还不怎么懂,现在一般用mybatis,mybatis3学起来快,我看了3天吧每天3个小时,我学得慢
9)深入java虚拟机,建议大概看看,一周吧,了解一下方法区和堆,class文件加载的机制,内存溢出和泄露的情况,快的话两个小时,当然想成为大牛必须深入了解。我是不怎么了解的。
10)大一点的公司一般用soa,主流是阿里公司的dubbo协议,这个原理可能有点复杂,我也不是很清楚,用起来似乎挺简单的。
11) mq,或者active mq 大概看个两三天,略微了解一下。
12)js ,jquery,json,http协议,这方面了解一些即可,一般面试不问,入职后能参与项目就行。一般是json和java对象的互相转换,用fastjson或者jackson,能用jquery操作dom,js的表单提交校验等。
13)会使用eclispe ,idea,maven,我觉得各一天就行
1)thinking in java 4 看完90%,仔细看了其中85%的代码例子,手动运行了30%的代码。 复习的话一周到两周。有些部分如讲回字的四种写法的可以不看,当然这部分小于10%,多线程,内部类,io,集合框架,反射是重点
2)effective java 这本书很好,看了这本书才能理解为啥需要设计模式,这本书不厚,大约需要1周左右看完90%
3)java与模式,这本书需要反复体会,一般达到面试的要求1周左右就可以,类与类的关系;设计模式总的原则;创建,结构,行为,每种会5-7个模式即可
4)sql 基础,深入浅出mysql, 这部分一周吧,要了解数据库的三个设计范式,四种隔离级别,jdbc的主要操作,mysql的索引。
5)ssh 部分,spring 结合那个随着安装包的reference看最好,因为版本变动的原因,有些书籍讲的可能落伍了,当然不用全看,因为短时间内也看不完,ioc,bean的作用域,完整的生命周期,beanpostprocessor, aop, spring mvc,web service,jax-ws,spring mvc的各种注解,DispatchServlet,HandlerMapping,ViewResovler,Interceptor,事务
6) linux 基础命令 1到两天,最好自己安装个虚拟机,敲一下
7)redis 这个一到两天吧,就string,map,set, list,sorted set 5种,一般问和memecache 有啥区别,问问内存申请,分配啥的,java一般用jedis.
8) hibernate,mybatis 各两到三天吧,结合spring mvc 用或者不用maven自己配一下,自己用mysql 做一个小的demo,如果你能知道性能,缓存,那就nb了,反正我现在还不怎么懂,现在一般用mybatis,mybatis3学起来快,我看了3天吧每天3个小时,我学得慢
9)深入java虚拟机,建议大概看看,一周吧,了解一下方法区和堆,class文件加载的机制,内存溢出和泄露的情况,快的话两个小时,当然想成为大牛必须深入了解。我是不怎么了解的。
10)大一点的公司一般用soa,主流是阿里公司的dubbo协议,这个原理可能有点复杂,我也不是很清楚,用起来似乎挺简单的。
11) mq,或者active mq 大概看个两三天,略微了解一下。
12)js ,jquery,json,http协议,这方面了解一些即可,一般面试不问,入职后能参与项目就行。一般是json和java对象的互相转换,用fastjson或者jackson,能用jquery操作dom,js的表单提交校验等。
13)会使用eclispe ,idea,maven,我觉得各一天就行
如果刚毕业就有人告诉我这些该多好,我毕业好多年了,走了好多弯路,在不重视技术的行业软件公司浪费了好几年,又做了好几年测试,
现在准备了一段时间只会这些,不过还好,有offer
回忆几个面试过程中印象深的问题吧。
a)二叉树的深度周游和广度周游,当时深度周游还好,广度周游就是想不起来。后来回来一看,不就队列吗!
b)linux 上有个文本文件,一列是姓名,另一列分数,假设有很多行,如何排序,当时我也不会啊,回来一查不就是 sort –t -k -n -r 嘛,这有啥啊
c)看我简历上写了熟悉tcp ip协议,就问我tcp为什么比udp可靠,我说长链接,三次握手,再问三次握手的过程,我说不知道,到写本文时也不知道
d)java内存模型,虚拟机优化问过几次,答主真是不怎么知道啊。
e)在某大型网站的主页上挂个投票功能,怎么设计? 我还是不知道,随便说了说,当然就没戏了
f)还有人问我n+1什么时候小于n, 我说不可能啊,他说再想想,我一想,不就是整型溢出的时候嘛,补码表示,这问题真是
g)还是上边那个问题的面试官,问我如果java的List<Integer> 中存放了好多不同的整数,假如有几百个元素吧,我想把其中是某个值的比如7的都删除,怎么做?我说 ,直接调用remove 方法啊,有个remove(Object) 的方法的,他说没有的,删不了。 我当时说肯定可以。回来一查jdk文档。 我很无语
当然,如果list很长,7如果出现次数过多,这么删是有个性能问题,但这面试官总不能胡说八道吧,
当时这是家很小很小的公司,后来一听名字小的公司,再不去面试了。
现在准备了一段时间只会这些,不过还好,有offer
回忆几个面试过程中印象深的问题吧。
a)二叉树的深度周游和广度周游,当时深度周游还好,广度周游就是想不起来。后来回来一看,不就队列吗!
b)linux 上有个文本文件,一列是姓名,另一列分数,假设有很多行,如何排序,当时我也不会啊,回来一查不就是 sort –t -k -n -r 嘛,这有啥啊
c)看我简历上写了熟悉tcp ip协议,就问我tcp为什么比udp可靠,我说长链接,三次握手,再问三次握手的过程,我说不知道,到写本文时也不知道
d)java内存模型,虚拟机优化问过几次,答主真是不怎么知道啊。
e)在某大型网站的主页上挂个投票功能,怎么设计? 我还是不知道,随便说了说,当然就没戏了
f)还有人问我n+1什么时候小于n, 我说不可能啊,他说再想想,我一想,不就是整型溢出的时候嘛,补码表示,这问题真是
g)还是上边那个问题的面试官,问我如果java的List<Integer> 中存放了好多不同的整数,假如有几百个元素吧,我想把其中是某个值的比如7的都删除,怎么做?我说 ,直接调用remove 方法啊,有个remove(Object) 的方法的,他说没有的,删不了。 我当时说肯定可以。回来一查jdk文档。 我很无语
当然,如果list很长,7如果出现次数过多,这么删是有个性能问题,但这面试官总不能胡说八道吧,
当时这是家很小很小的公司,后来一听名字小的公司,再不去面试了。