动态代理和静态代理,由于公司的某些原因和对

作者: 编程  发布:2019-10-09

1、常用设计模式

1、常用设计模式

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

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

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

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

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

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

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

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

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

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


时隔两年,再一次的面临离职找工作,这一次换工作有些许的不舍,也有些许的无奈。个人所在的技术团队不错,两年时间成长了很多,也很不舍这个团队。但是,由于公司的某些原因和对于自身未来发展的综合考虑,又不得不得离去,去寻找更合适的地方成长和发展。相比于两年前,现在找工作没有那么的着急,也没有那么的迫切,也没有特别想去的公司,反正去大厂互联网公司基本都是加班加点的。也许,这是工作三年的我即将面临的一个坎吧。对于未来的选择和考虑,对于未来的恐惧吧。也许我是杞人忧天,也许是上天注定我将去某一家公司,不管怎样,坚持做最好的自己!不停进步,不停成长!

【Java高级开发工程师】近一个月的面试总结 - 皮斯特劳沃 - 博客频道 - CSDN.NET http://blog.csdn.net/pistolove/article/details/73610588

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

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不重复并放入数组,求数组的子数组的最大和,二分查找算法的实现及其时间复杂计算


下面将最近面试遇到的一些题目进行汇总如下,希望对现在正在找工作的同学和现在面临毕业找工作的同学有所帮助。

时隔两年,再一次的面临离职找工作,这一次换工作有些许的不舍,也有些许的无奈。个人所在的技术团队不错,两年时间成长了很多,也很不舍这个团队。但是,由于公司的某些原因和对于自身未来发展的综合考虑,又不得不得离去,去寻找更合适的地方成长和发展。相比于两年前,现在找工作没有那么的着急,也没有那么的迫切,也没有特别想去的公司,反正去大厂互联网公司基本都是加班加点的。也许,这是工作三年的我即将面临的一个坎吧。对于未来的选择和考虑,对于未来的恐惧吧。也许我是杞人忧天,也许是上天注定我将去某一家公司,不管怎样,坚持做最好的自己!不停进步,不停成长!
下面将最近面试遇到的一些题目进行汇总如下,希望对现在正在找工作的同学和现在面临毕业找工作的同学有所帮助。
1、常用设计模式
单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证一个类仅有一个实例,并提供一个访问它的全局访问点。

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

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的区别

  • JVM内存分配策略和垃圾回收时机

  • JVM垃圾回收策略和对象的实际生命周期

  •  

1、常用设计模式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2、基础知识

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

2、基础知识
Java基本类型哪些,所占字节和范围

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

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

Set、List、Map的区别和联系

Set、List、Map的区别和联系

2、基础知识

什么时候使用Hashmap

什么时候使用Hashmap

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

什么时候使用Linkedhashmap、Concurrenthashmap、Weakhashmap

什么时候使用Linkedhashmap、Concurrenthashmap、Weakhashmap

Set、List、Map的区别和联系

哪些集合类是线程安全的

哪些集合类是线程安全的

什么时候使用Hashmap

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

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

什么时候使用Linkedhashmap、Concurrenthashmap、Weakhashmap

Concurrenthashmap的实现,1.7和1.8的实现

Concurrenthashmap的实现,1.7和1.8的实现

哪些集合类是线程安全的

Arrays.sort的实现

Arrays.sort的实现

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

什么时候使用CopyOnArrayList

什么时候使用CopyOnArrayList

Concurrenthashmap的实现,1.7和1.8的实现

volatile的使用

volatile的使用

Arrays.sort的实现

synchronied的使用

synchronied的使用

什么时候使用CopyOnArrayList

reentrantlock的实现和Synchronied的区别

reentrantlock的实现和Synchronied的区别

volatile的使用

CAS的实现原理以及问题

CAS的实现原理以及问题

synchronied的使用

AQS的实现原理

AQS的实现原理

reentrantlock的实现和Synchronied的区别

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

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

CAS的实现原理以及问题

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

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

AQS的实现原理

双亲委派模型

双亲委派模型

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

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

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

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

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

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

双亲委派模型

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

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

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

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

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

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

jvm参数的设置和jvm调优

jvm参数的设置和jvm调优

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

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

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

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

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

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

jvm参数的设置和jvm调优

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

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

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

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

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

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

mysql的优化策略有哪些

9159.com ,mysql的优化策略有哪些

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

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

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

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

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

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

mysql的优化策略有哪些

java中bio nio aio的区别和联系

java中bio nio aio的区别和联系

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

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

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

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

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

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

java中bio nio aio的区别和联系

Reactor模型和Proactor模型

Reactor模型和Proactor模型

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

http请求报文结构和内容

http请求报文结构和内容

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

http三次握手和四次挥手

http三次握手和四次挥手

Reactor模型和Proactor模型

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

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

http请求报文结构和内容

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

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

http三次握手和四次挥手

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

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

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

cas操作的使用

cas操作的使用

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

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

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

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

微服务的优缺点

微服务的优缺点

cas操作的使用

线程池的参数问题

线程池的参数问题

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

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

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

微服务的优缺点

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

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

线程池的参数问题

乐观锁和悲观锁的实现

乐观锁和悲观锁的实现

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

synchronized实现原理

synchronized实现原理

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

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

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

乐观锁和悲观锁的实现

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

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

synchronized实现原理

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

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

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

生产者消费者代码实现

生产者消费者代码实现

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

死锁代码实现

死锁代码实现

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

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

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

生产者消费者代码实现

Future和ListenableFuture 异步回调相关

Future和ListenableFuture 异步回调相关

死锁代码实现

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

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

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

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

3、其它

Future和ListenableFuture 异步回调相关

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

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

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

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

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

3、其它

搭建一个rpc需要准备什么

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

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

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

搭建一个rpc需要准备什么

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

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

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

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

LUR算法的实现

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

搭建一个rpc需要准备什么

LinkedHashMap实现LRU

LUR算法的实现

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

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

LinkedHashMap实现LRU

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

海量数据处理的解决思路

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

LUR算法的实现

reactor模型的演变

海量数据处理的解决思路

LinkedHashMap实现LRU

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

reactor模型的演变

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

Collection的子接口

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

海量数据处理的解决思路

jvm调优相关

Collection的子接口

reactor模型的演变

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

jvm调优相关

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

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

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

Collection的子接口

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

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

jvm调优相关

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

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

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

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

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

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

spring mvc的实现原理

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

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

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

spring mvc的实现原理

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

缓存的设计和优化

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

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

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

缓存的设计和优化

spring mvc的实现原理

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

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

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

消息队列的使用场景

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

缓存的设计和优化

ActiveMQ、RabbitMQ、Kafka的区别

消息队列的使用场景

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

以上内容为近期的面试总结。后续如有新的内容,会持续更新。
如果感兴趣可以参看两年前我写的一篇面试总结:[http://blog.csdn.net/pistolove/article/details/46753275](http://blog.csdn.net/pistolove/article/details/46753275)

ActiveMQ、RabbitMQ、Kafka的区别

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

更多干货推荐

消息队列的使用场景

1.史上最强 Java 中高级面试题整理

ActiveMQ、RabbitMQ、Kafka的区别

2.史上最强 Spring Boot & Cloud 教程整理

3.史上最强架构设计分布式技术干货整理

更多请扫描下方的二维码关注我们的微信公众号,干货每日推送!

9159.com 1Java技术栈

本文由9159.com发布于编程,转载请注明出处:动态代理和静态代理,由于公司的某些原因和对

关键词:

上一篇:没有了
下一篇:没有了