Java 高级面试知识点汇总!

1、常用设计模式

单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证一个类仅有一个实例,并提供一个访问它的全局访问点。

代理模式:动态代理和静态代理,什么时候使用动态代理。

适配器模式:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

装饰者模式:动态给类加功能。

观察者模式:有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

策略模式:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。

外观模式:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

命令模式:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。

创建者模式:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。

抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

2、基础知识

Java基本类型哪些,所占字节和范围

Set、List、Map的区别和联系

什么时候使用Hashmap

什么时候使用Linkedhashmap、Concurrenthashmap、Weakhashmap

哪些集合类是线程安全的

为什么Set、List、map不实现Cloneable和Serializable接口

Concurrenthashmap的实现,1.7和1.8的实现

Arrays.sort的实现

什么时候使用CopyOnArrayList

volatile的使用

synchronied的使用

reentrantlock的实现和Synchronied的区别

CAS的实现原理以及问题

AQS的实现原理

接口和抽象类的区别,什么时候使用

类加载机制的步骤,每一步做了什么,static和final修改的成员变量的加载时机

双亲委派模型

反射机制:反射动态擦除泛型、反射动态调用方法等

动态绑定:父类引用指向子类对象

JVM内存管理机制:有哪些区域,每个区域做了什么

JVM垃圾回收机制:垃圾回收算法 垃圾回收器 垃圾回收策略

jvm参数的设置和jvm调优

什么情况产生年轻代内存溢出、什么情况产生年老代内存溢出

内部类:静态内部类和匿名内部类的使用和区别

Redis和memcached:什么时候选择redis,什么时候选择memcached,内存模型和存储策略是什么样的

MySQL的基本操作 主从数据库一致性维护

mysql的优化策略有哪些

mysql索引的实现 B+树的实现原理

什么情况索引不会命中,会造成全表扫描

java中bio nio aio的区别和联系

为什么bio是阻塞的 nio是非阻塞的 nio是模型是什么样的

Java io的整体架构和使用的设计模式

Reactor模型和Proactor模型

http请求报文结构和内容

http三次握手和四次挥手

rpc相关:如何设计一个rpc框架,从io模型 传输协议 序列化方式综合考虑

Linux命令 统计,排序,前几问题等

StringBuff 和StringBuilder的实现,底层实现是通过byte数据,外加数组的拷贝来实现的

cas操作的使用

内存缓存和数据库的一致性同步实现

微服务的优缺点

线程池的参数问题

ip问题 如何判断ip是否在多个ip段中

判断数组两个中任意两个数之和是否为给定的值

乐观锁和悲观锁的实现

synchronized实现原理

你在项目中遇到的困难和怎么解决的

你在项目中完成的比较出色的亮点

消息队列广播模式和发布/订阅模式的区别

生产者消费者代码实现

死锁代码实现

线程池:参数,每个参数的作用,几种不同线程池的比较,阻塞队列的使用,拒绝策略

Future和ListenableFuture 异步回调相关

算法相关:判断能否从数组中找出两个数字和为给定值,随机生成1~10000不重复并放入数组,求数组的子数组的最大和,二分查找算法的实现及其时间复杂计算

3、其它

算法:常用排序算法,二分查找,链表相关,数组相关,字符串相关,树相关等

常见序列化协议及其优缺点

memcached内存原理,为什么是基于块的存储

搭建一个rpc需要准备什么

如果线上服务器频繁地出现full gc ,如何去排查

如果某一时刻线上机器突然量变得很大,服务扛不住了,怎么解决

LUR算法的实现

LinkedHashMap实现LRU

定义栈的数据结构,请在该类型中实现一个能够找到栈最小元素的min函数

海量数据处理的解决思路

reactor模型的演变

阻塞、非阻塞、同步、异步区别

Collection的子接口

jvm调优相关

zookeeper相关,节点类型,如何实现服务发现和服务注册

nginx负载均衡相关,让你去实现负载均衡,该怎么实现

linux命令,awk、cat、sort、cut、grep、uniq、wc、top等

压力测试相关,怎么分析,单接口压测和多情况下的压测

你觉得你的有点是什么,你的缺点是什么

spring mvc的实现原理

netty底层实现,IO模型,ChannelPipeline的实现和原理

缓存的设计和优化

缓存和数据库一致性同步解决方案

你所在项目的系统架构,谈谈整体实现

消息队列的使用场景

ActiveMQ、RabbitMQ、Kafka的区别

扫描关注我们的微信公众号,回复关键字 "答案" 获取更多面试题及答案。

原文地址:http://blog.51cto.com/honly/2132416

时间: 2024-10-01 06:04:29

Java 高级面试知识点汇总!的相关文章

JAVA高级阶段知识点汇总

一.       集合框架和泛型 1.   定义 集合框架用于存储一组长度不定的元素. 2.   常用的接口和类 接口:Collection.List.Set.Map.Iterator 类:ArrayList.LinkedList.HashSet.HashMap List接口和Set接口均继承自Collection接口. 3.   使用特点 List:存储的元素不唯一.有序. Set:存储的元素唯一.无序. Map:元素以键值对的方式进行存储. 4.   ArrayList和LinkedList

【数据库】数据库面试知识点汇总

转自:https://www.cnblogs.com/wenxiaofei/p/9853682.html 数据库面试知识点汇总 一.基本概念 1.主键.外键.超键.候选键 超键:在关系中能唯一标识元组的属性集称为关系模式的超键.一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键.超键包含候选键和主键. 候选键:是最小超键,即没有冗余元素的超键. 主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Nul

Java入门学习知识点汇总--第一部分

Java入门重要知识点在这里总结一下,以方便日后复习,这部分内容主要有:变量和常量,常用的运算符,流程控制语句,数组,方法这些内容 一.变量和常量 1.Java关键字 先贴张图: 所有关键字区分大小写. 2.标识符 标识符就是用于给 Java 程序中变量.类.方法等命名的符号. 注意几条规则: 标识符可以由字母.数字.下划线(_).美元符($)组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头. 标识符不能是 Java 关键字和保留字,但可以包含关键字和保留字. 标识符是严格区分大小写

java高级面试感想

最近离职了, 面了几家java的高级岗位, 深有感触, 特此写一篇博客记录下. 感想1 : 好久没面试了, 很多概念性的东西都忘了, 前几次面试好尴尬, 话都感觉说不清楚了. 后来面了几次以后心里有数了, 就开始从容不迫起来.  具体面试问题其实也没多难, 在末尾我会给出这几天的面试考察点. 感想2 : 之前公司呆的太舒适了, 虽然平时也看书的, 但是没那种危机意识, 看的很随意, 还好这次离职发现了自己的不足点. 感想3 : 原本很怕面试的, 后来转念一想, 你去别人面试, 相当于免费的考试,

Java后台-面试问题汇总(转载)

总结这些天面试Java开发过程中的大多数问题,综合分类有Java基础,框架,多线程,网络通信,Linux,数据库,设计模式,算法,缓存等几个模块,由于问题太多,下面先列出问题,之后有时间在写文章解答,或者网上有很多答案,可以自行搜索. 一.Java基础1.String类为什么是final的.2.HashMap的源码,实现原理,底层结构.3.反射中,Class.forName和classloader的区别4.session和cookie的区别和联系,session的生命周期,多个服务部署时sess

Java基础面试知识点总结

本文主要是我最近复习Java基础原理过程中写的Java基础学习总结.Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其底层实现原理. 纸上得来终觉浅,绝知此事要躬行.笔者之前对每部分的内容 对做了比较深入的学习以及代码实现,基本上比较全面地讲述了每一个Java基础知识点,当然可能有些遗漏和错误,还请读者指正. Java基础学习总结 每部分内容会重点写一些常见知识点,方便复习和记忆,但是并不是全部内容,详细的内容请参见具体的

数据库面试知识点汇总

主键:数据库表中唯一标识:一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 外键:在一个表中存在的另一个表的主键称此表的外键. 触发器的作用? 触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的.它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化.可以联级运算.如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发. 什么是存储过程?用什么来调用? 存储过程是一个预编译的SQL语句,优点是允许

Python面试知识点汇总

1. 谈一谈OOP (1)python的类没有访问权限的问题,也就是说所有的变量都是可访问的. 实际上python有私有的机制,就是在属性前加__,但是这种私有机制实际上也是伪私有,因为它其实是用一个别名来保存这个属性. 例如在类A中的self.__a = 4, 实际上__a被修改成了_A__a保持在类中了. (2)没有static的说法了,类和实例是区分看待的,一个属性或者方法可以属于类也可以属于实例 class A: i = 'class var' def __init__(self): s

2017 web前端面试知识点汇总

跨域 同源策略:浏览器上为安全性考虑实施的安全策略.url由协议.域名.端口号和路径组成,如果两个url的协议.域名和端口号相同,则是同源. ajax请求受到同源策略的限制 一.jsonp 利用<script>标签的src属性可以加载跨域的js脚本特点,动态创建script标签来载入跨域资源,jquery对该方法进行了封装,需要设置dataType为jsonp,只支持get请求 二.domain 三.CORS 服务端在响应头加上允许访问的domain和HTTP method 四.服务端代理 因