![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
私有代码库
还算善良_
慢慢提升技术;总结的都是工作中真实遇到的一些问题。
展开
-
基于CurrentHashMap实现本地缓存
使用map进行一个本地的缓存处理;以下是简单实现public class LocalMemory { // 数据 static class CacheData { // 过期时间 private Long invalidTime; private Object data; public Long getInvalidTime() { return invalidTime; }原创 2022-03-17 17:49:06 · 1099 阅读 · 0 评论 -
数据库中某一列中使用的是text存储,使用的是逗号分割,查询某一个数据在该列所有数据中的条数【真实场景】
假如数据如下:四列CityStr 1111,1112,1113,1114,1115,1116,1117CityStr 1111,1112,1113,1114,1115,1116,1117CityStr 1111,1112,1113,1114,1115,1116,1117CityStr 1112,1113,1114,1115,1116,1117,1118,1119HYJ_City是数据库表名CityStr是数据库中的某一列1111 是CityStr中的想要查询的数据SELECT原创 2022-03-10 16:55:48 · 820 阅读 · 0 评论 -
面向对象编程相比面向过程编程有哪些优势?
1、对于大规模复杂程序的开发,程序的处理流程并非单一的一条主线,而是错综复杂的网状结构。2、面向对象编程比起面向过程编程,更能应对这种复杂类型的程序开发。面向对象编程相比面向过程编程,具有更加丰富的特性(封装、抽象、继承、多态)。3、利用这些特性编写出来的代码,更加易扩展、易复用、易维护。从编程语言跟机器打交道的方式的演进规律中,我们可以总结出:面向对象编程语言比起面向过程编程语言,更加人性化、更加高级、更加智能。...原创 2022-03-09 14:22:20 · 1431 阅读 · 0 评论 -
【封装、继承、多态】总结
1. 关于封装特性封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式来访问内部信息或者数据。它需要编程语言提供权限访问控制语法来支持,例如 Java 中的 private、protected、public 关键字。封装特性存在的意义,一方面是保护数据不被随意修改,提高代码的可维护性;另一方面是仅暴露有限的必要接口,提高类的易用性。2. 关于抽象特性封装主要讲如何隐藏信息、保护数据,那抽象就是讲如何隐藏方法的具体实现,让使用者只需要关心方法提供了哪些功能,不需要知原创 2022-03-09 14:16:28 · 119 阅读 · 0 评论 -
继承存在的意义是什么?它能解决什么编程问题?
继承最大的一个好处就是代码复用。假如两个类有一些相同的属性和方法,我们就可以将这些相同的部分,抽取到父类中,让两个子类继承父类。这样,两个子类就可以重用父类中的代码,避免代码重复写多遍。不过,这一点也并不是继承所独有的,我们也可以通过其他方式来解决这个代码复用的问题,比如利用组合关系而不是继承关系。如果我们再上升一个思维层面,去思考继承这一特性,可以这么理解:我们代码中有一个猫类,有一个哺乳动物类。猫属于哺乳动物,从人类认知的角度上来说,是一种 is-a 关系。我们通过继承来关联两个类,反应真实世原创 2022-03-09 14:11:27 · 426 阅读 · 0 评论 -
面向对象几个问题
1. 什么是面向对象编程?面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。2.什么是面向对象编程语言?面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。3. 如何判定一个编程语言是否是面向对象编程语言?如果按照严格的的定义,需要有现成的语法支持类、对象、四大特性才能叫作面向对象编程语言。如果放宽要求的话,只要某种编程语言支持类、对象语原创 2022-03-09 14:04:30 · 59 阅读 · 0 评论 -
常用的设计原则
单一职责原则开闭原则里氏替换原则接口隔离依赖倒置DRY 原则、KISS 原则、YAGNI原则、 LOD法则1. 创建型常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。不常用的有:原型模式。2. 结构型常用的有:代理模式、桥接模式、装饰者模式、适配器模式。不常用的有:门面模式、组合模式、享元模式3. 行为型常用的有:观察者模式、模板模式、策略模式、职责链模式、迭代器模式、状态模式。不常用的有:访问者模式、备忘录模式、命令模式、解释器模式、中介模式。...原创 2022-03-09 14:01:20 · 86 阅读 · 0 评论 -
使用多线程的方式模拟高并发请求接口,用于自测接口的稳定性【项目】
package com.gitee.taven.test;import com.gitee.taven.ApiResult;import com.gitee.taven.aop.RepeatSubmitAspect;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframew.原创 2024-03-28 21:03:51 · 1628 阅读 · 0 评论 -
Java 将list集合按照指定大小进行分割 方便使用多线程处理【项目】
有时候业务场景集合的数量很大,如果单处理的话耗时严重,所以可以进行集合的分割,然后使用多线程的方式进行批量处理,节约时间。 public static <T> List<List<T>> splitList(List<T> list, int groupSize){ int length = list.size(); /** * num 可以分成的组数 **/ int n原创 2022-03-04 11:37:47 · 1339 阅读 · 0 评论