首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

治电EggJS开发规范

6.helper.js 工具,将请求成功和请求失败返回封装函数以及错误封装写到里面 访问方式: ctx.helper 若要在非请求状态下,调用ctx,比如service中使用ctx.helper..., 404: '发出请求针对是不存在记录,服务器没有进行操作。', 406: '请求失败。请求头部不一致,请重试', 410: '请求资源永久删除,且不会再得到。'...,抽象出Service可以多个Controller调用。...客户端向服务器请求数据,服务器返回相关数据 201 资源创建成功。客户端向服务器提供数据,服务器创建资源 202 请求接收。...但处理尚未完成 204 客户端告知服务器删除一个资源,服务器移除它 3.3.2 错误状态码 状态码 错误描述 400 请求无效。数据不正确,请重试 401 请求没有权限。

4.5K10

Android Bitmap加载与缓存

通常情况下图片体积都比较大,单个应用允许使用内存又是有限,所以我们需要采取一些手段减少内存占用并提高加载速度。...从名字就可以看出两者都使用了LRU算法,即优先淘汰那些近期最少使用缓存。 2.1、LruCache LruCache是Android提供一个缓存,一般用来管理内存缓存。...LinkedHashMap构造函数中有一个布尔类型参数, accessOrder ,当它为 true 时元素按访问顺序存储,为 false 时按插入顺序存储。...LruCache只需要每次 put 函数调用后计算当前总缓存大小,当其超出门限值时移除位于LinkedHashMap尾部元素即可。...注意每个Key只能同时获取一个Editor对象,也就是说即使Editor没有做任何操作也要调用 Editor.abort 或 Editor.commit 函数,不然再次获取时函数返回 null 。

65010
您找到你想要的搜索结果了吗?
是的
没有找到

【C++修炼之路】33.特殊设计

掌握常见特殊设计方式 一.设计一个,不能拷贝 拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此想要让一个禁止拷贝,只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。...private,用户自己如果在外定义了,就可以不能禁止拷贝了 只声明不定义:不定义是因为该函数根本不会调用,定义了其实也没有什么意义,写反而还简单,而且如果定义了就不会防止成员函数内部拷贝了。...实现方式: 将构造函数私有,拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。 提供一个静态成员函数,在该静态成员函数中完成堆对象创建。...注:在vs2019中,上面的this必须显示调用没有错误。 三.设计一个,只能在栈上创建对象 方法一:(同上) 将构造函数私有化。 然后设计静态方法创建对象返回即可。...但是这种方法只能封住堆上,却无法封住静态。 所以最好方式就是用方式一。 四.设计一个,不能继承 C++98方式 // C++98中构造函数私有化,派生中调不到基构造函数

13140

LinkedHashMap源码解析

System.out.println(iterator.next()); } } 它不仅仅能保持插入顺序,也可以看元素是否访问调整顺序,下面代码和上面代码区别是多了构造函数和一个元素...LinkedHashMap构造函数和HashMap差不多类似,但多出来上图中最后一个,其中参数多了一个boolean 类型accessOrder,这个其实是否在节点访问和变更后将其移动到双向链表末尾...,你可能注意到了这三个没有实现方法,你可能会很好奇他们有什么用。...afterNodeAccess分别在putVal、merge、replace……总之所有有变动地方调用,这以为着map中最新变动值肯定是会在链表尾部,相反最旧就在头部了(需要在构造函数中开启accessOrder...其实只需要重载下HashMap中removeEldestEntry()方法就行,这个方法会在新节点插入或者旧节点访问后调用

34420

Redis:内存被我用完了!该怎么办?

而长时间未被访问数据,应该被淘汰」 lru算法中数据会被放到一个链表中,链表头节点为最近访问数据,链表尾节点为长时间没有访问数据 「lru算法核心实现就是哈希表加双向链表」。...我来演示一下更骚操作,只需要重写一个构造函数和removeEldestEntry方法即可。...方法返回线程安全map LruCache lruCache = new LruCache(3); Map safeMap = Collections.synchronizedMap...(lruCache); Collections.synchronizedMap实现线程安全方式很简单,只是返回一个代理。...为了能在O(1)时间复杂度内找到访问频率最低数据,我们需要一个变量minFreq记录访问最低频率 每个访问频率有可能对应多个键。

40510

(49) 剖析LinkedHashMap 计算机程序思维逻辑

按插入有序 默认情况下,LinkedHashMap是按插入有序,我们来看代码: Map seqMap = new LinkedHashMap(); seqMap.put...使用LinkedHashMap,可以非常容易实现LRU缓存,默认情况下,LinkedHashMap没有对容量做限制,但它可以容易,它有一个protected方法,如下所示: protected...,在HashMap中,这两个方法实现为空,它们就是设计用来被子类重写,在put调用且键存在时,HashMap会调用EntryrecordAccess方法,在键被删除时,HashMap会调用Entry...了解了内部组成,我们来看操作方法,先看构造方法。 构造方法 在HashMap构造方法中,会调用init方法,init方法在HashMap实现中为空,也是设计用来重写。...LinkedHashSet 之前介绍Map接口实现都有一个对应Set接口实现,比如HashMap有HashSet,TreeMap有TreeSet,LinkedHashMap也例外,它也有一个对应

50760

2024年java面试准备--网络基础篇

400:Bad Request --- 客户端请求语法错误服务器无法理解。 ​ 403:Forbideen --- 服务器理解请求客户端请求,但是拒绝执行此请求。 ​...* @param capacity */ public LRUCache(int capacity) { cache = new LinkedHashMap...,从而破坏环路等待条件,转账场景 面试题 构造方法 构造方法可以重载,只有当没有显性声明任何构造方法时,才会有默认构造方法。...构造方法没有返回值,构造方法作用是创建新对象。 初始化块 静态初始化块优先级最高,会最先执行,在非静态初始化块之前执行。 静态初始化块会在第一次加载时最先执行,因此在 main 方法之前。...This 关键字 this 代表当前对象引用。当前对象指的是调用属性或方法对象 关键字 this 不可以在静态方法中使用。

18120

年底前端面试题总结(上)

A()为构造函数创建对象,本身没有a属性,所以向它原型去找,发现原型a属性属性值为1,故该输出值为1;console.log(new B().a),ew B()为构造函数创建对象,该构造函数有参数...a,但该对象没有传参,故该输出值为undefined;console.log(new C(2).a),new C()为构造函数创建对象,该构造函数有参数a,且传实参为2,执行函数内部,发现if为真,...箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?普通函数通过 function 关键字定义, this 无法结合词法作用域使用,在运行时绑定,只取决于函数调用方式,在哪里调用调用位置。...,没有 arguments,没有 new.target不能通过 new 关键字调用一个函数内部有两个方法:[Call] 和 [Construct],在通过 new 进行函数调用时,会执行 [construct...] 方法,创建一个实例对象,然后再执行这个函数体,将函数 this 绑定在这个实例对象上当直接调用时,执行 [Call] 方法,直接执行函数体箭头函数没有 [Construct] 方法,不能用作构造函数调用

74030

Java 构造函数与修饰符详解:初始化对象与控制权限

Java 构造函数Java 构造函数 是一种特殊方法,用于在创建对象时初始化对象属性。它与名相同,并且没有返回值类型。...构造函数作用:为对象属性设置初始值执行必要初始化操作提供创建对象多种方式构造函数类型:默认构造函数: 无参数构造函数,如果用户没有明确定义构造函数,则 Java 编译器会自动创建一个默认构造函数...y) { x = y; } public static void main(String[] args) { Main myObj1 = new Main(); // 调用默认构造函数...System.out.println(myObj1.x); // 输出 5 Main myObj2 = new Main(10); // 调用带参数构造函数 System.out.println...方法可以在创建对象情况下访问 static void myStaticMethod() { System.out.println("This is a static method.");

11810

图解LeetCode——146. LRU 缓存

实现 LRUCache LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中...如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用关键字。 函数 get 和 put 必须以 O(1) 平均时间复杂度运行。...因为当调用lRUCache.get()或lRUCache.set()方法对某个Node进行操作时候,我们需要将这个Node放到链表尾部,这样,就需要操作该Node节点前置节点和后置节点,为了便于这种操作...; 那么这里还有一个小细节,就是如果待移动节点在头节点,那么我们还需要进行特殊判断(因为头节点没有前置节点PreNode),而同样,如果待删除节点是尾节点,那么我们也需要进行特殊判断(因为尾节点没有后置节点...2, -1); 【初始情况下】head.next = tail; tail.pre = head; 由于我们可以知道LRU链表容量,所以当超出这个容量时候,就将整个链表中,第一个节点删除即可(包含虚拟收尾节点

21120

【C++】特殊设计

设计一个,不能拷贝 一个不能拷贝,那么就让该类不能调用拷贝构造与赋值运算符重载。...所以想要让一个禁止拷贝: C++98方式是将拷贝构造函数与赋值运算符重载只声明不定义,为什么只声明不实现:如果声明的话,实现不知道实现什么样,不能拷贝,没必须要实现了;拷贝构造声明会自动默认生成...只能在堆上创建 只能在堆上创建,也就是只能通过new创建对象: 将构造函数设置为私有,防止外部进行调用构造函数在栈上创建对象 提供获取对象static接口,该接口在堆上创建一个对象返回(向外部提供CreateObj...static StackOnly so2(so1); ---- 设计一个,不能继承 C++98:该类构造函数设置为私有即可。派生中调不到基构造函数,无法继承。...派生构造函数调用时,必须调用构造函数初始化父那一部分成员,父私有成员在子类不可见,所以创建子类对象时无法调用构造函数对父成员进行初始化,因此该类继承后子类不能创建出对象。

18220

【C++】特殊

一、设计一个,不能拷贝 拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此 想要让一个禁止拷贝, 只需让该类不能调用拷贝构造函数以及赋值运算符重载即可 。...只声明不定义:不定义是因为该函数根本不会调用,定义了其实也没有什么意义,写反而还简单,而且如果定义了就不会防止成员函数内部拷贝了。...将构造函数私有,拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。 2. 提供一个静态成员函数,在该静态成员函数中完成堆对象创建。...(静态作用在于不需要对象也能直接调用函数) //只能在堆区构造 class HeapOnly { public: static HeapOnly* Create() { return...---- 四、设计一个,不能继承 C++98方式 构造函数私有化,派生中调不到基构造函数来完成初始化,则无法继承。

14220

Android 框架学习4:一次读懂热门图片框架 Picasso 源码及流程

错误占位图,同时定义了两个抽象方法,这两个方法作用是当图片加载成功后会调用 complete()(参数是拿到图片和加载来源),加载失败后会调用 eror(),子类继承后可以实现自己特定操作。...Picasso 存在就是“外观模式”(也成门面模式)完美体现,它集成了前面提到复杂,然后为我们提供了许多配置方法,这样我们在使用时只需要调用 Picasso 方法即实现目的,不用和更多打交道...实现 缓存使用 LruCache,底层实现是 LinkedHashMap() 线程池是自定义,我们后面介绍 默认请求转换为转换 Picasso.get() //1.获得 Picasso 单例...: 在 WIFI 等网络比较好情况下,Picasso 核心线程、最大线程数为 4 在 4G 等情况下,线程数为 3 在 3G 等情况下,线程数为 2 在 2G 这种恶劣情况下,就只有一个线程了 调用线程池这个方法在...构造函数中看到,它调用了 Utils.calculateMemoryCacheSize(context) 方法来计算要使用内存: //Utils.calculateMemoryCacheSize(

62440

如何设计一个图片加载框架

首先,梳理一下必要图片加载框架需求: 异步加载:线程池 切换线程:Handler,没有争议吧 缓存:LruCache、DiskLruCache 防止OOM:软引用、LruCache、图片压缩、...虚引用: 为一个对象设置虚引用关联唯一目的就是能在这个对象收集器回收时收到一个系统通知。...在Bitmap构造方法创建了一个 BitmapFinalizer,重写finalize 方法,在java层Bitmap回收时候,BitmapFinalizer 对象也会被回收,finalize 方法肯定会被调用...一般情况下我们无需手动调用recycle方法,由GC去盘它即可。...Android 8.0 之后Bitmap像素内存放在native堆,Bitmap导致OOM问题基本不会在8.0以上设备出现了(没有内存泄漏情况下) Fresco 优点是:“在5.0以下(最低2.3

43830

字节二面,问得贼细!!

远程过程执行:远程服务器执行相应过程或函数,并计算结果。 结果返回:结果返回给客户端,客户端获得远程调用返回值。...而RESTful API则可以使用同步或异步请求方式,客户端可以在不等待服务器响应情况下继续执行其他任务。...跨版本兼容性:由于Java字节码是平台无关,因此它可以用于实现跨版本兼容性。你可以在更改代码情况下更改应用程序运行环境或Java虚拟机版本。...当包含defer语句函数返回时,延迟执行函数或方法会按照后进先出顺序从栈中弹出并执行。...具体来说,当函数中包含 defer 语句时,这些 defer 语句中函数调用会被添加到一个栈中,并在当前函数执行结束前(包括执行结束前错误情况)按照后进先出(LIFO)顺序执行。

10110

Glide都在用LruCache,你会几分?

另外我抖音面试在即,也不知道自己水平到了没有,现在出一篇算一篇先。 思维导图 ? 使用方法及结果 在项目中直接导入Glide库,调用内部LruCache来看看效果。...来说也和HashMap一样只有三步骤要走嘛,那我就从这三个步骤入手探索一下LruCache好了,但是我们要带上一个问题出发,initialMaxSize作用是什么?...当然有兴趣探索读者们,我需要提一个醒,就是这次调用不可以直接进行对put()进行查询,那样只会调用到一个接口函数,或者是抽象函数,最适合方法还是使用我们断点来进行探索查询。...看来要做事情也并没有这么多,那我们就先来看看第一次构造出来框架好了。...以上就是我学习成果,如果有什么我没有思考到地方或是文章内存在错误,欢迎与我分享。

45810
领券