美文网首页
面试流水(一)

面试流水(一)

作者: 红烧鸡翅膀_我喜欢吃 | 来源:发表于2020-02-21 16:36 被阅读0次

一、==和equals的区别

1、==可以用于值比较和对象比较,后者只能用于对象比较

2、对象进行比较时:二者都是比较引用地址,但实际开发中比较引用地址一般没有什么卵用,所以会重写。==不能重写,equals可以重新,一般会重写这个方法用来比较两个对象的值是否相等。

3、String,Date这种是系统重写过的,比较值。

4、5个特性

(1)自反性:x.equals(x)必须返回true。

(2)对称性:x.equals(y)与y.equals(x)的返回值必须相等。

(3)传递性:x.equals(y)为true,y.equals(z)也为true,那么x.equals(z)必须为true。

(4)一致性:如果对象x和y在equals()中使用的信息都没有改变,那么x.equals(y)值始终不变。

(5)非null:x不是null,y为null,则x.equals(y)必须为false。

5、要判断两对象是否相等,必须通过equals方法,equals相等,hashcode一定相等

二、hashcode方法

1、public native int hashCode();Object本身的方法,本地方法,实际返回内存地址

2、在JVM中,加载的对象在内存中包括三部分:对象头、实例数据、填充。其中,对象头包括指向对象所属类型的指针和MarkWord,而MarkWord中除了包含对象的GC分代年龄信息、加锁状态信息外,还包括了对象的hashcode;对象实例数据是对象真正存储的有效信息;填充部分仅起到占位符的作用, 原因是HotSpot要求对象起始地址必须是8字节的整数倍。

内存中的对象=对象头+实例数据+填充位(补充到8字节的整数倍)

对象头=对象类型的指针(指向元数据去的类数据)+MarkWord

MarkWord=GC分代年龄信息+加锁状态信息+HASHCODE

3、String的实现

选用31质数来减少哈希冲突,且31较小(11111)

31计算方便,左移5为减1(2^5-1)

三、hashmap头插和尾插?

jdk1.8之前是插入头部的,在jdk1.8中是插入尾部的

https://www.jianshu.com/p/0df1f25139e4

四、线上问题查询

1、CPU很高

可以用top命令找pid

a.可能是频繁的GC

b.可能是循环计算

2、OOM

发生OOM问题一般服务都会crash,业务日志会有OutOfMemoryError。OOM一般都是出现了内存泄露,须要查看OOM时候的jvm堆的快照,结合MAT,能够对dump文件进行分析。查找出发生OOM的原因.

dump内存方法

a、假设配置了-XX:+HeapDumpOnOutOfMemoryError, 在发生OOM的时候会在-XX:HeapDumpPath生成堆的dump文件。

b、手动 jmap ----------- jmap -dump:format=b,file=file_name pid

3、线程block、线程数暴涨

jstack -l pid |wc -l

jstack -l pid |grep "BLOCKED"|wc -l

jstack -l pid |grep "Waiting on condition"|wc -l

线程block问题通常是等待io、等待网络、等待监视器锁等造成,可能会导致请求超时、造成造成线程数暴涨导致系统502等。

假设出现这样的问题,主要是关注jstack 出来的BLOCKED、Waiting on condition、Waiting on monitor entry等状态信息。

参考 https://www.cnblogs.com/mfmdaoyou/p/7349117.html

五、事务相关

可重复读的问题

A事务执行先读操作1,读到X=1,B事务更新X=2,A依然读取之前的版本,这时候A设置X=3,其实A是没法设置的,因为B还未提交未释放行锁,所以问法有问题。

六、数据库

mysql底层数据结构、es底层数据结构(term),mysql引擎类型,二者区别(支持事务方面、存储方面、范围查询方面、全文搜索方面(myisam支持))

七、算法

1、快排,复杂度(log2 n~n^2)如何避免出现n^2(随机找一个数,不找第一个)

2、找一个数组(n个)中第K大的值,复杂度kn

3、插入排序,复杂度O (n^2),发扑克。

八、其他

1、hbase与mysql区别

a、hbase天然分布式,mysq适合l单点撑

------------------------------------------------

相关文章

  • 面试流水(一)

    一、==和equals的区别 1、==可以用于值比较和对象比较,后者只能用于对象比较 2、对象进行比较时:二者都是...

  • 面试流水[2017.05.04]

    今天去参加了5个公司的产品经理面试,有2个当场给了offer,还有3个需要复试,很感谢今天给我offer的公司! ...

  • 面试流水(二)

    arraylist和hashmap容易混淆的点 初始化 arraylist初始化默认容量是10,扩容条件是放不下才...

  • 面试流水线

    “什么学历?” “高中。” “要试试仓库管理员吗,现在只有这个岗位还缺男工。” “...

  • 流水--2016.12.28 UE面试

    今天早晨起来在网上投了两份简历,中午就收到了面试邀约,下午去参加了面试。这是个规模相对比较大的金融公司,最近成立了...

  • 面试【流水账】

    上午面试的时候雨很大,鞋淋湿了,很难受。得坚持到所有面试结束才能回家。 高德地图呀,有时候真不靠谱,总是乱指路。早...

  • Day 3

    流水 早晨起床面试,玖富,金融公司。中午吃地铁站附近的麦当劳,睡觉。晚上出去溜达,外卖。 面试 玖富一面。胖胖的面...

  • 201541516面试流水账

    最近没去面试,整体面试感觉都不太好,整理一下之前一点纪录。 早上那家快快租车,又是技术总监面试,然后他很忙,然后又...

  • 201541314面试流水账

    以下都是按照经验三年随机投递,没有按照薪水级别投递挺坑爹。 昨天下午面试了一家公司。名字好邪恶做播种网,看到招移动...

  • 【一旸的面试流水账】搜狐

    一面 1.项目 1.1 对TT的实习项目问得很详细,包括逻辑、所涉及公式 1)项目流程图 2)Tf-idf 公式 ...

网友评论

      本文标题:面试流水(一)

      本文链接:https://www.haomeiwen.com/subject/gcoqqhtx.html