
后端
文章平均质量分 67
肆〇
后端开发工程师,主攻Java、C#等后端语言及其主流技术生态,以及数据库SQL、算法。博客主要围绕后端开发、算法设计与开发、SQL编写与优化,也会穿插一些开发相关的新技术、新思想。为保证博客质量,采用周更的方式,每周二晚8:00进行更新,欢迎一起交流探讨、批评指正。
Let's code the world together!
展开
-
PO,BO,VO,DTO和POJO
一、POJO(Plain Ordinary Java Object,无规则简单Java对象)二、VO(View Object,视图对象)用于表现层,它的作用是把某个指定页面(或组件)的所有数据封装起来。VO通常是 Web 向模板渲染引擎层传输的对象。根据业务的需要,对应页面显示(web页面/swt、swing界面)的数据对象。三、DTO/TO(Data Transfer Object,数据传输对象)用于表现层与服务层之间的数据传输对象,它不应该包含业务逻辑。DTO可以是Service转载 2022-03-30 17:46:00 · 214 阅读 · 0 评论 -
身份证编码与校验码计算规则
身份证编码规则根据《中华人民共和国国家标准GB11643-1999》(参考,可能有更新的)中有关公民身份号码的规定,公民身份号码是特征组合码,号码共18位,由17位数字本体码和1位数字校验码组成。1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 编码类别 编码位数 位次 描述 细分位次 细分描述 地址码 6 1-6 表示编原创 2022-04-28 22:32:54 · 3202 阅读 · 0 评论 -
软件测试相关知识
在软件开发过程中,尤其对于大项目来说,版本提测前,开发人员要进行自测,类似于版本冒烟,当然这并不包括代码调试等工作。有效的软件测试技巧可以让程序员事半功倍,同样因为不恰当的测试方法也可能使得程序员满头大汗。因此,作为后端开发人员,在软件开发过程中,掌握一定的软件测试相关知识是有必要的。原创 2022-03-17 22:59:55 · 1312 阅读 · 0 评论 -
信息检索——查全率和查准率
在信息检索领域,信息检索系统(Information Retrieval System,IRS)是指根据特定的信息需求而建立起来的一种有关信息搜集、加工、存储和检索的程序化系统,而在设计与开发IRS(如文献IRS、图书IRS等)时,需要考虑系统在使用过程中的实际效果,因此提出一些指标来体现IRS系统的信息检索效果,本博客将介绍查全率与查准率的概念与计算规则,二者是反映检索效果的重要指标。原创 2022-04-21 18:01:33 · 3985 阅读 · 0 评论 -
java中的值传递和引用传递
值传递(Pass By Value或者Call By Value)是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。一般java中的基础类型数据传递都是值传递。引用传递(Pass By Reference或者Call By Reference)一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。一般java中实例(包装)对象的传递是引用传递。一、基本类型和引用类型在内存中的不同之处int num = 10;String str = "hello"原创 2022-03-02 23:16:39 · 4537 阅读 · 0 评论 -
LinkedList数组列表内部增删改查源码分析
本文对源码中的注释进行了翻译解读,源码注释需查阅源码一、增将指定的元素追加到此列表的末尾,这个方法相当于addLast。参数 e 要追加到此列表的E类元素 返回 boolean (由Collection.add指定) public boolean add(E e) { linkLast(e); return true; }将指定的元素插入到此列表中的指定位置。将当前位置的元素(如果有的话)和随后的元素向右移动(给它们的原创 2022-03-01 18:25:27 · 240 阅读 · 0 评论 -
ArrayList数组列表内部增删改查源码分析
对源码中的注释进行翻译解读,源码注释需查阅源码一、ArrayList1.增将指定的元素追加到此列表的末尾参数 e 将要添加到此列表的元素 返回 boolean as specified by {@link Collection#add} public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementDat原创 2022-03-01 17:17:12 · 378 阅读 · 0 评论 -
iteration报错ConcurrentModificationException测试
测试代码,仅作个人记录,请切勿盲目参考。1.public class IterationTest { public static Integer integer= 0; public static void main(String[] args) { List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { lis原创 2022-02-28 23:00:49 · 295 阅读 · 0 评论 -
解决Hash冲突四种方法
Hash算法只是一个定义,并没有规定具体的实现简述把任意长度的输入,通过Hash算法变换成固定长度的输出,这个输出就是Hash值。哈希值的空间远小于输入的空间,所以可能会发生“哈希碰撞”,即两个不同的输入,产生了同一个输出。Hash算法常用于消息摘要的场景 MD5、SHA都属于Hash算法的实现。简单使用凡是涉及到分布式的系统,就会有负载均衡和数据分布的问题。为了让连接(或者数据)能够分布得更均匀,很多时候会使用到Hash算法 Hash取模 (hash(request) % n)...原创 2022-02-24 11:24:41 · 3003 阅读 · 0 评论 -
HashMap源码解读(一)
本文对HashMap部分源码按照出现顺序进行翻译解读,绿色英文为HashMap源码中的注释,中文为注释对应翻译,代码段中为相应源码 *仅供参考原创 2022-02-23 22:31:27 · 396 阅读 · 0 评论 -
properties配置文件乱码问题
properties配置文件出现上面的乱码问题。问题原因:配置文件的编码方式不正确,应该是UTF-8:原创 2022-02-22 19:14:10 · 2367 阅读 · 0 评论 -
递归陷入死循环的判断方法与解决措施(java代码)
怎么及时发现程序陷入死循环?首先根据死循环的判断依据:周期性调用相同方法名传入相同参数。那么只需要判断这个方法连续或非连续(多线程)传入的参数是不是和之前一样就可以了,这里我定义了两个静态参数,一个是这个方法当前传入的参数(这里暂时定为一个),另一个参数是连续传入的参数的次数,只要传入参数和当前参数不一样,那么就将当前参数进行修改覆盖,计数置为0。这样在计数达到一定值(10或20或100,具体视业务的复杂程度)的时候就判定此方法陷入了死循环。发现死循环之后需要让程序执行什么操作呢?在发现死循环之后及时原创 2022-02-20 21:34:25 · 4736 阅读 · 1 评论 -
java创建与删除文件(文件夹)
创建文件夹并在文件夹下创建文件:public class CreateFileApplication { public static void main(String[] args) { //创建文件夹,这里写文件路径,如:"src/main/java/document" File folder = new File(""); //如果文件夹不存在 if(!folder.exists()){ //创建文件夹原创 2022-02-18 16:13:01 · 2003 阅读 · 0 评论 -
java字节流和字符流的实例练习(OutputStream、BufferedOutputStream、InputStream、BufferedInputStream)
一、字节流输入输出:下面是一个字节流的输入输出案例练习,包括的类有OutputStream(输出流)、BufferedOutputStream(缓冲输出流)、InputStream(输入流)、BufferedInputStream(缓冲输输入流):public class xxPutStreamTest { public static void main(String[] args) throws IOException { String currentPath = "s原创 2022-02-17 17:41:34 · 651 阅读 · 0 评论 -
拦截器与过滤器
拦截器(Filter) 过滤器(Interceptor) 实现原理 基于Java的反射机制(动态代理) 基于函数回调 使用范围 一个Spring组件,并由Spring容器管理,并不依赖Tomcat等容器,是可以单独使用的。不仅能应用在web程序中,也可以用于Application、Swing等程序中。 实现的是 javax.servlet.Filter 接口,而这个接口是在Servlet规范中定义的,也就是说过滤器Filter 的使用要依赖于Tomcat等容器,...原创 2022-02-15 22:03:07 · 105 阅读 · 0 评论 -
关于Spring的IOC和AOP
1、控制反转(IOC)与依赖注入(DI)1.1 Spring IOC 容器简介及其优点:Spring 框架的核心是Spring容器。容器创建对象,将它们装配在一起,配置它们并管理它们的完整生命周期。Spring 容器使用依赖注入来管理组成应用程序的组件。容器通过读取提供的配置元数据来接收对象进行实例化,配置和组装的指令。该元数据可以通过XML,Java注解或Java代码提供。Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期..原创 2022-02-14 22:26:07 · 366 阅读 · 0 评论 -
OCR(文字识别)功能与ASR(语音识别)的java应用开发(基于百度智能云)
本文记录OCR(文字识别)功能与ASR(语音识别)的java应用开发(基于百度智能云)过程原创 2022-02-11 17:42:32 · 3889 阅读 · 0 评论 -
JVM系列——基础知识(学习笔记)
基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。区别:基于栈式架构的特点:跨平台性;指令集小但是指令多;设计和实现更简单,适用于资源受限的系统;避开了寄存器的分配难题;使用零地址指令方式分配;指令流中的指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更小,编译器容易实现;不需要硬件支持,可移植性更好,更好实现跨平台。执行性能比寄存器要差一些。基于寄存器架构的特点:典型的应用是x86同样执行2+3的操作,其指令分别如下:寄存器原创 2022-02-10 22:11:55 · 192 阅读 · 0 评论 -
java对象形参传递修改自定义对象与基本类型包装类型的不同
基本类型的包装类型的对象:public class Test { public static void main(String[] args) { String string = "冰墩墩"; System.out.println("==========String改变属性值==========="); System.out.println("原对象:" + string); System.out.println("方法返回值:"原创 2022-02-09 22:27:32 · 829 阅读 · 0 评论 -
关于java中的配置文件
排序内部排序插入排序需要进行n-1次比较希尔排序冒泡排序需要进行n-1次比较选择排序快速排序基数排序(桶排序)归并排序(分治排序)外部排序当待排序的序列中数据元素太多无法满足内部排序的运行时,会使用外部存储进行外部排序。分为2个阶段:第一阶段,根据内存大小将序列分成若干段,每一段都能够存储在内存中,并使用内部排序方法在内存中完成排序,然后把排好序的段(初始归并段)存储到外存中。第二阶段,使用归并排序对这些初始归并段进行归并,逐渐扩大归并段的长度并减少.原创 2022-02-06 20:44:06 · 2594 阅读 · 0 评论 -
IDEA关于git的快捷操作
首先安装gitee插件,记得安装完成后点击Apply然后点击OK,然后点击gitee选项点击add accout进行登录,这里需要填写的是gitee的注册邮箱名以及密码,点击登录即可:快捷键的使用:上图中,1表示的是从远程拉取代码到本地,相当于git命令中的git pull,点击后将会出现:2表示的是将本地代码提交到缓存,相当于git commit -m'description',点击后将会出现选择操作,以及可以添加当前提交事件的描述:3表示的是从本地缓存推送到远程分...原创 2022-02-03 22:50:37 · 2058 阅读 · 0 评论 -
java从文件读取String对象与将String对象写入文件
一、输出:从java对象输出到文件中:java对象可以是String、StringBuffer、StringBuilder类型等,文件的格式可以是.txt/.doc/.docx格式等。原创 2022-01-29 19:51:32 · 8466 阅读 · 0 评论 -
ZooKeeper相关知识点
什么是ZooKeeper ZooKeeper 提供了什么? Zookeeper 文件系统ZAB 协议? 四种类型的数据节点 Znode Zookeeper Watcher 机制 -- 数据变更通知客户端注册 Watcher 实现服务端处理 Watcher 实现客户端回调 WatcherACL 权限控制机制 Chroot 特性 会话管理 服务器角色 Zookeeper 下 Server 工作状态 数据同步 zookeeper 是如何保证事务的顺序一致性的? 分布式集群..转载 2022-01-27 22:50:40 · 530 阅读 · 0 评论 -
java中类的加载与对象的创建
Java中一个对象的创建分两步: 加载类,创建对象。java类的加载过程:java中对象的创建过程:加载类是将所写的程序.java文件编译生成的.class文件加载到内存中,保证了对象创建的预置环境。类加载完毕后才可以创建该类的对象。第一步:加载类 当开始运行一个类,虚拟机首先试图访问指定启动类的 .main() 方法,加载该类的 .class 文件。 如果该类有父类,那么继续加载其父类,以此类推,直到加载出所有与main入口类相关的类(它的父类,父类的父类等)。...原创 2022-01-26 21:50:52 · 874 阅读 · 0 评论 -
JVM系列——运行时数据区学习笔记
class文件——>ClassLoader SubSystem——>running data area ——>GC本地方法栈、本地方法接口、本地方法库虚拟机栈:方法1(栈帧1)、方法2(栈帧2)方法区和堆是进程私有(95%是在堆区,5%是在方法区)程序技术器,虚拟机栈,本地方法栈是线程私有一个JVM实例对应一个运行时数据区(一个Runtime对象)线程:线程是一个程序的运行单元,一个进程有多个线程,每一个线程与操作系统的本地线程直接映射,当一个java线程准备原创 2022-01-25 23:17:10 · 3161 阅读 · 0 评论 -
java后端项目中的简单文件操作(文件的增删改查)
先来看下项目各部分在文件操作过程中各自的职责:前端:数据上传的入口;文件展示的窗口后端:上传后文件在生成记录(文件id)并在数据库中写入记录;通过记录(文件id)从数据库中拿到文件数据库:存储文件的记录(文件id)或者文件路径文件存储服务器:在本地的话其实就是本地文件夹,用于存储文件实体原创 2022-01-24 21:18:22 · 2736 阅读 · 0 评论 -
关于java中的公共响应类
BaseResponse公共响应类原创 2022-01-20 23:07:50 · 1260 阅读 · 0 评论 -
接口文档与接口文档管理工具
1.接口文档的定义:在项目开发汇总,web项目的前后端是分离开发的。应用程序的开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。2.接口文档的功能与目的:(1)项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发(2)项目维护中或者项目人员更迭的时候,方便后期人员查看、维护3.接口文档规范:首先了解一下接口,接口分为四部分:请求方法、url、请求参数、返回参数:(1)方法:常用的方法就是下面的四种:GET PUT PO原创 2021-07-14 11:19:52 · 15928 阅读 · 1 评论 -
关于java中的容器、集合(Array、List、Map、Set......)
MapMap集合概述和特点概述:将键映射到值的对象一个映射不能包含重复的键每个键最多只能映射到一个值Map接口和Collection接口的不同Map是双列的,Collection是单列的Map的键唯一,Collection的子体系Set是唯一的Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构是针对元素有效Map集合的功能概述a:添加功能V put(K key,V value):添加元素。这个其实还有另一个功能?替换如果键是第一次存储,就直接存储元素,原创 2021-10-03 18:07:19 · 1924 阅读 · 0 评论 -
报错[已解决]:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
报错[已解决]:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.(SpringBoot连接数据库) Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. ...原创 2021-06-04 15:50:37 · 45835 阅读 · 0 评论 -
js中的键值对互相转换
有些情况下后端传的参数需要在前端进行一一对应,以下方法是我平时用过的一些方法,不同的业务场景需求是不同的,具体要看项目中的需求以及要实现的功能,来选择下面的方法去使用,合适的才是最好的。1.下标对应这种情况适用于后端传过来的id数量少且数量级为个位数或者两位数的情况,比如1~10或1~20:<template> <span>{{front[backend.id]}}</sapn></template><script>原创 2021-08-26 22:59:16 · 2350 阅读 · 0 评论