youyichannel

志于道,据于德,依于仁,游于艺!

0%

访问者模式

作用:操作某对象结构中各个(各层级)元素,在不改变元素整体结构的前提下,定义作用于这些新元素的新操作。

阅读全文 »

组合模式和访问者模式:

  • 组合模式注重树形结构数据包装
  • 访问者模式注重对不同层次数据操作

二者可以完美搭配,除此之外,二者的UML类图中部分元素是重叠的。

阅读全文 »

桥接模式(桥梁模式),作用:将抽象和实现解耦 => 将抽象部分和实现部分分离

适用场景:扩展第三方登录服务。

阅读全文 »

适用于对项目进行扩展,适配器模式的好处是不修改原有逻辑进行功能扩展,但是随着功能的增加,适配器的适配种类也会增多。

适用场景:在原有账号密码登录的基础上实现第三方登录。

简介

适配器模式,一个用于将一类的接口适配成用户所期待的接口,能够帮助不兼容的接口变得兼容。

阅读全文 »

AQS简介

AQS 全称是 AbstractQueuedSynchronizer,抽象队列同步器。

AQS是用来构建锁或者其他同步器组件的重量级基础框架,是整个JUC体系的基石;

AQS通过内置的自定义的CLH队列来完成获取资源的线程的排队工作,将每个要抢占资源的线程封装成Node节点来实现锁的分配,同时存在一个volatile变量state表示持有锁的状态。

AQS核心数据结构CLH参考资料:https://mp.weixin.qq.com/s/jEx-4XhNGOFdCo4Nou5tqg

阅读全文 »

ThreadLocal概述

通常情况下,在程序中创建的变量是可以被任何一个线程访问并修改的。那么如果想实现每一个线程都有自己的专属的本地变量该如何解决?

JDK原生的java.lang.ThreadLocal类作用就是在多线程中为每一个线程创建单独的变量副本,相当于线程单独的private static类型变量。

ThreadLocal的作用和同步机制:

  • ThreadLocal是为了保证多线程环境下数据的独立性
  • 同步机制是为了保证多线程环境下数据的一致性
阅读全文 »

问题

n件物品,一个最多能背重量为w的背包,第i件物品的重量是weight[i],价值是value[i]

每件物品只能使用一次

问:将那些物品装入背包里物品价值总和最大?

阅读全文 »