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

一、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. 用node.js启动mock.js

    Node.js Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP.Python.Perl.Ruby 等服务端语言平起平坐的脚本语言.官网下载n ...

  2. Django web框架-----视图与网址的不同请求方式

    在网页上做加减法 说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用 方式一:采用  /add/?a=1&b=4这种get方法进行 qu ...

  3. mysql修改当前用户的密码

    ALTER USER USER() IDENTIFIED BY '123456';https://majing.io/posts/10000005531181

  4. Mittag-Leffer函数, Matlab内部函数

    Mittag-Leffer函数: $E_{\alpha,\beta}(x) = \sum\limits^{\infty}_{k=0} \frac{x^k}{ \Gamma( \alpha k + \b ...

  5. .net实现网易云音乐下载

    客户端版的网易云音乐下载是需要vip的,网页版的虽然可以通过调试工具找到下载链接,但是用起来不是很方便,通过调试工具观察请求发现请求参数都是加密的,比如搜索歌曲的请求参数: 这个加密的实现肯定是写在j ...

  6. 数据分析---SQL(删除数据或表)

    一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test   2.truncate table 表 ...

  7. 原生js手动轮播图

    手动轮播图,为轮播图中的一种,轮播图主要有无缝轮播,手动轮播,延迟轮播,切换轮播等等... 轮播图主要用于展现图片,新出商品,词条,又能美观网页.給网页中增加动态效果. 手动轮播,是小编认为最简单的一 ...

  8. 关于SQLSERVER数据库连接池

    页内导航 1.如何开启连接池? 2. 那连接池是和有什么有关呢? 3.如何使用相同的连接池访问不同的数据库? ‘关于数据库连接池大家都听说过或者用过,但真正的了解有多少呢? 数据连接池如何启用?有哪些 ...

  9. python 时间段的随机日期输出

    生成随机的日期字符串,用于插入数据库. 通过时间元组设定一个时间段,开始和结尾时间转换成时间戳. 时间戳中随机取一个,再生成时间元组,再把时间元组格式化输出为字符串 python2代码如下 impor ...

  10. spring boot开发环境搭建(三)

    软件151  王帅 新建一个maven工程   Maven配置文件: <!-- Inherit defaults from Spring Boot --> <parent> & ...