最近面试了一些公司,针对面试中遇到的问题在此记录,提升自己,造福大家

一、java源码相关

  1. ArrayList创建和add等各种api使用原理  

  2. HashMap 的创建,put原理,和HashTable的区别,resize的原理

  3. HashMap和HashTable在1.7版本之后的区别,针对创建时和put时处理的方式不同(红黑树,CAS、ABA处理)

  4. 各种IO交互(AIO/ NIO/ BIO)

二、 JVM相关

  (bookname:深入理解java虚拟机)

  1. jvm分区

  2. java文件加载到gc全流程

  3. gc收集算法(标记计数算法,可达性算法)gc清理逻辑

  4. G1/CMS收集器

  5. 堆栈溢出原因,处理

  6. 内存分配和回收策略

  7. 虚拟机贱虫和故障处理工具

  8. jvm调优

  9. web容器加载器架构实现(tomcat,jetty……)

  10. 线程安全,锁优化

三、多线程

  1. 线程池的创建有几种方式

  2. submit和excute使用的区别,怎样避免死锁

  3. 线程的锁机制(lock和synchronized)

  4. 线程调度相关

四、数据库

  1. mysql中innodb myisam 两种引擎区别,是否支持事物,索引实现(B+,Hash)复合索引/二叉树

  2. group by和order by

  3. 数据库调优

  4. 大量数据下分库分表处理

  5. 跨多数据库查询

  6. cap,CAP即,一致性(Consistency), 可用性(Availability), 分区容忍性(Partition tolerance);

  7. redis有什么优点(单线程,分布式,持久化,事务,原子性)

  8. redis的主从 、哨兵的实现原理

  9. redis支持的数据操作类型,发布订阅,计数器

  10. redis作为注册中心的优点,和zk的区别

五、Spring框架相关

  1. ioc实现原理

  2. aop具体实现,动态代理

  3. 工厂bean和bean工厂

  4. 反射使用

  5. 注解实现

六、分布式

  1. dubbo具体调用原理(消费者&服务者)

  2. 多注册中心的使用场景

  3. 负载均衡策略

  4. 注册中心的注册原理(zk和redis注册中心有什么区别)

目前遇到的问题是这些,欢迎各位看官留言补充。BX

JAVA高级-面试题总结的更多相关文章

  1. Java高级面试题解析(一)

    最近,在看一些java高级面试题,我发现我在认真研究一个面试题的时候,我自己的收获是很大的,我们在看看面试题的时候,不仅仅要看这个问题本身,还要看这个问题的衍生问题,一个问题有些时候可能是一个问题群( ...

  2. Java 高级面试题收集

    Java概念题 拆箱装箱的原理 自动装箱时编译器调用valueOf将原始类型值转换成对象,同时自动拆箱时,编译器通过调用类似intValue(),doubleValue()这类的方法将对象转换成原始类 ...

  3. Java高级面试题积累(二)

    简述23种设计 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口.而无需指定它们详细的类. 适配器模式(Adapter):将一个类的接口转换成客户希望的另外 ...

  4. Java高级面试题整理(附答案)

    这是我收集的10道高级Java面试问题列表.这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题.你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java ...

  5. Java高级面试题及答案

    List和Set比较,各自的子类比较 对比一:Arraylist与LinkedList的比较 1.ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高 ...

  6. 2018“金三”之一线互联网公司Java高级面试题总结

    JVM 1.请介绍一下JVM内存模型??用过什么垃圾回收器都说说呗 2.线上发送频繁full gc如何处理? CPU 使用率过高怎么办? 如何定位问题?如何解决说一下解决思路和处理方法 3.知道字节码 ...

  7. Java高级面试题

    一.基础知识: 1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList:HashSet,TreeSet): 2)HashMap的底层实现,之后会问Co ...

  8. Java高级面试题解析(二):百度Java面试题前200页(精选)

    基本概念 操作系统中 heap 和 stack 的区别 heap是堆,stack是栈,是两种不同的数据结构.堆是队列优先,先进先出:栈是先进后出. 在java多线程中,每个线程都有自己的栈:不同的线程 ...

  9. java高级面试题汇总(复习)从最基础的往上复习,每天定期更新。

    每天搬一点砖,总有一天成为大牛! 看问题的时候请不要立马去翻答案,多想想. 看完答案可以问问为什么,尝试拓展!一起加油吧! 每个答案后面都有一个小彩蛋(一个以上的拓展问题),钻研让你先人一步. jav ...

随机推荐

  1. mui预加载

    1.只能加载一个页面 mui.init(); var page = null; mui.plusReady(function() { //预加载页面mui.preload必须放在plusReady事件 ...

  2. Lua 循环与流程控制

    1.Lua 语言提供了以下几种循环处理方式: 循环类型 描述 while 循环 在条件为 true 时,让程序重复地执行某些语句.执行语句前会先检查条件是否为 true. for 循环 重复执行指定语 ...

  3. 记录下curl的使用方法

    curl是一个可以在命令行中直接发起请求的工具,基础用法如下: curl localhost:6767/1.html //返回url对应的页面内容 curl localhost:6767/1.html ...

  4. 脚本语言 ES

    C# 编写,解释执行,语法类似 JS,动态类型,支持闭包,支持热更新,效率比较低,目前暂时没有发现 BUG,实际游戏运行稳定,没有发现内存泄漏 Github:https://github.com/ea ...

  5. 在OAF页面中集成ECharts以及highcharts用于显示图表

    历史博文中有讲解在请求中输出基础图表的方式,见地址:EBS 请求输出Html报表集成Echarts 本文讲述在OAF中集成这两类图表. 集成的基本思路:在OAF页面中加入一个rawText组件,在ra ...

  6. mysql 没有全外连接

    真实测试过,没有测试过的别再坑人了.别随便乱写了.

  7. js 快速生成数组的方法

    //实现方法一:循环赋值var arr1 = new Array(100);for(var i=0;i<arr1.length;i++){ arr1[i] = i;}console.log(ar ...

  8. linux—epoll

    一.epoll服务端实现中需要的3个函数: epoll_create:创建保存epoll文件描述符的空间. epoll_ctl:向空间注册并注销文件描述符. epoll_wait:与select函数类 ...

  9. 关于python中的GIL

    什么是GIL锁? GIL是Global Interpreter Lock的缩写,GIL中文可以称为全局解释器锁.提及到GIL,我们要知道它是在实现Python解析器(CPython)时所引入的一个概念 ...

  10. [Oracle][DATAGUARD]关于REDO_TRANSPORT_USER参数

    大家可能已经知道,在Oracle的DATAGUARD(这里指的是PHYSICAL STANDBY)环境中,Primary端会把生成的REDO传到Standby端,然后由Standby端的MRP进程应用 ...