跳到主要内容

46 篇文档带有标签「Java」

查看所有标签

01 单例模式

- 单例模式:保证整个系统中一个类只有一个对象的实例

03 工厂模式

- 工厂模式可以分为三类:简单工厂模式、工厂方法模式、抽象工厂模式

05 外观模式

- 外观模式(Facade Pattern)又称为门面模式,结构型设计模式,通过引入一个外观角色来简化客户端和子系统之间的交互,为复杂的子系统调度提供一个统一的入口,降低子系统和客户端的耦合度

06 装饰者模式

- 装饰者模式指的是在不改变原文件和不使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装类对象,也就是装饰着来包裹真实的对象实现的

07 代理模式

- 代理(Proxy)模式:是一种结构型设计模式,给某一个对象提供代理对象,并由代理对象控制对源对象的引用

08 观察者模式

- 观察者模式(Observer Pattern):定义对象间一种一对多的依赖关系,使得每一个对象改变状态时,所有依赖于它的对象都会得到通知并自动更新

ArrayList

- ArrayList 的数据结构基于数组实现,这个数组不像普通定义的数组,它可以在 ArrayList 的管理下插入数据时按需动态扩容、进行数据拷贝等

BIO、NIO、AIO的区别

- IO 模型:简单理解为,使用什么样的通道进行数据的发送和同步,很大程度上决定了程序通信的性能

ForkJoin框架

- Fork/Join 框架是 Java 并发工具包中一种可以将一个大任务拆分为多个小任务来异步执行的工具,自 JDK1.7 引入

Java 中的代理实现方式

当一个对象不适合或者不能被其他对象直接引用时,可以给该对象生成一个代理对象,代理对象具有被代理对象的所有功能,这样其他对象使用代理对象时一样可以达到自己的需求

JVM 面试题

1. 描述一下 JVM 内存模型,以及这些空间存放的内容

LinkedList

- LinkedList: 基于链表实现,由双向链表next、prev把数据节点穿插起来,并非所有的插入都是高效的,比如在中间区域插入,需要遍历元素找到插入位置

Stream

- Stream API 是一种流式的数据处理风格,将要处理的数据当作流,在管道内进行传输,并在管道中的每个节点对数据进行处理,比如过滤、排序、映射、聚合等

ThreadLocal

* ThreadLocal 主要解决线程内资源共享问题,一般会用在全链路监控中

类代理方式

* 反射: 有代理的地方几乎都有反射,它们是一套互相配合使用的功能类,在反射中可以调用方法、获取属性、拿到注解等相关内容,这些都可以与接下来的类代理组合使用,完成各种框架中的技术场景

红黑树

* 红黑树: 是一种高效的自平衡二叉查找树,最初被称为对称二叉B树,可在近似O(logN)的时间复杂度下完成插入、删除、查找等操作

锁升级

- 锁升级 = 无锁 => 偏向锁 => 轻量级锁 => 重量级锁