- 博客(244)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 提问的智慧
JDK动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1)抽象角色:指代理角色和真实角色对外提供的公共方法,一般为一个 接口2) 真实角色:需要实现抽象角色接口,定义了真实角色所要实现的业务逻辑,以便供代理角色调用。也就是真正的业务逻辑在此。3) 代理角色:需要实现抽象角色接口,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方
2021-10-08 15:03:21
242
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 养成好的学习习惯
1.学习本身是一个不断试错的过程,我们不必为过程中的“犯错”而斤斤计较,懊恼沮丧。2.学习至少包含三个阶段,才能算得上是一个完整的学习过程:⑴学习前的准备阶段:无论是心理准备、对学习对象的判断,亦或是自身学习进程的规划、记录等,都是我们可以准备的。当我们面对新的学习对象时,切莫“冲动行事”。⑵学习时的练习阶段:不断练习、回忆、理解等,都可算是练习。⑶学习后的效果阶段:学习后,一定要有一个结果。结果的判定不应局限,越多样越好。这个结果最好是令你满意的。“满意”的标准不应设置太高,力所能及的基础上有
2019-10-05 00:34:26
181
2
原创 redis linux下添加启动关闭服务脚本&使用service命令直接操作
redis linux系统下编辑启动关闭服务的脚本,并将其添加到启动脚本目录,可使用service命令直接操作
2022-06-02 09:45:08
598
原创 添加全局的js工具类
import commonUtils from ‘…/…/common/util/index’Vue.prototype.$commonUtils = commonUtils
2022-01-06 13:53:43
596
转载 索引法则--LIKE以%开头会导致索引失效进而转向全表扫描(使用覆盖索引解决)
1 准备数据1.1 建表DROP TABLE IF EXISTS staff;CREATE TABLE IF NOT EXISTS staff (id INT PRIMARY KEY auto_increment,name VARCHAR(50),age INT,pos VARCHAR(50) COMMENT ‘职位’,salary DECIMAL(10,2));1.2 插入数据INSERT INTO staff(name, age, pos, salary) VALUES(‘Alic
2021-12-28 10:21:18
1090
原创 ConcurrentHashMap实现原理总结
战国千年 漫画姬青,带着不死挂,穿越到了高武版的春秋战国时代。 你有剑气如渊,我能不死不灭!你有盖世魔功,我能不死不灭!你有近神之招,我能不死不灭! (刻意强调金手指) 如何让昊天骨物尽其用;且看一个死不了的普通人,如何在这阶级森严,战乱不休的大争之世,只手挽天倾。九黎在远古时代是一个部落联盟,居住在黄河流域中下游地区以及长江流域一带。即山东、河北、河南、江苏地区。九黎以蚩尤为首领,有八十一......
2021-11-17 13:36:58
135
原创 养成好的工作习惯
1. 做工作日志每次招新人进来,我都会要求他,每天下班后写一份工作日志,第二天发给我。做这样的要求,不是为了检查他们的工作,而是为了培养起这个习惯。这份工作日志也不是给我看的,而是给他们自己看的。为什么要这样做呢?无论多忙,每一天下班之后,都要抽出时间问问自己:我这一天获得了什么?如果每天都在重复前一天的事情,没有任何变化,那你这一天就是浪费掉了,因为没有获得任何成长。长此以往,半年,一年,三年,你的能力不会有任何提升,只会一直停留在初级职位上,做着最基础的工作。一个优秀的人,必然是追求不断成长
2021-11-01 10:19:38
109
原创 2021-10-25
从今天开始,自己一个人好好生活对明天可期,对生活希冀真诚温柔对待自己的朋友亲人不背后议论他人好坏多喝热水,注意卫生,勤洗衣物不抽烟,不喝酒,尽量不熬夜,早休息只要有时间自己买菜做饭多和爸爸哥哥通电话多做一些好事,多微笑丢掉曾经拥有的一切,不再假装拥有学习专业,生活常识,努力提升自己的技能,提高自己的不可替代性...
2021-10-25 12:20:26
111
原创 说话的艺术
最得体的肢体语言真诚的微笑及偶尔有意义地点点头。偶尔慢点头介绍全名客观的身份描述直到你和人谈话的时候至少一半儿的时间接触到对方的眼神不时地把眼睛移开 至少高过对方的肩膀如何有效倾听专心感兴趣回应开放式问题,获取更多的资源场景演练 沟通技巧...
2021-10-23 19:35:08
85
原创 初级算法汇总
数组拥有非常高效的随机访问能力,只要给出下标,就可以用常量时间找到对应元素。有一种高效查找元素的算法叫作二分查找,就是利用了数组这个优势。至于数组的劣势,体现在插入和删除元素方面。由于数组元素连续紧密地存储在内存中,插入、删除元素都会导致大量元素被迫移动,影响效率。总的来说,数组所适合的是读操作多、写操作少的场景。package chapter2.part1;/** * Created...
2021-10-18 14:08:50
203
转载 ES2015简介和基本语法
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。也就是说,ES6就是ES2015。说明:此文章根据《实战ES2015:深入现代JavaScript+应用开发》这本书做的笔记,更多详细内容请查看书籍。电子版在文章底部。一、ECMAScript的发展历程image.png二、ES2015能为实际开发带来什么ECMAScript的发展速度在不断加快,影响范围越来越大,除了Web前端开发以外
2021-09-20 14:57:29
460
转载 Dubbo一致性哈希负载均衡算法
第一节:哈希算法本小节主要是为了介绍一致性哈希算法做铺垫。简单的介绍了哈希算法解决了什么问题,带来了什么问题。第二节:一致性哈希算法本小节主要是通过作图对一致性哈希进行了简单的介绍。介绍了一致性哈希是怎么解决哈希算法带来的问题,怎么解决数据倾斜的问题。第三节:一致性哈希算法在Dubbo中的应用本小节是全文重点,通过一个"骚"操作,对Dubbo一致性哈希算法的源码进行了十分详细的剖析。从整个类到类里面的每个方法进行了详尽的分析,打印了大量的日志,配合图片,方便读者理解。第四节:我又发现了一个Bug
2021-09-17 09:01:35
580
原创 设计模式 装饰模式
多线程方式The simplest way to start parallel processing is to add a TaskExecutor to your Step configuration.去开启并行程序是去增加一个TaskExecutor 对象到一个Step 对象最简单的方式。@Beanpublic TaskExecutor taskExecutor(){ r...
2021-09-12 19:07:20
82
原创 Spring中涉及的设计模式总结
注解类型的声明使用@interface ,继承 Java.lang.annotaion.Annotaion接口自定义注解中,实现部分只能定义注解类型元素访问修饰符为public元素只能是基本数据类型、String、枚举类型、注解类型(体现了注解的嵌套效果)以及上述类型的数组该元素一般定义为名词,如果注解只有一个元素,把名字起为value()不是定义方法参数的地方,也不能在括号中定义任...
2021-09-11 16:46:30
175
原创 非关系型数据库和关系型数据库区别
对账与差错处理系统文件命名规范遵循数据共享系统定义的文件命名规范,一、yum安装svn二、创建SVN版本库及版本库目录[root@sihan ~]# mkdir -p /usr/svn/repo[root@sihan ~]# svnadmin create /usr/svn/repo三、修改svn的配置文件四、设置svn的账号密码五、设置svn的账号权限六、启动svn版本库在远...
2021-09-11 15:34:26
738
转载 书写是为了更好的思考
Mybatis提供了一般查询和流式查询模式,先说一下怎么配置1、一般查询2、流式查询测试场景mysql中循环插入100,000条数据IDEA运行时堆内存设置为初始分配堆内存20m,最大堆内存30m。如下先使用一般查询测试:可以发现这里GC占用大量时间为了释放很小的空间,这是一种保护机制。由于堆内存太小,导致需要频繁的GC垃圾回收。官方给出的解释:超过98%的时间用来做GC并且回收了不到2%的堆内存时抛出的异常。大概意思就是Mybatis一次性将所有的数据查出,放到当前JVM的堆内存中,堆内存
2021-09-08 11:28:48
99
原创 如何写会议纪要
什么是高并发呢?多个进程或线程同时(或者说在同一段时间内)访问同一资源会产生并发问题。高并发原理图初期解决方案系统或服务器级别的解决方案1)增大服务器的CPU。2)增加内存条。3)增加硬盘个数,对硬盘做Raid5。4)换掉免费的Tomcat,使用商用weblogic(美国Oracle公司出品的)5)增加到二块网卡。6)聘请系统架构师优化Linux内核7)甚至花高价直接购买高性能服务器随着业务的不断增加,服务器性能很快又到达瓶颈2.应用级别的解决方案1)网页HTML 静态化(需要
2021-09-08 10:15:39
467
1
原创 activi
1:什么是工作流,工作流的核心对象是什么,activiti共操作数据库多少张表工作流就是多个参与者,按照某种预定义的规则,传递业务信息,进行审核的功能一个框架(Activiti)processEngine,调用Service,从而操作数据库的表23表2:工作流中RepositoryService、RuntimeService、TaskService、HistoryService分别表示什么操作RepositoryService:流程定义和部署对象RuntimeService:执行管理,包括流
2021-08-14 11:15:56
269
原创 MySQL 流式查询
大数据量查询容易OOM?试试MySQL流式查询一、前言程序访问MySQL数据库时,当查询出来的数据量特别大时,数据库驱动把加载到的数据全部加载到内存里,就有可能会导致内存溢出(OOM)。其实在MySQL数据库中提供了流式查询,允许把符合条件的数据分批一部分一部分地加载到内存中,可以有效避免OOM;本文主要介绍如何使用流式查询并对比普通查询进行性能测试。二、JDBC实现流式查询使用JDBC的PreparedStatement/Statement的setFetchSize方法设置为 Integer.MI
2021-08-10 17:24:21
3788
原创 千万级数量的导出成excel文件
Excel 2003及以下的版本。一张表最大支持65536行数据,256列Excel 2007-2010版本。一张表最大支持1048576行,16384列POI这个类库POI要操作excel 2007及以上的版本需要使用XSSF来代替上面代码的HSSF。POI3.8版本 SXSSF的方式,用于超大数据量的操作,好处:SXSSF实现了一套自动刷入数据的机制。当数据数量达到一定程度时(用户可以自己设置这个限制)。像文本中刷入部分数据;缓解了程序运行时候的压力。达到高效的目的。分批读取,用LIMIT,
2021-08-05 16:55:19
1928
原创 java基础 抽象类&接口
为什么Java类只能继承一个父类?C++里多重继承功能强大但是容易出错 ,C类有一个方法m;A和B类继承C类,重写了m方法;D类又继承A和B类,D调用父类m方法,是调a还是b?所以才要有接口,接口方法都重写。继承一个类;实现多个接口;区别抽象类接口关键字继承抽象类的关键字为extends,一个类只能继承一个抽象类实现接口的关键字为implements,一个类可以实现多个接口成员方法抽象方法的访问类型可以是public,protected,可以包含静态方法,抽象类为部
2021-07-06 21:36:27
68
原创 dubbo 事务处理如何保持一致性?
一、结合MQ消息中间件实现的可靠消息最终一致性二、TCC补偿性事务解决方案三、最大努力通知型方案第一种方案:可靠消息最终一致性,需要业务系统结合MQ消息中间件实现,在实现过程中需要保证消息的成功发送及成功消费。即需要通过业务系统控制MQ的消息状态第二种方案:TCC补偿性,分为三个阶段TRYING-CONFIRMING-CANCELING。每个阶段做不同的处理。TRYING阶段主要是对业务系统进行检测及资源预留CONFIRMING阶段是做业务提交,通过TRYING阶段执行成功后,再执行该阶段。默认如
2021-07-06 16:44:01
875
原创 jvm 深拷贝和浅拷贝
面试题:深拷贝和浅拷贝(超级详细,有内存图)基本类型和引用类型的理解深度深拷贝和浅拷贝主要是针对对象的属性是对象(引用类型)一 、基本类型和引用类型的区别
2021-07-06 16:42:29
308
原创 fastjson 使用测试实例
```javapackage cn.hsa.mbs.pertreatmentmgt.maternitytreatmgt.maternityallowancemgt.bo.impl;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.serializer.SerializerFeature;import lombok.AllArgsCons...
2021-05-25 10:23:00
361
原创 前端 数组操作 求差集
const arr = checkedItems const brr = this.havedItems for (let i = 0; i < brr.length; i++) { for (let j = 0; j < arr.length; j++) { if (arr[j] === brr[i]) { arr.splice(j, 1) j-- }
2020-07-24 13:01:52
625
原创 幂等性 mq重复消费
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><div class="aa">123 <p class="bb">123 <span class="bb"123>123</span&
2020-07-10 16:25:17
992
原创 vue ref引用 修饰符sync
<template> <div> <NotepadHeader/> <div class="empty" v-show="!isShow"> <div class="no-data"> <img src="@/assets/no-data.png" class="no-data-img"/> <span class="no-data-text">暂无数据<.
2020-07-10 10:56:11
327
原创 js 去掉对象数组某个属性
// 要求:// 现有数组对象:let arr = [{featureId: 1, featureContent: ‘全新未用’, checked: ‘0’},{featureId: 2, featureContent: ‘验货面付’, checked: ‘0’},{featureId: 3, featureContent: ‘快递包邮’, checked: ‘0’},{featureId: 4, featureContent: ‘保修期内’, checked: ‘0’},{featureId
2020-07-03 14:08:17
2168
1
原创 oracle 复杂查询(1)
--69 查询emp和dept表,产生笛卡尔积(多表行相乘)select * from emp, dept;--70 加where条件过滤查询emp和dept表产生的笛卡尔积select * from emp, dept where emp.deptno = dept.deptno;--71 查询emp和dept表,产生笛卡尔积(多表行相乘),并为表取别名select * from emp e, dept d;--72 查询雇员姓名,所在部门编号和名称select e.ename,
2020-07-01 16:09:51
274
原创 Oracle基础——单行函数(类型转换函数)
Oracle基础——单行函数(类型转换函数)在执行运算的过程中,经常需要把一种数据类型转换成另一种数据类型。数据转换分成隐式转换和显式转换两种。隐式转换自动完成,显式转换必须通过转换函数实现。函数描述TO_CHAR(date,‘format’)按照指定格式format将数字或日期类型转为字符串TO_NUMBER(char)将包含了数字的字符串转为数字数据TO_DATE(string,‘format’)按照格式format把字符串转换成日期数据TO_DATE
2020-07-01 11:51:45
173
原创 Oracle基础——单行函数练习(二)
--1.查询系统当前日期select sysdate from dual;--2.请查询每个员工的名字、薪水和加薪15.5%之后的薪水(trunc取整)Select last_name, salary, trunc(salary * 1.155) "new salary" from employees;--3.显示员工加薪15.5%(取整)之后员工的名字、原薪水和增加的薪水。(不允许做update操作,trunc取整)Select last_name, salary, trunc(sala
2020-07-01 11:18:55
202
原创 Oracle基础——单行函数练习(一)
--1.查询部门30中的所有员工信息select * from emp where deptno = 30;--2. 列出所有办事员(CLERK)的姓名,编号和部门编号select ename, empno, deptno from emp where job = 'CLERK';--3. 找出奖金高于薪金的员工信息select * from emp where comm > sal;--4. 找出奖金高于薪金的60%的员工信息select * from emp where c
2020-07-01 10:58:24
216
原创 MySQL 报错> 1055 -Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated c
select * from V$NLS_PARAMETERSNLS_LANG=“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”select * from V$NLS_PARAMETERS步骤二:在环境变量中添加两条配置信息,鼠标右键我的电脑(计算机/此电脑)等图标,选择属性,选择高级系统设置,选择高级选项卡的环境变量,在系统变量里新建两条配置:1、LANG=zh_CN.GBK(GBK是这样形式的,不同编码这里的value值需要跟着改变)2、NLS_LANG=AMERIC
2020-06-30 18:37:03
1439
原创 IDEA使用Git,快捷键总结
场景介绍:工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程Git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七:小张获取小袁提交的分支场景八:小张把分支合并到主干场景一:小张创建项目并提交到远程Git仓库创建好项目,选择
2020-06-17 10:45:45
2683
原创 Maven 介绍,常见问题
一.Maven简介Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。二.Maven安装参考菜鸟教程:https://www.runoob.com/maven/maven-setup.html下载地址:http://maven.apache.org/download.cgiJDK要求:1.7+Maven要求版本:3.5+磁盘:Maven 自身安装需要大约 10 MB 空间
2020-06-17 09:54:03
262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人