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月相关推荐

  1. 2018年三月份计算机一级考试试题,2018年3月计算机一级考试MSOFFICE模拟试题(4)

    <2018年3月计算机一级考试MSOFFICE模拟试题(4)>由会员分享,可在线阅读,更多相关<2018年3月计算机一级考试MSOFFICE模拟试题(4)(5页珍藏版)>请在人 ...

  2. 河北省2018计算机一级考试试题,2018年3月计算机一级考试MSOffice模拟试题1

    2018年3月计算机等级考试临近,小编在这里为考生们整理了2018年3月计算机一级考试MSOffice模拟试题,希望能帮到你们,想了解更多资讯,请关注出国留学网的及时更新哦. 2018年3月计算机一级 ...

  3. 广东2018年6月计算机一级试题,2018年9月计算机等级考试一级试题及答案.doc

    最全计算机一级考试试题汇 A 第一部分:单选题(每小题1分 共30分) 注意:打开你考试文件夹中的EXCEL工作簿文件"单选题答题卡A.XLS",将下列选择题的答案填入其中所指定的 ...

  4. Java随笔(2017年10月23号~2018年4月7号)

    2017年10月23号 1.java:94年改名,95年推出 2.java特性:安全性.可移植性和平台无关性 3.java(jdk)中的bin目录中的.exe结尾的都是运行程序存放可执行文件: lib ...

  5. 2017年计算机组成原理1254,2018年7月试卷号1254计算机组成原理A.pdf

    2018年7月试卷号1254计算机组成原理A 试卷代号:1254 座位号!I I 国家开放大学(中央广播电视大学)2018 年春季学期"开放本科"期末考试 计算机组成原理试题 20 ...

  6. 2018年11月TIOBE编程语言排行榜,Java稳居第一

    每月的编程语言一出,我们都会发现,Java总是稳稳的占据榜首,JAVA不可撼动的江湖地位,让我们对于Java的学习更加有信心,对于Java未来的发展充满着无限的期待. 再过两个月,TIOBE 就将宣布 ...

  7. 花了3个月整理的超级全面的Python资料和Java面试题,分享给大家!

    为广大Python爱好者精心准备的<Python进阶>,是<Intermediate Python>的中文译本,IntermediatePython这本书具有如下几个优点:简单 ...

  8. 如何避免贫穷和忙碌,在2018年你需要这样提升自己 2018年01月07日 00:00:00 2099 热文导读 | 点击标题阅读 Java和Android架构2017年总结:文章精选 吊炸天!74

    如何避免贫穷和忙碌,在2018年你需要这样提升自己 2018年01月07日 00:00:00 2099 热文导读 | 点击标题阅读 Java和Android架构2017年总结:文章精选 吊炸天!74款 ...

  9. 2018年4月java自考真题,全国2018年4月自考互联网数据库考试真题

    全国2018年4月自学考试互联网数据库试卷 (课程代码00911) 一.单项选择题:本大题共15小题,每小题2分,共30分.在每小题列出的备选项中只有一项是最符合题目要求的.请将其选出. 1.关于数据 ...

  10. Java的最新发展– 2018年4月下旬

    本周Java领域有一些最新的发展,我在本文中总结了其中的一些. 我们知道的JavaOne的终结 Stephen Chin在帖子" JavaOne活动扩展了更多的曲目,语言和社区以及新名称 & ...

最新文章

  1. CodeGen用户定义的扩展令牌
  2. springcloud 消费者 Feign (类似 webservice)
  3. spring启动过程之源码跟踪(续beanfactory)--spring Debug
  4. Coursera公开课笔记: 斯坦福大学机器学习第一课“引言(Introduction)”
  5. 求复变函数的 Taylor 展式与 Laurent 展式[华中师范大学2010年复变函数复试试题]...
  6. 如何手撸一个队列?队列详解和面试题汇总(含答案)
  7. lfu算法实现java_LFU五种实现方式,从简单到复杂
  8. 信息学奥赛一本通 1356:计算(calc)
  9. 数组的升序 java
  10. 问号后面能加感叹号吗_TOPIK|你还在因为不会用原稿纸而扣分吗
  11. Yarn的原理与资源调度
  12. 基于AT89S52单片机的汽车尾灯控制电路设计
  13. 翼次元空间:智协云店通+BitCOO的4WiN.io全球互贸链 | Fund++
  14. MSP430的BSL下载经验
  15. 【释义详解】Software License (软件许可证)是什么?
  16. 电脑版微信聊天记录和小程序视频播放黑屏,但有声音,qq和其浏览器视频播放正常。如何解决?
  17. 基于汇编语言实现的贪吃蛇游戏设计
  18. vscode保存自动格式化加逗号解决方法
  19. 基于Jquery实现海底掘金版打豆豆
  20. 华为模拟器eNSP练习题 - VRRP、STP

热门文章

  1. GooFlow获取节点/线信息和自定义节点属性
  2. HiJson软件改进之路(json格式化工具)
  3. AD9361 补充(中)
  4. VS2015卸载。非常干净-亲测有用
  5. idea2020更新功能_idea2020 插件备份
  6. C语言程序段的定义、实际应用分析
  7. oracle 索引问题梳理
  8. Qt开发之路——基于RedfishAPI的服务器管理小应用
  9. Java面试八股文(素材来自网络)
  10. 实验九 哈希表的查找操作