导航菜单

Java高级程序员(5年左右)面试的题目集

Qianfeng JAVA Development Institute我想分享2天前

JS

两年后,我又一次面临离职和找工作。这次我改变了我的工作,我有点无助。个人的技术团队很好。我在两年内成长很多,我对这支球队非常不满意。但是,由于公司的一些原因和对其未来发展的综合考虑,它必须留下来寻找更适合增长和发展的地方。与两年前相比,没有迫切需要找工作的事情,也没有迫切需要的事情。没有公司想去公司。无论如何,去大公司的互联网公司基本上是加班加点。也许这是我将要面对三年工作的障碍。对于未来的选择和考虑,对未来的恐惧。也许我担心的是人,也许上帝注定要去公司,无论如何,坚持做最好的!不断进步,不断发展!

以下是最近访谈中遇到的一些主题的摘要。我希望目前正在寻找工作的学生和目前正在寻找工作的学生将会有所帮助。

1.通用设计模式

单例模式:懒惰,饥饿,双重检查锁定,静态加载,内部类加载,枚举类加载。确保类只有一个实例并提供访问它的全局访问点。

代理模式:动态代理和静态代理,何时使用动态代理。

适配器模式:将一个类的接口转换为客户端需要的另一个接口。适配器模式允许那些由于不兼容的接口而无法协同工作的类一起工作。

装饰器模式:动态地为类添加功能。

观察者模式:有时称为发布/订阅模式,观察者模式定义了一对多依赖关系,允许多个观察者对象同时监听单个主题对象。此状态对象在状态更改时通知所有观察对象,允许它们自动更新。

策略模式:定义一系列算法,逐个封装,并使它们可互换。

外观模式:为子系统中的一组接口提供一致的接口。 Appearance模式定义了一个高级接口,使该子系统更易于使用。

命令模式:将请求封装到对象中,允许您使用不同的请求参数化客户端。

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

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

2.基础知识

Java基本类型,占用字节和范围

Set,List和Map之间的差异和联系

何时使用Hashmap

何时使用Linkedhashmap,Concurrenthashmap,Weakhashmap

哪些集合类是线程安全的

为什么Set,List和Map不实现Cloneable和Serializable接口

Concurrenthashmap的实现,实现1.7和1.8

Arrays.sort的实现

何时使用CopyOnArrayList

使用volatile

使用同步

reentrantlock实现和Synchronied之间的区别

CAS的实施原则和问题

AQS实施原则

接口和抽象类之间的区别,何时使用

类加载机制的步骤,每个步骤的作用,静态和最终修改的成员变量的加载时间

家长代表模式

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

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

JVM内存管理机制:有哪些区域以及每个区域的作用

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

Jvm参数设置和jvm调整

年轻一代内存溢出会发生什么,老一代内存溢出会发生什么?

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

Redis和memcached:何时选择redis,何时选择memcached,内存模型和存储策略是什么?

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

mysql的优化策略是什么?

执行mysql索引B +树实现原理

索引会发生什么变化,不会导致全表扫描

java中bio nio aio的区别和联系

生物被阻止的原因nio是非阻塞的nio就像模型一样

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

反应堆模型和Proactor模型

Http请求消息结构和内容

Http三次握手和四次摇摆

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

Linux命令统计,排序,以前的问题等。

StringBuff和StringBuilder的实现,底层实现是通过字节数据实现的,加上数组的副本

使用cas操作

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

微服务的优点和缺点

线程池参数问题

问题如何确定ip是否在多个ip段中

确定两个数组中任意两个数组的总和是否为给定值

乐观锁定和悲观锁定实现

同步实现原则

你在项目中遇到了什么困难以及如何解决它们

您在项目中完成的杰出亮点

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

生产者消费者代码实现

死锁代码实现

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

Future和ListenableFuture异步回调

算法相关:判断你是否可以从数组中找到两个数并给出一个给定的值,随机生成1~不重复并放入数组,找到数组子阵的最大和,执行二进制搜索算法和它的时间复杂计算

3.其他人

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

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

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

准备建立一个rpc

的准备工作

如果在线服务器经常出现完整的gc,那么如何进行故障排除

如果机器的数量在某个时刻突然变得非常大,服务就无法停止,如何解决它

LUR算法的实现

LinkedHashMap实现了LRU

定义堆栈的数据结构,在可以找到堆栈的最小元素的类型中实现min函数

海量数据处理的解决方案

反应堆模型的演变

阻塞,非阻塞,同步,异步差异

Collection的子接口

Jvm调整相关

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

Nginx负载均衡相关,让您实现负载均衡,如何实现

Linux命令,awk,cat,sort,cut,grep,uniq,wc,top等。

压力测试相关,如何分析,单界面压力测试和多种情况下的压力测量

您认为是什么,您有什么缺点

Spring mvc实现原理

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

缓存设计和优化

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

您项目的系统架构,谈谈整体实施

消息队列使用场景

ActiveMQ,RabbitMQ,Kafka之间的区别

收集报告投诉

JS

两年后,我又一次面临离职和找工作。这次我改变了我的工作,我有点无助。个人的技术团队很好。我在两年内成长很多,我对这支球队非常不满意。但是,由于公司的一些原因和对其未来发展的综合考虑,它必须留下来寻找更适合增长和发展的地方。与两年前相比,没有迫切需要找工作的事情,也没有迫切需要的事情。没有公司想去公司。无论如何,去大公司的互联网公司基本上是加班加点。也许这是我将要面对三年工作的障碍。对于未来的选择和考虑,对未来的恐惧。也许我担心的是人,也许上帝注定要去公司,无论如何,坚持做最好的!不断进步,不断发展!

以下是最近访谈中遇到的一些主题的摘要。我希望目前正在寻找工作的学生和目前正在寻找工作的学生将会有所帮助。

1.通用设计模式

单例模式:懒惰,饥饿,双重检查锁定,静态加载,内部类加载,枚举类加载。确保类只有一个实例并提供访问它的全局访问点。

代理模式:动态代理和静态代理,何时使用动态代理。

适配器模式:将一个类的接口转换为客户端需要的另一个接口。适配器模式允许那些由于不兼容的接口而无法协同工作的类一起工作。

装饰器模式:动态地为类添加功能。

观察者模式:有时称为发布/订阅模式,观察者模式定义了一对多依赖关系,允许多个观察者对象同时监听单个主题对象。此状态对象在状态更改时通知所有观察对象,允许它们自动更新。

策略模式:定义一系列算法,逐个封装,并使它们可互换。

外观模式:为子系统中的一组接口提供一致的接口。 Appearance模式定义了一个高级接口,使该子系统更易于使用。

命令模式:将请求封装到对象中,允许您使用不同的请求参数化客户端。

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

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

2.基础知识

Java基本类型,占用字节和范围

Set,List和Map之间的差异和联系

何时使用Hashmap

何时使用Linkedhashmap,Concurrenthashmap,Weakhashmap

哪些集合类是线程安全的

为什么Set,List和Map不实现Cloneable和Serializable接口

Concurrenthashmap的实现,实现1.7和1.8

Arrays.sort的实现

何时使用CopyOnArrayList

使用volatile

使用同步

reentrantlock实现和Synchronied之间的区别

CAS的实施原则和问题

AQS实施原则

接口和抽象类之间的区别,何时使用

类加载机制的步骤,每个步骤的作用,静态和最终修改的成员变量的加载时间

家长代表模式

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

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

JVM内存管理机制:有哪些区域以及每个区域的作用

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

Jvm参数设置和jvm调整

年轻一代内存溢出会发生什么,老一代内存溢出会发生什么?

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

Redis和memcached:何时选择redis,何时选择memcached,内存模型和存储策略是什么?

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

mysql的优化策略是什么?

执行mysql索引B +树实现原理

索引会发生什么变化,不会导致全表扫描

java中bio nio aio的区别和联系

生物被阻止的原因nio是非阻塞的nio就像模型一样

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

反应堆模型和Proactor模型

Http请求消息结构和内容

Http三次握手和四次摇摆

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

Linux命令统计,排序,以前的问题等。

StringBuff和StringBuilder的实现,底层实现是通过字节数据实现的,加上数组的副本

使用cas操作

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

微服务的优点和缺点

线程池参数问题

问题如何确定ip是否在多个ip段中

确定两个数组中任意两个数组的总和是否为给定值

乐观锁定和悲观锁定实现

同步实现原则

你在项目中遇到了什么困难以及如何解决它们

您在项目中完成的杰出亮点

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

生产者消费者代码实现

死锁代码实现

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

Future和ListenableFuture异步回调

算法相关:判断你是否可以从数组中找到两个数并给出一个给定的值,随机生成1~不重复并放入数组,找到数组子阵的最大和,执行二进制搜索算法和它的时间复杂计算

3.其他人

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

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

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

准备建立一个rpc

的准备工作

如果在线服务器经常出现完整的gc,那么如何进行故障排除

如果机器的数量在某个时刻突然变得非常大,服务就无法停止,如何解决它

LUR算法的实现

LinkedHashMap实现了LRU

定义堆栈的数据结构,在可以找到堆栈的最小元素的类型中实现min函数

海量数据处理的解决方案

反应堆模型的演变

阻塞,非阻塞,同步,异步差异

Collection的子接口

Jvm调整相关

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

Nginx负载均衡相关,让您实现负载均衡,如何实现

Linux命令,awk,cat,sort,cut,grep,uniq,wc,top等。

压力测试相关,如何分析,单界面压力测试和多种情况下的压力测量

您认为是什么,您有什么缺点

Spring mvc实现原理

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

缓存设计和优化

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

您项目的系统架构,谈谈整体实施

消息队列使用场景

ActiveMQ,RabbitMQ,Kafka之间的区别