
基本概念类
文章平均质量分 53
小小梦里花007
这个作者很懒,什么都没留下…
展开
-
工作流引擎----功能
会签:指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批,需全部同意之后,审批才可到下一审批节点;或签(也有叫“竞签”、““串签””):指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批,只要其中任意一人审批即可到下一审批节点;加签顾名思义就是增加一道审批签名,这道审批往往是临时增加的,标准流程没有规定要走的。在现实工作流程中,加签功能使用率颇高;有时,审批人对内容不太确定,不太敢做主,就会找更高层的领导进行加签;这样就可以规避个人风险;出问题大家一起担。有时为了转载 2021-10-12 10:56:26 · 1413 阅读 · 0 评论 -
深克隆,浅克隆
一、浅克隆:二、深克隆:转载 2021-09-28 10:41:41 · 139 阅读 · 0 评论 -
hash冲突
什么是hash冲突?就是键(key)经过hash函数得到的结果作为地址去存放当前的键值对(key-value)(这个是hashmap的存值方式),但是却发现该地址已经有人先来了,一山不容二虎,就会产生冲突。这个冲突就是hash冲突了。一句话说就是:如果两个不同对象的hashCode相同,这种现象称为hash冲突。解决hash冲突的办法开发定址法(线性探测再散列,二次探测再散列,伪随机探测再散列) 再哈希法 链地址法 建立一个公共溢出区: java中HashM...转载 2021-09-24 10:58:57 · 250 阅读 · 0 评论 -
【主键索引】和【非主键索引】
索引简述索引的目的在于提高查询效率,类比字典;实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,索引列也是要占用空间;常见的MySQL主要有两种结构:Hash索引 和 B+ 树索引,我们使用的是InnoDB和MyISAM引擎,默认的都是B+树;为什么用 B+ 树做索引而不用哈希表做索引?1、哈希表是把索引字段映射成对应的哈希码然后再存放在对应的位置,这样的话,如果我们要进行模糊查找的话,显然哈希表这种结构是不支持的,只能遍历这个表。而B+树则可以通过最左前缀原则快.转载 2021-09-10 14:32:09 · 2579 阅读 · 0 评论 -
Synchronize 和 Lock (ReentrantLock)的区别
一、synchronized和lock的用法区别synchronized:在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加在特定代码块中,括号中表示需要锁的对象。lock:需要显示指定起始位置和终止位置。一般使用ReentrantLock类做为锁,多个线程中必须要使用一个ReentrantLock类做为对象才能保证锁的生效。且在加锁和解锁处需要通过lock()和unlock()显示指出。所以一般会在finally块中写unlock()以防死锁。用法区别比较简单...转载 2021-09-09 17:46:13 · 1728 阅读 · 1 评论 -
【数据库】主键设计原则
一、反范式主键的设计原则主键应当是对用户没有意义的。业务上的‘主键’可以通过唯一键(Unique Key)或唯一索引(Unique Index)和其它约束条件实现 主键应该是单列的,以便提高连接和筛选操作的效率 不要更新主键。实际上,因为主键除了惟一地标识一行之外再没有其他的用途了,所以也就没有理由去对它更新。另外,主键的值通常不重用,意味着记录被删除后,该主键值不再使用 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等 主键应当由计算机自动生成。1.1、确保主键...转载 2021-09-08 17:16:00 · 2596 阅读 · 0 评论 -
LVS是什么
LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以在unix/linux平台下实现负载均衡集群功能。该项目在1998年5月由章文嵩博士组织成立。LVS是一种集群(Cluster)技术,现在LVS已经是 Linux标准内核的一部分,采用IP负载均衡技术和基于内容请求分发技术。集群就得考虑负载均衡;LVS的主要特点有以下几个方面:高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发转载 2021-08-23 17:53:59 · 2918 阅读 · 0 评论 -
nginx是什么
目录1、作为 Web 服务器:高并发静态服务器2、负载均衡服务器3.、虚拟主机4、反向代理正向代理反向代理5、邮件代理服务器在传统的Web项目中,并发量小(tomcat默认配置的最大请求数是150),用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户;但当出现高并发时,为了解决并发,得用负载均衡,这时就得考虑nginx:1、作为 Web 服务器: 高并发 Nginx同Apache...转载 2021-08-23 16:17:51 · 492 阅读 · 0 评论 -
数据库锁的分类
锁的种类:按照锁粒度划分表锁,页锁,行锁 (记录锁,间隙锁,临键锁)按照数据库管理角度划分共享锁,排他锁(独占锁),更新锁,意向锁,计划锁从程序员角度进行划分乐观锁,悲观锁用途共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。 select * from tableName where … + lock in share more select * from tableName(hold...原创 2021-08-12 15:55:56 · 856 阅读 · 0 评论 -
分布式事务BASE
BASE特性BA: Basic Availability 基本业务可用性; S: Soft state 柔性状态; E: Eventual consistency 最终一致性;原创 2021-08-11 15:19:45 · 246 阅读 · 0 评论 -
分布式系统CAP
CAP定义Consistency 一致性即所有节点在同一时间的数据完全一致。即写操作之后的读操作,必须返回该值强一致性对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。弱一致性如果能容忍后续的部分或者全部访问不到,则是弱一致性。最终一致性如果经过一段时间后要求能访问到更新后的数据,则是最终一致性。为什么会不一致?当用户修改不会马上在全网更新,必定会有一个延迟,这个延迟被称为 “不一致窗口”,它的长度取决于系统的负载、冗余的个数等因素。Avail转载 2021-08-09 17:24:46 · 155 阅读 · 0 评论 -
(转)transient
原文链接:https://www.cnblogs.com/lanxuezaipiao/p/3369962.html1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他...转载 2021-07-16 17:02:24 · 129 阅读 · 0 评论 -
设计模式------策略模式(精髓:抽象类)
策略模式: 又叫算法簇模式,算法也是一种策略;它定义了不同的算法族,并且 相互之间可以替换;设计原则: 把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。下面是一个例子。应用例子: 超市收银员收钱,有的商品打折(5折、7折、8折、9折),有的转载 2017-01-12 15:56:11 · 1958 阅读 · 0 评论 -
内存泄露举例
目录内存泄露概念举例内存泄露概念Java中的内存泄露,广义并通俗的说,就是:不再会被使用的对象的内存不能被回收,就是内存泄露。Java中的内存泄露与C++中的表现有所不同。举例在有向图中,我们叫作obj1是可达的,obj2就是不可达的,显然不可达的可以被清理;但当一个对象引用另一对象后,而另一对象为空时,会出现内存泄露;...原创 2021-06-29 16:50:04 · 127 阅读 · 0 评论 -
懒加载lazy
目录一、mybatis中的懒加载二、Bean的懒加载一、mybatis中的懒加载一对多查询mybatis中要不加fetchType默认lazy,即懒加载;问题:我要查询人员记录列表时,用queryRecordByParam时效率慢,单独查一条queryRecordById时效率还可以,找原因发现是懒加载导致的;解决办法是添加配置fetchType='eager';若懒加载:执行 queryRecordByParam 后 RecordMap 里id,code,name.原创 2021-06-29 16:27:37 · 335 阅读 · 0 评论 -
(转)Redis、mongoDB、Memcached区别
>>MemcachedMemcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。支持直接配置为session handle。Memcached的局限性:只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失。无法进行数据同步,不能将M转载 2021-06-25 10:06:00 · 308 阅读 · 0 评论 -
jdk8 Lambda,stream,juc 新特性
1. 获取对象字段的列表List idcards= users.stream().map(User::getIdcard).collect(Collectors.toList());2. 构建列表List list = fileNames.stream().map(i -> { Enclosure enclosure = new Enclosure(); enclosure.setName(i); e...原创 2021-06-24 11:01:45 · 140 阅读 · 0 评论 -
ArrayList原理
一、 数据代码结构public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ // 版本号 private static final long serialVersionUID = 8683452581122892189L; // 缺省容量转载 2021-04-25 15:23:04 · 186 阅读 · 0 评论 -
数据库设计范式
数据库有6大范式,一般到BCNF范式就行了;原创 2021-04-14 16:42:27 · 86 阅读 · 0 评论 -
java关键字----volatile 用途
1. 保证内存可见性线程运行时有些情况得事先说明:不是所有的线程直接对主存进行操作,而是创建自己的工作内存,把主存的数据copy一份,然后对自己的工作内存进行操作后再刷新回主存;那么问题来了?各个线程都对各自工作内存进行操作,然后再刷回去,各自覆盖别人的,这算怎么一回事,到底搞啥业务情形?但若对 private volatile int m=2; 那么读取操作与普通变量相同.但是写入操作发生后会立即将其刷新回主存,并且使其他线程中对这一变量的缓存失效!缓存失效了怎么办呢?去再次读取.原创 2021-04-02 14:04:56 · 212 阅读 · 0 评论 -
mysql索引不一定失效
目录一、索引失效的总结:1,运算符(比较运算符,逻辑运算符)2,函数3,联合索引二、数据库索引type解读三、索引不一定失效1. or 不一定索引失效2. like 不一定索引失效3. in,not in 不一定索引失效4. 【复合索引】 不一定索引失效5.【函数】 不一定索引失效一、索引失效的总结:1,运算符(比较运算符,逻辑运算符)mysql运算符 可能引起索引失效 说明 算术运算符 加减乘除 ...原创 2021-01-26 14:45:03 · 860 阅读 · 0 评论 -
索引失效的7中情况
导致索引失效的情形:1. 运算符where 子句中使用!=或<>操作符转载 2021-01-26 10:33:50 · 223 阅读 · 0 评论 -
(转载)获取字符串中的手机号和固话号
importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassTestC{publicstaticvoidmain(String[]args){//要提前号码的字符串Stringstr="n13977777777s18911111111你好15988888888hha0955-7777777sss0775-6678111";...转载 2020-11-27 15:09:49 · 1282 阅读 · 0 评论 -
(转载) HashMap底层原理 + 扩容机制
目录一、扩容机制二、HashMap底层原理一:HashMap的节点二:HashMap的数据结构三:HashMap存储元素的过程一、扩容机制 初始容量 增长后 增长触发条件 arrayList 10 旧容量*1.5+1 n>10 vector 10 ...转载 2020-11-26 11:47:40 · 2691 阅读 · 3 评论 -
java 限流(流量削峰)的几种方式和学习
一、为什么要限流,怎么限流由于互联网公司的流量巨大,系统上线会做一个流量峰值的评估,尤其是像各种秒杀促销活动,为了保证系统不被巨大的流量压垮,会在系统流量到达一定阈值时,拒绝掉一部分流量。限流会导致用户在短时间内(这个时间段是毫秒级的)系统不可用,一般我们衡量系统处理能力的指标是每秒的QPS或者TPS,假设系统每秒的流量阈值是1000,理论上一秒内有第1001个请求进来时,那么这个请求就会被限流。感觉限流得分情况:比如限定所有请求1s内最多不能访问1000次,那么若有一个用户端捣乱,他一个人1s转载 2020-11-25 10:44:35 · 5422 阅读 · 0 评论 -
简述分布式锁的3种实现方式
分布式锁作为分布式锁,我觉得至少得:1. 资源唯一且能异步多线程访问; 2. 能改变状态(加锁 / 开锁);【数据库】你可以设置字段唯一,可以创建 state 字段;【redis】 的key唯一,能设置value状态;【zookeeper】文件名唯一,状态通过创建文件,删除文件来表示状态;分布式锁存在的问题:1. 因为是分布式大系统,若分布式锁挂了影响甚大;2. 是锁就得考虑死锁;redis设置过期时间,数据库感觉可以考虑定时开锁,zookeeper貌似也可以设置定时任务开锁..原创 2020-11-24 10:47:02 · 816 阅读 · 0 评论 -
聚簇索引 和 非聚簇索引
聚簇索引默认是主键,如果表中没有定义主键,InnoDB 会选择一个唯一且非空的索引代替(类似oracle中的RowId); 主键建议使用自增id,因为主键是相邻的,那么对应的数据一定存在相邻的硬盘上,方便查找; 表中行的物理顺序和索引中行的物理顺序是相同的 InnoDB使用的是聚簇索引;MyISAM使用的是非聚簇索引; 总体来说:聚簇索引 比 非聚簇索引 要好聚簇索引:若根据id查,直接找到数据;若根据name查,先根据name找到对应的id,然后再根据id找到数据;...原创 2020-11-23 15:09:08 · 419 阅读 · 0 评论 -
(转载整理) 数据库索引----B树(又叫B-树),B+树,B*树
在https://blog.youkuaiyun.com/chai471793/article/details/99563704 和https://blog.51cto.com/14442094/2449841上的基础上进行整理参考;各种树的对比和应用B 树(Balance Tree)即为平衡树的意思 名称 对比说明: 平衡二叉树 平衡二叉树又称 AVL 树,在满足二叉查找树特性的基础上,要求每个节点的左右子树的高度差不能超过 1;...转载 2020-11-23 14:12:07 · 273 阅读 · 0 评论 -
红黑树01
一、红黑树存在的意义我们知道二叉树可用来排序查找,下图左边的二叉树不够平衡,查找次数或时间复杂度 O(h)可能会随着一条腿长无限增长;所以就有了右边的【自平衡二叉树】(红黑树)二、树都有哪些类型【平衡二叉树】的平衡稳定是通过查找最低不平衡节递归实现的;【自平衡二叉树】的平衡是通过局部不平衡的动态优化最终达到全局优化的。【二叉树】和【非二叉树】下图是【满二叉树】:高度为h,由2^h-1个节点构成的二叉树称为满二叉树下图是【完全二叉树】:只能最.原创 2020-11-17 15:13:57 · 157 阅读 · 0 评论 -
堆和栈(stack and heap)
1. 【堆】和【栈】的数据结构: [ 数据结构 ] 中的堆、栈是一种逻辑结构,因此是一种抽象的概念;而 [ 程序和进程 ] 中的堆、栈是一种存储结构,因而是一种“具体”或“物理”的概念; 堆是一种经过排序的【树形】数据结构,而栈是【线性】数据结构; 栈可以通过两种方式来实现:使用数组来实现栈,这种栈也称为静态栈;使用链表来实现栈,这种栈也称为动态栈。2. 【堆】和【栈】的用途:堆内存:存放new创建的【对象】和【数组】。(GC垃圾回收)栈内存:存放【...原创 2020-10-28 16:35:47 · 1675 阅读 · 0 评论 -
Java----po,vo,dto等的区别
转自:https://blog.youkuaiyun.com/Simple_i/article/details/93176490转载 2019-12-30 17:11:46 · 170 阅读 · 0 评论 -
json的存在意义(json和String的区别)
我一直不太明白json是个什么东西,虽然一直用,但总感觉json跟String有些微妙的相似感,要说为了进行程序间的数据传递吧,但Java程序中用“@responsebody”标签最后传递的好多都是“return JSON.toJSONString(resultMap)”,那你干脆创建一个String对象传过去得了,非得“json转String”,不是多此一举吗?后来查资料看大家的意见,发现这感觉原创 2018-01-19 16:32:46 · 22760 阅读 · 5 评论 -
hybris----wcms:component、slot等的配置
感觉slot没啥具体的作用,而像是粘合剂,过渡体,两个东西之间的桥梁,slot中还可以再套slot;wcms似乎可以搬运上层的东西放到本层,也可以搬用下层的东西放到本层,所以有时候会绕回去;---------------------------------------------------------------------------------------------------------...原创 2018-02-27 15:06:12 · 480 阅读 · 0 评论 -
异常:"throw/throws"和"try/catch"的区别(二)
研究发生异常时,异常后面的代码还会执行吗?"try/catch"里异常块后的不会执行,抓获后后面的代码会执行;这感觉有点像汇编里的jump指令原创 2017-12-26 12:38:10 · 336 阅读 · 0 评论 -
异常:"throw/throws"和"try/catch"的区别(一)
关于出现异常的处理方法:"throw/throws"和"try/catch",说深了感觉我自己也理解不了,先知道一个区别吧:"throw/throws"后面的程序不会执行,"try/catch"后面的程序还会执行以前印象不叫深的是:曾经处理大量的for循环时,用了throws后for里面报错,导致后面不报错的for都没执行,那时差错的方向错了折腾一阵,后来发现是这... ....详原创 2017-12-26 11:34:12 · 5713 阅读 · 1 评论 -
servlet到底是什么?
java web编程中servlet还挺常见的,但一直都不太明白servlet到底是什么东西,查了资料感觉都get不到我的疑惑点,我自己根据查看的资料整理下: 从单词本身来看,servlet可以拆分为“server缩写+英语后缀-let”,server当然指的是服务器,英语后缀-let表示“小”,整个单词就是“小服务”; 当然人家servlet的全称是jav原创 2016-12-22 13:58:23 · 6162 阅读 · 1 评论 -
extends、implements: 是否要求强制“继承/实现”所有的的“变量和方法”???
extends子类继承父类:1、被private修饰的变量和方法不能被继承;2. 被final修饰的变量和方法不能被继承;3. 构造方法不能被继承;其他的都可以继承,但子类用不用就是另一回事了;子类继承抽象类:1、如果子类是非抽象类,则必须实现抽象类中的所有“抽象方法”;2、如果子类是抽象类,则可以不实现抽象类中的所有方法;抽原创 2017-01-09 15:53:28 · 3327 阅读 · 0 评论 -
小比喻:public、protected、default、private
public、protected、default、private这几个修饰符经常见,没啥好说的,但对我而言不容易记住,至少记得不精确;此处打几个比方帮助自己记得精确点。private:私人的,适用于“本类” 这像通常意义上的伤残补助,伤残补助依附伤残人而存在,伤残人死亡后就没了,伤残补助不能作为离婚时共同财产跟配偶进行分割,也不能让子女继承;------原创 2017-01-09 14:36:49 · 327 阅读 · 0 评论 -
变量的初始化、类的初始化
------------------------------------------------------------------变量的初始化初始化就是给变量一个初始值,如你声明一个变量:String aa = "abc";其中 abc 就是初始化的值 ,最后值不一定是 abc ,比如你覆盖了 aa的值,aa = "def"原创 2017-01-04 14:33:41 · 858 阅读 · 0 评论 -
区别:%{} 、 ${} 、 #
struts2中-------%{ } 、 %{#}、 # # 通常强调从上下文取 例如: #request.name等价于request.getAttribute("name") #session.name等价于session.getAttribute("name")---------------------原创 2017-01-04 09:36:03 · 2277 阅读 · 0 评论