最近正在找工作,遇到一些面试题, 和大家分享下
1. hashCode()方法有什么作用?
我的回答是判断两个对象是否相等。但是综合了网上的观点,不太完全。
Object的equals方法是判断两个引用是否指向同一个对象,源码如下
public boolean equals(Object obj){
return (this == obj)
}
hashCode返回对象的hash value,
2. 现需要查询一些数据, 需要连接3张表进行查询, 通常有两种实现方式:
第一: 直接写一个连接3张表查询的SQL, 如
SELECT * FROM t1 JOIN t2 ON (...) JOIN t3 ON (...);
第二: 写3个SQL语句, 分别将3张表的数据查询出来, 然后用Java代码通过迭代来筛选需要的数据
问题: 比较这两种方式的优缺点
这个问题当时直接蒙了, 回来的路上, 我想到了一点:
用第一种方式, 最坏的情况是性能比较低,查询速度比较慢,但是不会造成JVM崩溃问题。
用第二种方式, 最坏的情况如果3张表中如果有数据量很大的表, 那么直接查询出来可能造成JVM崩溃, 内存溢出。
所以用第二种方式绝对要慎用。
3. JVM的参数怎么调整? 例如如垃圾回收策略参数