A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 大蓝鲸小蟀锅 于 2017-6-3 15:43 编辑

南京许文强——带你冲锋“六朝古都”南京JavaEE市场
传智播客 . 黑马程序员“六朝古都”南京校区
                                   
                                          —— 通过面试实战让你了解JavaEE市场是多么的火热!
                                          —— 通过面试实战教你在如何在面试竞争中,脱颖而出!
前沿:南京作为长三角城市群发展中心,随着国家规划的发展,移动互联网行业在其他行业的深入渗透和互联网本身发展势头火如荼的现实背景下。传智播客.黑马程序员作为IT界老牌子,在北京,乃至全国有着良好的口碑,为继续发扬 张孝祥老师 的精神:“为莘莘学子改变命运而讲课,为千万学生少走弯路而著书”。大蓝鲸我来啦!2016年5月,传智播客.黑马程序员南京校区成立啦!。

听说阿里爸爸和京东刘大哥都来南京驻扎了,相信南京IT行业,将会更好!
市场调查表明:阿里爸爸和JD刘大哥最喜欢招——javaEE技术人才!

重点来了:
先总结下这么几次面试下来的感受:
南京IT行业的背景:
南京除了这些(华为,中兴,苏宁,途牛,烽火科技,京东等等)还有无数个IT公司,朋友们你们知道吗?南京在全国IT城市排名,除了北上广深杭,接下来就是南京了。
天时——你们的青春和我们良好的平台 地利——良好的就业环境人和——奋斗的你和黑马良好的学习氛围)。
在这里和大家分享一个共识,哪类技术才是企业所需技术? 市场上有JavaEE,前端HTML5,手机应用,UI等,但是其中市场招聘比例JavaEE是占大多数的!
在这里,我有个美好的愿望:集万千才华的你,一定能找到满意的工作!

1, 先了解市场行情,给出自己的市场定位
了解你所找工作 的一些市场行情, 这样你就知道自己的一个水平是可以拿到一个什么价位了.

因为基本上每家公司都会提前对你的期望工资有个了解, 了解当前城市市场行情对你找工作也很有帮助.

2, 对于基础知识做好充足的准备
面试之前我以为面试官更注重于你的项目使用了什么框架, 以及这些框架的原理.

但是真实的面试是面试官都很注重你对于基本知识的理解.

3, 好工作= 平台 + 薪资
当我们选择用人单位时一定要从这两个方面去衡量, 工资的多少固然重要, 但是平台对于我们自身的发展也很重要.


4, 面试过程中保持好的心态
我们面试过程会遇到各种不同风格的面试官, 我从第一场面试到最后一场面试也多多少少有些紧张, 有些问题自己是知道的, 可是当时头脑会一片空白.

在面试过程中我们需要调整好自己的心态.

No.1:江苏苏微软件技术有限公司 ->外派至南京多伦科技股份有限公司
公司地址:南京市雨花区软件大道118号新华汇B3栋5楼


面试结果:Java开发工程师,10K offer&13个月薪资.
面试过程:
这是一家外包公司, HR在招聘平台看到我的简历主动和我联系的,于是我下午就直接过去了.
首先是做了笔试题,都很简单而且很基础, 做完之后,他们这边的技术负责人跟我聊聊我做过的项目,感觉还可以,就带我去客户现场面试了。
面试的人是他们的合作方. 首先是技术一面, 面试官是个很nice的大叔(30岁左右), 主要就问了我一些项目上的东西:
Q:你们购物车模块是怎么实现的?   
A: 我从用户未登录以及登录的两种情况分析. 未登录又有两种情况, 以及我们当时是如何考虑, 选择哪一种方案的角度去给他说, 然后又具体的说了购物车的原理, 其中提到这个地方会使用到Redis.
Q: Redis使用的场景及好处是什么?
A: 我给他详细的说了我们在项目中的哪些地方会使用到Redis, 以及Redis相比于传统的关系型数据库的优点, 然后就是Redis在我们项目中是如何使用的, 包括如何去操作Redis.
Q: 你们项目中使用的Nginx集群是如何搭建的? 它是如何做到负载均衡的? 
A: 这个问题我就先从为何要使用Nginx来说起, 然后讲了什么叫Nginx反向代理, 接着讲了如何搭建Nginx集群, 以及我在项目中关于这块的职责.
Q:你们这个Dubbo是做什么使用的?
A: 关于这一块我首先说了我们的项目是由多个子系统构建的, 然后说我们系统中的一些调用需要使用到Dubbo, 最后对比了Dubbo与WebService的区别.
Q:面试官问我是否了解集合的一些类? 
A:我说我看过一点HashMap的源码, 然后讲了HashMap中的数组和链表结构, 以及HashMap是如何自动扩容的, 以及扩容带来的好处(空间换时间), 然后就是put/get是如何实现的等.
问到这里面试官就没有再问我具体的技术问题了, 于是便开始扯起了家常, 问我是哪里人, 哪个学校毕业的, 然后让我问他一些问题:
首先我问了他们项目是具体做什么的, 然后针对于他说的内容又问了他们主要使用了什么框架, 再就是问了项目的人员组成结构. 这里面问了好几个问题, 最后还是聊得很融洽
就这样一面就过了, 然后就是二面.
二面是个待了十几年的项目组大牛, 二面的话基本没有问太多的技术问题, 基本上就是聊一聊我在上个公司做的东西, 以及为什么要辞职, 以及我的一些价值观的东西, 聊了半个小时之后 就基本上结束了,他让我等一下,大概对我比较满意吧,跟苏微的人事商量了下,决定要我这个人了,然后苏微的人事就直接跟我谈工资,确认offer了。这一家的面试还算挺轻松。
(在这里要着重强调一点: 想好离职理由, 这一点真的很重要, 很多公司也是比较看重这个的.)
Q:怎么离职了啊?
PS:这里跟大家说一下,每个人结合自身的情况说一些比较实际的流程,比如,个人发展,为了家人等等,反正说的合情合理即可(不要说的自己都很难相信)。
A:我是说个人发展和未来的生活(离家近,再说南京的软件行业在全国也挺好的)。
面试结果,如下图:


No.2:南京慧明软件技术有限公司
公司地址:雨花台区宁双路28号汇智大厦A区十二层(离地铁口贼近--一号线 天隆寺)
面试结果:Java开发工程师,9.5K offer&13个月薪资.
                                                               

面试过程:
一面: 人事面
这里和我之前面的两家公司不同, 第一轮是人事面, 问的问题就是为何辞职, 问了自己的人生规划, 问了自己的价值观的一些东西, 聊得还挺融洽, 紧接着就是二面了.
二面: 技术一面
面试官确实让我感觉到是个大牛, 他并没有看我的简历, 只是针对于我的工作经验来问了我三个题.
Q:你做一个自我介绍吧?
PS旁白:又是自我介绍。心想,又要自然优雅地背一遍的惨痛的人生史了。这里大家自由发挥,合情合理即可!

A:你们懂得。
Q:我们服务器在启动的时候 一瞬间有1000个访问, 那么如果使用一个HashMap去存储的话  你会设置初始值为多大?
A:其实这个问题我并没有正面的去回答设置多大的初始值, 我给他说了一下HashMap扩容的原理, 并说到了HashMap的阀值是和初始值大小和加载因子相关的, 然后说道要权衡空间复杂度和时间复杂度的情况. 感觉他对这个问题的回答还是比较满意的.
Q:我们是有700W的日活, 如果有一个方法的参数是(String cityCode)查询的话, 怎么去保证同步?
A:我说的是加synchronize或者加Lock, 接着他就问我这两种的区别, 问他们的性能哪个好. 然后我说在这个案例里面我们可以加Lock, 然后他就问我怎么加Lock去控制颗粒度来达到最好的效果?到了这里我真的是不知道了, 因为压根就不太了解Lock的机制, 但是他说没关系, 然后想一下怎么去做, 还提示我这个可以引用HashMap的设计思想.最后我想的就是这里对cityCode进行分组, 通过组去定位具体要查询的cityCode的位置. 对于这个答案他听后 觉得是可以提升一些性能, 但仍不是最好的. 最后的话给我说了下hash碰撞, 通过hash值取模来去颗粒度更精细, 其实这里我知道hashmap中也是通过hash值去定位数组的位置的. 这个问题就到这里了.
我自己又找了下HahMap中关于hashcode定位桶的位置的方法:

三面: 技术二面
二面的面试官是一个很风趣的人, 这次他是对着我的简历来问一些问题, 问的问题都是延伸的问题比较多.
比如看我做过购物车模块, 就问我做没做过秒杀模块, 看我做过商品模块, 就问我对于库存了不了解.
当我说不是太了解后 就让我当场想一下应该怎样去实现,  总之面试过程还是很有意思的.
这里我感受到的就是他们的思想很新潮, 他们更注重的是一个人的可塑性, 二面也很快面完了, 感觉这次面试官对我还是比较满意的, 紧接着就是人事来进行最后的四面了.

四面: 人事二面
这里更多的就是聊了一些公司的发展, 公司的待遇 以及我离职的主要原因。这里一般都是聊这些内容, 最后我同意和他们签约, 然后下午直接给我发offer了。

本次面试结果:


No.3:南京软通动力 -> 外派至南京华为

公司地址:江宁区科学园芝兰路18号(紫金科技创业特别社区内)


面试过程:
一面: 人事面
一轮面试很多都是人事进行面试的,首先会让你进行自我介绍,大概说一下自己的工作经历,然后会问你从上家公司离职的原因,满满的都是套路
二面: 技术面
面试官
Q:简单介绍一下自己吧?
PS旁白:这个问题基本上就是开场白,其实技术面试主要还是看你的技术的

A:其实简单介绍一下自己就行了,可以把跟人事说的那一套再说一遍。
PS旁白:回答问题一定要结合自己的语言,不要跟背书似的,就像聊天一样,给人一种自信的感觉
Q:先说一下Java的八种基本数据类型?
A:java分四类八种基本数据类型,整型:byte、short、int、long;浮点型:float、double;字符型:char;逻辑性:boolean
Q:简述一下集合(重点问了ArrayListLinkedList的底层)?
A:我们常用的集合,一种是单列集合collection,collection是list和set的父接口,一种是双列集合map;list集合里面可以存储重复的元素并且元素是有序的,set集合不可以存储重复元素并且元素存储是无序的;(然后重点问了list集合)list集合有:ArrayList、Vector、LinkedList其中ArrayList和Vector在底层都是用数组来存储数据,插入时就会创造一个新数组并把数据全部转移至其内,由于数组的特性,根据索引查询数据,所以增删慢,查询快;LinkedList内部结构是双向链表,即保存一种含有前后索引的对象的引用的对象的方式,所以插入时只需要更改有限几个对象内的引用就可以了,但是如果要以索引取出对象就麻烦了。在正着顺序遍历或倒着遍历时LinkedList性能也很好,只是在随机读取(按索引读取)时损耗高,所以查询慢增删快;Vector是线程安全的,效率比较低,开发中我们常用的是ArrayList和LinkedList
Q:说一下stringstringbufferstringbuilder之间的区别?
A:String类中使用字符数组保存字符串,用“final”修饰,所以string对象是不可变的,是一个常量,是线程安全的;StringBuilder与StringBuffer两种对象都是可变的,StringBuilder并没有对方法进行加同步锁,所以线程不安全,StringBuffer线程是安全的,所以StringBuilder效率比StringBuffer高
Q:说说Struts2springmvc的区别?
A:1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。
2、由于Struts2需要针对每个request进行封装,把request,session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。
3、 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。
4、SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。
5、Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。
6、 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。
7、SpringMVC开发效率和性能高于Struts2。
Q:事务的特性以及隔离级别?
A:事务有四个特征,ACID特性:
原子性(Atomicity):即事务是数据库的不可分割单元,事务内的操作要么全部执行完成,如果有一个失败,则事务内的操作全部失败。
一致性(consistency):即事务必须使数据库从一个一致性状态变成另外一个一致性状态,原子性和一致性是密切相关的。
隔离性(isolation):即事务和事务之间没有影响关系,这个事务的执行不能被其它事务所干扰。并发执行的各个事务不能互相干扰,具有隔离性。
持久性(durability):如果事务对数据库进行了操作并进行了提交,则数据库对此的改变应该具有持久性,不能因为其它操作或者数据库的损坏而丢失数据。故事务应该具有持久性。
这是事务的四大特性,在并发情况下,事务会产生以下问题:
事务的隔离级别:
读未提交:在该隔离级别,所有事务都可以看到其它事务未提交的内容数据,此隔离级别没有解决任何并发问题,故在应用场景中不常用。
读已提交:在该隔离级别,一个事务只能读取其它事务已经提交的内容数据,此隔离级别解决了脏读,但没有解决不可重复读和幻读,是ORACLE的默认隔离级别。
可重复读:在该隔离级别,能保证一个事务之间的多个实例在并发能读取同一数据,此隔离级别解决了脏读和不可重复读,是MYSQL的默认级别。
串行化:这是最高的隔离级别,在此隔离级别,事务事务之间只能顺序执行,使之没有任何冲突,也就 是从而解决了脏读,不可重复读和幻读,此隔离级别效率较慢,并且有较多的超时现象。
隔离级别越高,越能保证数据的完整性和一致性,但是对并发的效率就越低。一般情况下,采用读已提交或者可重复读,它能够有效避免脏读和不可重复读。
Q:spring的依赖注入和事务管理
A:Spring是一个IOC容器,这种特性实现了类之间的关系松耦合。一个对象依赖其他对象会通过被动的方式传递过来,而不是主动的创建或者查找,Spring中实现依赖注入的方式有接口注入、Set方法注入、构造器注入;
spring提供了几个关于事务处理的类:
TransactionDefinition //事务属性定义
TranscationStatus //代表了当前的事务,可以提交,回滚。
PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其下有一个实现的抽象类AbstractPlatformTransactionManager,我们使用的事务管理类例如DataSourceTransactionManager等都是这个类的子类。spring提供的事务管理可以分为两类:编程式的和声明式的,
1.声明式事务配置
     1>配置sessionFactory
     2>配置事务管理器
     3>配置事务特性
     4>配置哪些类的哪些方法配置事务
2.编程式事务配置
     1>定义事务管理器
     2>定义事务管理器的模板
Q:介绍一下你们的项目以及你在里面担任一个什么样的角色
A:对整个项目的流程一定要熟悉,然后可以说一下自己负责的哪些模块,用了哪些技术等等。
PS:面试官会问你的项目上线了没有,我直接说项目已经开发完了,还处于测试阶段,应该还没有上线,大多数面试官都会在结尾问一句你有没有什么问题想问的,这个最好找几个问题问问他,比如:公司现在做的项目啊,用了哪些技术等等

三面: 人事二面
这里主要就是问你的薪资要求以及公司待遇,能接受的最低薪资、试用期是否能接受打折、最快入职时间,如果随时到岗,最多一两天就会发offer
本次面试结果:


薪资重点
这里统一说一下,基本上每家公司都要谈的。
怎么谈工资才是关键?经验如下:
1。看你投简历的时候,这家公司写的是面议还是写了具体的范围数字。例如:8000-12000.
       1.1,面议的话,你就根据自身面试的情况来要,比如,南京市场价是8000,面试过程,自我感觉良好要就加1K到2K,如果你被虐了,就市场价。
       1.2,写了具体的范围:他被你虐了,要最高价的减1K到2K。如果你被
虐了,那么最低价或者最低价再减1K(不要低于市场价太多)
       最终(主要看你个人是否想进入这家公司的意愿,有的公司真的很有技术积累和发展前景,例如做VR开发,有前景的等等,虽然工资可能低点,但是能去,眼光放远点)。
2。有时候,你和技术主管把工资谈好后,例如10000。但是发offer的时候,人事会给你打电话,说我们经过商量认为只能提供9000的待遇。你会来我们公司吗?这个时候你要hold住,不能妥协。
PS;这个时候,你不要心急。这99%是人事在卡你的工资而非技术主管的意思。这个时候你要绷住。你想人家技术主管都同意了,怎么会改呢?肯定是人事做的。你只要回答。低于约定的工资不去就行啦!她肯定按原来的定的工资给你发offer的。




3 个回复

倒序浏览
老师可以的,666666。我想问一下,之前没有过开发经验,也不是计算机专业的,只是在黑马学习六个月,面试时候怎么办啊?完全没底气。
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
黑马王大锤 发表于 2017-6-1 12:26
老师可以的,666666。我想问一下,之前没有过开发经验,也不是计算机专业的,只是在黑马学习六个月,面试时 ...

那是你因为没有技术,等你有技术了,有能力。你对自己有信心了,我们也会帮助你就业的,这么多学生,你又不是第一个,你应该自相信是只要自己努力,就不会比别人差。这么多IT从业者,难道都是天才???
回复 使用道具 举报

回帖奖励 +5

厉害!归根结底还是要把知识学扎实,有技术有能力自然面试有自信!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马