前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试java_后端面经_5

面试java_后端面经_5

作者头像
用户6055494
发布2019-08-20 15:13:13
4220
发布2019-08-20 15:13:13
举报
文章被收录于专栏:AVAJAVAJ

小姐姐:为什么有很多人在感情中付出很多,却得不到想要的结果?

你答:我听过一个这样的故事:讲的是蚯蚓一家人,有一天,蚯蚓爸爸特别无聊,就把自己切成了俩段愉快的打羽毛球去了,蚯蚓妈妈见状,把自己切成了四段,打麻将去了,蚯蚓哥哥接近狂热,把自己切成很多段,结果死掉了,因为他想踢足球。蚯蚓哥哥的死震惊了整个蚯蚓界,各蚯蚓专家呼吁大家要谨慎使用自己的能力。蚯蚓哥哥的死同时对蚯蚓一家造成了不可磨灭的伤害,蚯蚓弟弟为了弥补家庭的残缺,决定把自己切成俩段。第二天蚯蚓弟弟也死掉了。你知道为什么吗?

小姐姐:嗯?不知道(如果小姐姐知道,你就夸她聪明咯)

你:因为蚯蚓弟弟是竖着切的。

这个故事告诉我们,有时候呀,我们总是在应该动脑的时候,却动了情!!!

自我介绍:( 您好(人多就说大家好),很荣幸有机会参加此次面试,希望我今天能有好的表现,现在请允许我介绍一下自己:我叫变坏,今年18岁,毕业于牛客大学软件工程专业(或者说是微信大学软件工程专业的应届生),在大学期间专业课学习了java这门编程语言,自己在网上也学习了一些相关的技术,在校期间自己也曾和同学使用java开发过一些项目,在学校也曾考取过相关的证书,获得过一些比赛的奖,大学期间还担任过课代表,由于毕业将近,本人决定踏上社会道路,因此在牛客平台看到贵公司的招聘,在此之前也曾在网上了解过贵公司(不要去问公司业务,网上都可以查的),巴拉巴拉吹一吹。从以上简单的自我介绍里,我希望公司能给我一个展示自己能力的机会)

1 多线程的几种实现方式(继承Thread类,实现Runnable接口,实现Callable接口,线程池)

2 线程join()方法(等待这个线程死亡,可以使线程之间的并行执行变成串行)

3 ArrayList的remove操作(ArrayList有俩个remove()重载方法,一个参数是int类型,另一个参数是Object类型,remove(1)是删除索引为1的元素,remove(new Integer(1))是删除元素1,底层是用equals进行比较的。)

4 HashMap为啥不安全(resize死循环,fail-fast(快速失败))

5 HashMap1.7和1.8区别(1.7数组+链表,头插入,1.8数组+链表+红黑树,尾插入。resize方法、hash计算方式、扩容后的位置计算方式等)

6 HashMap如何扩容及Put方法(看源码)

7 TreeMap(默认按照Key的字典序升序排列,底层红黑树+compareTo()方法,大致就是和根节点比较,小于根节点往左子树继续去比较,大于根节点往右子树去比较咯等等)

8 concurrentHashMap底层原理(看源码)

9 如何确保一个集合不被修改(使用Collections.unmodifiableCollection(Collection c)方法创建只读集合)

10 Iterator和ListIterator有什么区别(前者只能遍历不能修改,后者可以修改元素并且可以逆向遍历、定位当前索引位置,但后者只能用于List及其子类型)

11 快速失败和安全失败(fail-fast:遍历时对集合进行增删改会抛出Concurrent Modification Exception异常,一般的java.util包下的集合用的就是快速失败。安全失败就是采用复制方式,修改原集合,虽然不会报错,但是也没办法访问修改后的元素。一般在java.util.concurrent包下集合用的就是安全失败)

12 如果clone单例模式的对象会怎样(不行,这里必须要实现Cloneable接口,所以需要单例的类不能去实现Clonable接口。反射应该可以去获取私有的构造方法从而破坏单例)

13 hibernate和mybatis区别(相同方面:ORM、都支持jdbc事务、 不同点:sql方面、缓存方面)

14 mysql联合索引和聚集索引(联合索引就是多列组成的索引,聚集索引CLUSTERED,聚集索引的顺序与数据真实的物理存储顺序一致,特别快,主键!=聚集索引)

15 行锁和表锁(表锁:不会出现死锁,发生锁冲突几率高,并发低。行锁:会出现死锁,发生锁冲突几率低,并发高)

16 b树索引和Hash索引区别(大量不同数据查找,hash索引比B树索引效率高,hash索引不支持联合索引的最左匹配规则,hash索引不支持排序,hash索引不支持模糊查找)

17 软连接硬链接(软连接:新建一个文件来指向别的文件,原文件删除则不可用,可跨文件系统。硬链接:原来的inode link count域再增加1(在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode ),不可跨文件系统,删除原文件也可继续使用。ln是创建硬链接 ln -s是创建软连接)

18 linux查看进程的命令(ps命令 -A:所有的进程均显示出来、-a显示现行终端机下的所有进程,包括其他用户的进程 、-u以用户为主的进程状态)

如果喜欢本文

小手手点下

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员面试鸭 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档