第一次面试经历(全程尴尬)

记第一次面试经历

本人今年22。大专学历在上海北大青鸟刚培训完Java学士后课程,今天接到了学校推荐就业的一个面试机会,一个子公司名字就不说了,约的两点面试一点四十到的在门口看了一下环境很安静大概有十几个人在敲代码,人数不多但是环境不错今天下午面试两个人我跟一个同学所以我是后面试的大概是二点四十开始轮到我面试,面试官看着很让人放松但是问的问题让我却是有点伤。
面试官的第一个问题

两个对象值相同(x.equals(y) == true),但却可有不同的hashcode,这句话对不对?

这句话一般的答案是不对,但是由于equals方法可以被重写所以如果此对象重写了equals方法,那么可能出现这两个对象的equals相同,而hashcode不同。
如果此对象继承Object,没有重写equals方法,那么就使用Object的equals方法,Object对象的equals方法默认是用==实现的,那么如果equals相同,hashcode一定相同。
我面试题上面写的是对的因为可以重写equals方法,然后面试官问我怎么重写equals方法代码是什么,以前没看过equals的源码惭愧,这个完全不知道怎么说所以回来找到源码看一看

1 public boolean equals(Object obj) {
2 return (this == obj);
3 }
这是回来百度才知道的,这个是Object类的equals方法

  1. String 重写了equals方法
    只要两个引用所指向的对象是两块含有一样字样的字符串的话,那么就返回true

public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}

  1. 在博客园偷来的代码片段,大佬看到别打我!在这里插入图片描述
    我说了半天没解释清楚,尴尬。现在说第二个面试问题LEFT JOIN跟RIGHT JOIN的区别,给了我一组数据让我自己用这两个后的结果给他看,这个勉强写完然后他问 使用Full outer join的效果是什么样的用一组数据表达来
    1 1
    2 2
    3 5
    4 8
    5 0
    LEFT JOIN的结果是如下
    1 1
    2 2
    3 null
    4 null
    5 5
    LEFT JOIN的结果是如下
    1 1
    2 2
    5 5
    null 8
    null 0
    Full outer join的结果是如下
    1 1
    2 2
    3 null
    4 null
    5 5
    null 8
    null 0
INNER JOIN: 如果查询的表中都有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
UNION:合并多个SELECT 语句的结果集
MySQL中没有FULL JOIN可以使用UNION
UNIONUNION ALL区别:UNION ALL会列出所有结果,有重复,UNION没有重复。

RIGHT JOIN和LEFT JOIN这两个我知道还能写出来,不过Full outer join这个我今天以前还真是不知道,所以现在记下来,第三题是用java面向对象的思想写一个遍历存储的树形结构会使用几个类里面有什么字段,写出类名和字段名,这个是真的让我一头乱麻,这个题其实也不难只要写类名跟字段名就行也不用写方法但是我不知道怎么遍历跟存储,这个我现在还没搞清楚不过找到了一篇关于数结构的文章Java中二叉树存储结构实现这个暂时还没搞清楚,这题写的一塌糊涂然后还没听清需求然后面试官说我这个人太马虎经常听不清需求沟通起来可能不方便,就让我回去了,这次面试经历让我真是头疼也不用在参加其他面试了技术能力欠缺太多,我觉得我还在多看看面试题吧。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值