去某某-JAVA开发面试
2016-05-18 22:24
381 查看
去某某-JAVA开发面试
今天到去哪儿面试JAVA开发,两面技术面、最后HR面,拿到Offer。记录一下面试过程和遇到的问题。预约的上午十点面试,到达前台后,领了一张表格填了下个人基本信息、期望薪资等。
一面
一面的面试官名字听着耳熟,他是三年前从我目前所在公司离职的,而且离职前跟我同部门,简直太巧了。我入职后不久他就离职了,当时我们基本没有交集,所以对他没有太深的印象了。一面是技术面,主要考察JAVA基础知识、JAVA集合框架、数据库索引、多线程方面的知识.
int 和 Integer 的区别及通过“==”操作符 和equals 方法比较进行相等比较时的区别。
Object 对象中equals( ) 方法和 hash( ) 方法的作用。
Array 和 ArrayList的区别。
HashMap 的实现原理
如何实现固定数量线程的线程池。
sleep和wait的区别。
数据库索引最左原则。
SQL中使用 >=、like、in 等作为过滤条件操作符时,是否会使用索引。
熟悉或知道的开源框架有哪些?
内存回收,哪些是根节点的集合。
类加载器中loadClass 和findClass的区别?
Spring 框架中注解相比于xml配置方式的优点在哪里?
进程和线程的区别。
执行任务过程中如何确定需开启的线程数量?
static关键字的作用。
抽象类和接口的区别。
Spring AOP的实现原理。
对RPC框架是否了解?
二面
二面也是技术面,面试官比较严肃,主要考察的也是JAVA基础、内存回收等。有三个线程A、B、C,线程A、B相互独立,线程C要用到线程A、B的执行结果,怎样能使得线程A、B并发执行,A、B结束后再开始执行线程C?
Object类中都有哪些方法,它们的作用分别是?
如果把自定义的类放到java.lang 包下,会发生什么情况?
内存回收。
若一个进程长期执行,突然其CPU占用率过高,该怎么办?
如何有效应对高并发的问题?
如果重写一个类的hashCode方法,方法返回一个固定的常量,会发生什么样的情况?
三面-HR面
HR貌似对我目前的单位很熟悉,谈话的气氛很轻松。做一下自我介绍。
业余时间喜欢看什么书籍?
了解哪些开源的框架,说一个开源框架中你觉得代码写的比较好,值得借鉴的地方
你自己的写的代码中有没有什么你觉得特别有意思,可以分享一下的。
为什么从目前的单位离职?
如果被录用的话,大概多久能过来入职?
整个面试耗时约1个小时,上午11点左右结束面试。下午两点接到HR的电话,告诉拿到Offer了,薪资是按照我填写的下限给的,并且催促我两周之内入职。
总结
现在参加面试已经不会感觉紧张了,整个过程中心态比较平稳。有进步,值得鼓励。期望薪资写低了,以后要注意。
下午接到HR电话的时候有点小激动,忘了跟她讨价还价了,应该可以争取一下。
不管接受这个Offer与否,我都是要离开毕业后第一家、工作了三年的公司了。
面试问题解答
int 和 Integer 的区别及通过“==”操作符 和equals 方法比较进行相等比较时的区别。int 是JAVA基本类型之一, Integer 是int的包装类是对象。
public void IntegerCompare(){ Integer a = new Integer(50); Integer b = new Integer(50); Integer c = 50; Integer d = 50; Integer e = 500; Integer f = 500; int g=50; System.out.println("a==b :" + (a==b)); System.out.println("a.equals(b) :" + (a.equals(b))); System.out.println("a==g :" +(a==g)); System.out.println("a==c :"+(a==c)); System.out.println("c==d :"+(c==d)); System.out.println("e==f :"+(e==f)); }
函数执行后输出结果为:
a==b :false a.equals(b) :true a==g :true a==c :false c==d :true e==f :false
使用“==”进行比较时,比较的是栈里的值,变量a、b保存的是堆中两个不同对象的地址,因此 a==b 结果为false;
a.equals(b) 比较的是a、b两个对象中的值,因此结果为true;
变量g是基本类型,a==g 进行比较时,会调用intValue()对a进行自动拆,得到int类型的值然后与g进行比较;
通过Integer c=50; 这种方式定义的变量比较特殊。c==d 的结果为true,但 e==f的结果为false。
执行 Integer c =50; 语句时会调用以下函数返回一个Integer类型的对象,其中IntegerCache.low = -128、IntegerCache.high=127。
public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
当参数i的值-128<=i<=127时,返回缓存的对象,否则创建一个新的对象并返回。
c==d进行比较时,c和d指向的是同一个Integer对象,因此结果为true;
e==f进行比较时,e和f指向的是两个不同的对象,因此结果为false;
Object 对象中equals( ) 方法和 hashCode( ) 方法的作用。
hashCode( )函数会返回一个整形的hash值。
以下是hashCode的官方协定:
在java程序一次运行过程中,多次调用一个对象的hashCode( )时,必须返回相同的值,前提是对象的equals()方法没有被修改;
若两个对象通过equals方法比较的结果为相等,则它们的hashCode( )返回值必须相同.
重写equals( )方法时通常有必要重写hashCode( )方法,以维护hashCode协定。
相关文章推荐
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- C#常见算法面试题小结
- php 面试碰到过的问题 在此做下记录
- asp.net 面试+笔试题目第1/2页
- asp.net 面试 笔试题目[附答案]第1/3页
- Python爬虫工程师面试问题总结
- 谈谈最近深圳找工作经历
- 面试:(设计,架构)
- 面试总结(php)
- PHP中级面试经历
- 戴维营教育2015年iOS暑期班笔试面试基础考核题
- 一次有意思的面试
- 程序员编程面试取胜的8个技巧
- PHP相关面试中最经常涉及的12个问题
- 产品经理到底该如何自我介绍?
- 产品经理面试过程中如何回答比较宽泛的问题?
- 阿里资深HR教你一分钟叩开阿里巴巴大门
- [转]为什么面试官很少向求职者解释原因