java面试题:2018年6月
18年5月份开始找工作,发现他们的问题其实有很多东西都是和网上差不多,发现面试过程中对基础要求比较多,同时对框架的加载问题问的比较多,一些面试官建议要看spring的源码,以及hasmap的源码等等,问的比较杂,自己先记录下,同时给一样找工作的朋友做参考,后续我会把把自己认为的答案补充上去,欢迎交流
java基础问题:
1:请说说hashmap,hashtable的区别
hashtable是线程安全的,他里面的大部分方法都被synchronize修饰;
hashmap是线程不安全的,在多个线程执行到put方法的时候可能会造成死锁
2:请讲讲hashmap的数据结构以及谈谈rehash()
具体的结构最好去看下专门的网站介绍
jdk1.7:采用数组+链表的模式
jdk1.8:采用数组+链表+红黑树
rehash:
就是当里面的节点数据两达到75%(默认的加载因子),此时就需要进行扩容处理,扩容的处理方式会有些区别,简单讲,就是创建一个新的数组,然后将对应的链表数据重新连到各自链表中
jdk1.7:遍历每个数组链表节点,然后重新计算hashcod,连接到各自的数组中,插入时是插入头节点,使链表原位置颠倒
jdk1.8:遍历每个数组的链表节点(树结构先不说),不需要重新计算hashcod,做个与运算,插入在链表的队尾。
阐述可能不太详细,可以去看源码或者其他博客讲解
3:请讲讲hashmap怎么获取对应的值,什么情况下会使用到其中的链表结构;
计算hashcode,hashcode相同的时候会发生碰撞,此时该数组节点下面会有链表
4:voliate关键字了解么,谈谈对他的理解
线程间是可见的,但是不安全的;
将线程中的的私有内存和公共内存的数据进行同步,但是在进行(load加载+use操作+asign赋值)计算操作时,公共内存的数据可能会变化,导致数据不一致
5:你了解强引用,弱引用,虚引用么?你使用过么?
强引用:不会被垃圾收集器回收(new T() 这个比较常用)
软引用:jvm不足的时候会被回收(网上说可用于图片缓存,我实际中没用到过)
弱引用:都会被垃圾收集器回收
虚引用:不影响对象的生命周期
6:请讲讲linkedlist,arrayList的区别?
一个是链表结构,一个是线性的数组结构
7:假如让你实现arraylist的话,你会怎么设计?
8:你的项目中使用过哪些集合类?请讲讲
我在传统行业,只用过hashmap
9:锁有哪几种?请讲讲
这个我甩连接吧https://www.cnblogs.com/lxmyhappy/p/7380073.html
10:请讲讲java的反射机制
11:请讲讲你们项目中的异常是怎么处理的
12:乐观锁和悲观锁请讲讲
jvm问题:
1:请讲讲类加载机制的过程;
加载:通过类全名获取对应的二进制流,结构的转化存储到方法区中
验证:验证该class是否符合要求
准备:static修饰的变量在方法区分配内存,并赋默认初始值-默认值不是自己定的指
解析:常量池中的符号引用替换为直接引用
初始化:执行类中的方法
2:请讲讲jvm的内存结构是什么?
程序计数器,栈(vm栈+native method栈),堆,方法区,
1.8里面其实有个元空间,去了解下
3:请讲讲gc的方法有哪些?
标记清除法,标记整理法,复制算法(最好结合不同的垃圾收集器去看看)
4:什么情况下对象会进入到老年代?
1)一个对象的空间大于新生代的eden区的剩余空间
2)一个大对象,需要连续的内存空间的,比如很大的String或者数据
3)长期存活的对象(jvm会给每个对象定义一个年龄计数器,用来计算每次minor gc以后仍然存活的次数)
4)某个年龄的所有对象大小总和>survivor的一半,此时大于等于该年龄阶段的对象直接进入
框架问题:
1:请讲讲springMVC加载顺序?
2:spring的注释是怎么实现的?
3:spring的源码有看过么?(请讲讲aop和ioc的的两个包)
4:请讲讲mybatis的加载过程
5:请讲讲servlet的加载过程
实例化,初始化,接受请求service,销毁destory
中间件问题:
1:请讲讲tomcat的加载过程;
emmm。。。。比较烦
2:有使用过消息中间件么?请讲讲
rabbitMQ,kafaka(这里我简单写了)
设计模式:
1:你的项目中有哪些使用了观察者模式?
2:你的项目中的哪些地方使用了单例模式?
数据库:
1:请讲讲对索引的理解
2:请讲讲b+树的结构以及理解
3:你了解oracle的行锁么,请讲讲
4:oracle中的hint了解么,请讲讲
5:oracle的分页是怎么写的?
6:你知道oracle使用rowid方法的时候在多个条件排序下会有个bug,你了解么?
7:请说说左连接,右连接,内连接的区别
8:请写个查询语句分组出男女的总数
9:请讲讲索引的种类
10:请讲讲,你的日常的sql优化是怎么操作的?
11:请讲讲in和between and的区别?
12:mysql的分页是怎么实现的?
上面回到有问题,欢迎留言指导
java面试题:2018年6月相关推荐
- 2018年三月份计算机一级考试试题,2018年3月计算机一级考试MSOFFICE模拟试题(4)
<2018年3月计算机一级考试MSOFFICE模拟试题(4)>由会员分享,可在线阅读,更多相关<2018年3月计算机一级考试MSOFFICE模拟试题(4)(5页珍藏版)>请在人 ...
- 河北省2018计算机一级考试试题,2018年3月计算机一级考试MSOffice模拟试题1
2018年3月计算机等级考试临近,小编在这里为考生们整理了2018年3月计算机一级考试MSOffice模拟试题,希望能帮到你们,想了解更多资讯,请关注出国留学网的及时更新哦. 2018年3月计算机一级 ...
- 广东2018年6月计算机一级试题,2018年9月计算机等级考试一级试题及答案.doc
最全计算机一级考试试题汇 A 第一部分:单选题(每小题1分 共30分) 注意:打开你考试文件夹中的EXCEL工作簿文件"单选题答题卡A.XLS",将下列选择题的答案填入其中所指定的 ...
- Java随笔(2017年10月23号~2018年4月7号)
2017年10月23号 1.java:94年改名,95年推出 2.java特性:安全性.可移植性和平台无关性 3.java(jdk)中的bin目录中的.exe结尾的都是运行程序存放可执行文件: lib ...
- 2017年计算机组成原理1254,2018年7月试卷号1254计算机组成原理A.pdf
2018年7月试卷号1254计算机组成原理A 试卷代号:1254 座位号!I I 国家开放大学(中央广播电视大学)2018 年春季学期"开放本科"期末考试 计算机组成原理试题 20 ...
- 2018年11月TIOBE编程语言排行榜,Java稳居第一
每月的编程语言一出,我们都会发现,Java总是稳稳的占据榜首,JAVA不可撼动的江湖地位,让我们对于Java的学习更加有信心,对于Java未来的发展充满着无限的期待. 再过两个月,TIOBE 就将宣布 ...
- 花了3个月整理的超级全面的Python资料和Java面试题,分享给大家!
为广大Python爱好者精心准备的<Python进阶>,是<Intermediate Python>的中文译本,IntermediatePython这本书具有如下几个优点:简单 ...
- 如何避免贫穷和忙碌,在2018年你需要这样提升自己 2018年01月07日 00:00:00 2099 热文导读 | 点击标题阅读 Java和Android架构2017年总结:文章精选 吊炸天!74
如何避免贫穷和忙碌,在2018年你需要这样提升自己 2018年01月07日 00:00:00 2099 热文导读 | 点击标题阅读 Java和Android架构2017年总结:文章精选 吊炸天!74款 ...
- 2018年4月java自考真题,全国2018年4月自考互联网数据库考试真题
全国2018年4月自学考试互联网数据库试卷 (课程代码00911) 一.单项选择题:本大题共15小题,每小题2分,共30分.在每小题列出的备选项中只有一项是最符合题目要求的.请将其选出. 1.关于数据 ...
- Java的最新发展– 2018年4月下旬
本周Java领域有一些最新的发展,我在本文中总结了其中的一些. 我们知道的JavaOne的终结 Stephen Chin在帖子" JavaOne活动扩展了更多的曲目,语言和社区以及新名称 & ...
最新文章
- CodeGen用户定义的扩展令牌
- springcloud 消费者 Feign (类似 webservice)
- spring启动过程之源码跟踪(续beanfactory)--spring Debug
- Coursera公开课笔记: 斯坦福大学机器学习第一课“引言(Introduction)”
- 求复变函数的 Taylor 展式与 Laurent 展式[华中师范大学2010年复变函数复试试题]...
- 如何手撸一个队列?队列详解和面试题汇总(含答案)
- lfu算法实现java_LFU五种实现方式,从简单到复杂
- 信息学奥赛一本通 1356:计算(calc)
- 数组的升序 java
- 问号后面能加感叹号吗_TOPIK|你还在因为不会用原稿纸而扣分吗
- Yarn的原理与资源调度
- 基于AT89S52单片机的汽车尾灯控制电路设计
- 翼次元空间:智协云店通+BitCOO的4WiN.io全球互贸链 | Fund++
- MSP430的BSL下载经验
- 【释义详解】Software License (软件许可证)是什么?
- 电脑版微信聊天记录和小程序视频播放黑屏,但有声音,qq和其浏览器视频播放正常。如何解决?
- 基于汇编语言实现的贪吃蛇游戏设计
- vscode保存自动格式化加逗号解决方法
- 基于Jquery实现海底掘金版打豆豆
- 华为模拟器eNSP练习题 - VRRP、STP