- 博客(79)
- 资源 (5)
- 收藏
- 关注
原创 数据结构基本概念
数据对象-数据元素-数据项(属性),前者由后者组成。2、结构类型(由原子类型组成,例如数组)3、抽象数据类型(例如Java里面的类)定义:按某种关系的数据元素的集合。1、原子类型(例如整型)
2023-09-02 12:46:03 603
原创 zookeepper学习笔记
第 1 章 Zookeeper 入门1.1 概述Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。Zookeeper工作机制Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。1、 服务端启动时去注册信息(创建都是临时节点)2、客户端获取到当前
2022-06-26 12:05:23 412
原创 vue ref属性
定义被用来给元素或者子组件打标识的属性(对应js的id属性)应用场景应用在html标签上,获取的是真实的dom元素:<h1 v-text="msg" ref="title"></h1>应用在组件标签上,获取的是组件实例对象:<School ref="component"/>最佳实践如下代码,点击按钮前的内容是没有设置字体颜色的,现在需求要将字体颜色设置为红色,这时候我们就得使用ref属性。首先在<h1>标签属性上打上ref="title"标
2022-05-01 18:07:42 1084
原创 vue 脚手架文件结构及render函数的作用
vue脚手架文件结构.文件目录├── node_modules├── public│ ├── favicon.ico: 页签图标│ └── index.html: 主页面├── src│ ├── assets: 存放静态资源│ │ └── logo.png│ │── component: 存放组件│ │ └── HelloWorld.vue│ │── App.vue: 汇总所有组件│ └── main.js: 入口文件├── .gitigno
2022-05-01 16:41:29 202
原创 通过天气案例学习vue的计算属性和监控属性
计算属性computed里面可以写一些函数用于处理要显示的动态变化的信息,监控属性watch可以监控某个变量的状态然后再去执行对应的方法。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-e
2022-03-27 13:56:42 888
原创 分析插入排序
题目给你一个n代表有n个数字,然后你需要使用插入排序将这些数字从小到大排好。输入描述:第一行输入一个n,代表有n个数字第二行输入n个数输出描述:输出排序好后的n个数示例1输入44 3 2 1输出1 2 3 4思路1、先把0~1下标的数排序,3比3小交换4和3,结果:3 4 2 12、然后把0~2下标的数排序,2比4小交换2和4,2比3小,交换2和3,发现3和4之前排过序了,所以只需要拿最后一个数一直与前面的数比较,如果小就交换,结果:2 3 4 13、然后把0~3下标的数排序
2022-02-27 12:30:37 449
原创 springboot自动配置原理
注册入口所在包springboot入口代码:@SpringBootApplicationpublic class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); }}@SpringBootApplication里面是:@SpringBootConfiguratio
2022-02-23 22:49:50 177
原创 时间复杂度和空间复杂度
定义时间复杂度是算法中,描述常数级时间操作数量的指标。计算方法首先列出操作表达式,然后只要高阶项(高阶项系数也去除)。举例N个数从小到大排序,取最坏的情况,N、N-1…4、3、2、1排序,那么先找最小的数需要N次查询和比较,还需要N次更新最小值的下标,就可以把最小值更新到最前面。以此内推,第二个数需要(N-1)次查询、比较和更新…总计aN*N+bN+c次,只留最高阶,即时间复杂度是O(N^2)。熟悉了之后,因为知道表达式是计算等差数列之和且系数会被去掉,所以一开始都是考虑最坏的情况。应用评价一
2022-02-22 17:00:50 356
原创 linux service管理
学韩顺平linux的笔记:定义service本质就是运行在后台监听某个端口的守护进程,比如mysqld、sshdservice管理指令service 名称 [ start | stop | restart | status | reload ]使用虚拟机终端查询有哪些service,关闭其中的network,会发现使用MobaXterm没法输入linux命令并且过会儿超时断开。再通过指令开启,恢复原样。[zxomm@zyc01 init.d]$ ll /etc/init.d/总用量 40-
2021-12-07 23:31:10 383
原创 docker作用及三要素
docker作用1、解决不同环境部署的问题2、解决集群部署的问题,一次镜像构建,处处运行(war包——》镜像)docker定义解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术docker优势1、更轻量:仅包含业务运行所需runtime环境,CentOS/Ubuntu基础镜像仅170M;宿主机可部署100~1000个镜像2、更高效:无操作系统虚拟化开销docker三要素1、镜像:打包好的运行环境,是容器的模板2、容器:容器是镜像创建运行的实例。3、仓库:
2021-09-21 19:23:28 478
原创 python编程 cs61A笔记01-02
What is Computer Science?什么问题用计算可以解决?如何用技术高效解决那些问题? content = "ada asdfsf sdfasdfs asdfasdfawsf wwwsadfwww abwwwba" test = content.split() words = set(test) var = {w for w in words if w == w[::-1] and len(w) > 5} print(var)输出:{'ab
2021-09-20 22:53:38 359
原创 如何保证分布式系统接口幂等?
为什么要保证接口幂等这是实战经常遇到的一个问题,举个例子:我们系统的开票接口受理对方系统的报文(结算单号settleNo+开票单号ticketNo)由于网络抖动或者前端提交多次导致同一笔重复请求,如果不设置幂等,我们系统就会受理多笔相同的请求,最终可能导致多次重复开票的问题。所以我们要保证接口幂等,使得重复请求只会成功一次。同步锁synchronized可行吗同步锁synchronized只能解决单机Jvm的接口幂等,由于分布式系统有很多台机器,该方法无法应对。如何保证分布式接口幂等mysql唯
2021-01-15 22:47:51 260
原创 查询隧道数据里面的字段的值
隧道数据里面存放了{“incomeType”,“2423423”}这样的字符串,使用REPLACE(JSON_EXTRACT(e.TUNNELDATA, ‘$.incomeType’),’"’,’’)求得“2423423”select b.BP_NO, REPLACE(JSON_EXTRACT(e.TUNNELDATA, '$.incomeType'),'"','') AS INCOME_TYPE, REPLACE(JSON_EXTRACT(e.TUNNELDATA, '$.
2020-10-28 02:58:00 196
原创 only_full_group_by bug
sql执行报错: select DATA_TYPE as taskType, BP_NO as bpNo , MAIN_COMPANY_CODE as mainCompanyCode, TRANDATE as transDate, FILE_BATCH_NO as fileBatchNo from cs_settle_detail where DATA_TYPE= #{dataType,jdbcType=VARCHAR}
2020-10-28 01:48:43 123
原创 Mysql 34道经典试题答案及解析
首先初始化数据:drop table if exists dept;drop table if exists salgrade;drop table if exists emp; create table dept( deptno int(10) primary key, dname varchar(14), loc varchar(13) ); create table salgrade( grade int(11), losal int(11), hisal
2020-09-10 22:43:02 2483
原创 mycat水平拆分——按用户ID分表
为什么要分表当订单表的订单数达到上千万时,查询效率就会变慢,于是就需要分表。为什么按照用户ID分表订单表如果按照主键ID分表的话,那么同一个用户的订单可能分布在不同的机器节点上,查询起来效率不如同一个节点的。所以最好按照用户ID分表。server.xml主要用于定义用户以及系统相关变量,如端口等。这里为了与mysql作区分,name取用户名mycat,另外设置逻辑库名。<user name="mycat"> <property name="pas
2020-08-30 18:25:37 1265
原创 linux启动mycat遇到各种报错,踩坑艰难爬出
1、linux到mycat下的bin文件,执行客户端启动命令:./mycat console,却发现没有权限,于是chmod 777 具体文件,给各个文件都加上操作权限。2、继续执行./mycat console,报错:wrapper | Launching a JVM...wrapper | JVM exited while loading the application.jvm 5 | Java HotSpot(TM) Server VM warning: ignoring optio
2020-08-23 22:36:54 4454 6
原创 sql分组函数
分组函数:count、max、min、avg、sum分组函数自动忽略null,null与任何值运算,结果都为null分组函数不可直接在where子句中使用!因为分组函数是在group by后面执行的,而group by又在where后面执行。所以where 后面不能是分组函数。分组函数通常与group by一起使用,按照某个字段分组。如果没有group by,则自成一组count(*)是记录包含null的总条数,count(字段名)是记录不含null的总条数分组函数也叫多行处理函数,意思是多条记录
2020-07-20 23:46:51 369
原创 循环依赖报错 Requested bean is currently in creation: Is there an unresolvable circular reference?
原因今天做项目遇到了这个坑,字面上看是触发了循环依赖,由于我使用的是构造器注入,所以遇到循环依赖就会导致报错。如图所示,我的依赖链形成了一个环路。为什么构造器注入不行因为要实现循环依赖就得在A调用B,B再调用A的时候,A提前放入singletonFactories三级缓存,否则A和B都没法实例化。而加入singletonFactories三级缓存的前提是执行了构造器,所以构造器注入的循环依赖没法解决,它使用了自己的构造器。spring源码如下: // Eagerly cache singleton
2020-06-29 20:03:40 15030 1
原创 mysql索引总结
索引的本质索引是为了高效获取数据排好序的数据结构索引的目的如果没有索引,那么你是通过全表查询查找数据的,因为数据分散在磁盘的各个地方,所以会没有顺序的查很多次,而且每次查询都是一次磁盘IO交互,可想而知数据越来越多,查询速度会越来越慢。如图所示,通过排好序的数据结构,获取数据会更高效。当然索引底层并不是二叉树,这里只是大致做个形象的对比。为什么数据结构不用二叉树呢?因为二叉树在index一直递增的情况下,由于后面一个总是比前面的大,数据是单边查询的,效率也不高。...
2020-06-14 22:22:23 144
原创 Spring扩展
Spring实例化流程要想对Spring进行扩展,首先得先了解Spring实例化流程。如下UML图所示,像普通Java类一样,运行Main方法后,JVM将类文件加载到方法区。public class Test { public static void main(String[] args) { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); //S
2020-05-31 18:07:46 556
原创 Spring的循环依赖
Spring的两个Bean可以循环依赖吗?我们首先在一个Spring项目里面准备两个Bean,让它们互相依赖注入:@Componentpublic class IndexService { @Autowired private UserService userService; public IndexService() { System.out.println("from IndexService"); } public void getUserService() { user
2020-05-27 23:58:19 446
原创 OpenJdk源码阅读——Object
wait public static void main(String[] args) throws InterruptedException { Object o = new Object(); o.wait();}报错:在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,当前线程等待。 换句话说,此方法的行为就好像它仅执行wait(0) 调用一样。当前线程必须拥有此 对象监视器 。该线程发布对此监视器的所有权并等待 ,直到其他线
2020-05-25 13:01:12 253
原创 Web项目动态部署
Web项目为什么要动态部署因为我们测试环境与生产环境的很多配置不尽相同,比如FTP上传或下载路径等。我们通过动态部署就可以根据不同环境发布不同的配置。动态部署如何实现步骤一:如下图所示,spring启动时,applicationContext.xml里面的propertyConfigurer复制加载文件配置,比如这里先到/WEB-INF目录下以键值对的形式加载application.properties的内容到内存,比如此处ip.ftp.proxyFtpConfig是key,/proxy/是value
2020-05-22 13:04:19 480
原创 单元测试错误Mock了Mapper对象导致invocationtargetexception
今天在别人写了一半的单元测试基础上准备覆盖下剩下的,于是写下如下测试代码:@Mockprivate FcoCertMapper fcoCertMapper; PowerMockito.when(fcoCertMapper.selectCertInfoList(Mockito.any(CertQueryDto.class))).thenReturn(infoVos); certManageServiceImpl.selectCertInfoList(dto);执行后报错
2020-05-18 12:36:29 2288
原创 JDK源码学习范围和顺序
Java源码下面主要学习如下7个包io math lang net nio time util最先学lang,lang里面先学散列在包中的各个类,再学里面的reflect、annotation包然后学util,util里面先学散列在包中的各个类,再学里面的concurrent、function、stream包接着学io、time、nio、math、net这几个包优先级详见:猴子哥哥1024的总结...
2020-05-17 16:10:22 406
原创 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
系统报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.XXX.frids.mapper.FridsUserLoginInfoMapper.insert定位问题报错提示mybatis无效的绑定,Mapper与xml文件没有绑定好,FridsUserLoginInfoMap...
2020-04-28 17:02:19 131
原创 maven安装jar包到本地仓库并且跳过单元测试
首先通过命令行进入到Pom文件所在文件目录,然后输入命令:mvn clean install -Dmaven.test.skip=true
2020-04-26 20:44:22 324
原创 mybatis插入数据后返回自增主键
场景我们在插入数据后经常需要返回自增主键的值方法在xml文件的insert标签中加入keyProperty=“id” useGeneratedKeys=“true” <insert id="insert" keyProperty="id" useGeneratedKeys="true" parameterType="com.suning.frids.dmo.FridsUserLog...
2020-04-26 19:20:23 207
原创 受理接口流程及常用工具包总结
一、应用场景上游通过RPC调用我们的系统,我们首先通过API层受理,然后API层调用BIZ层处理业务逻辑。二、受理接口步骤1、参数转换将Map<String, Object>类型的入参转为我们接口文档定好的对象,通常使用fastJson来处理。 FridsUserLoginInfoDto dto = JSON.parseObject(JSON.toJSONString(pa...
2020-04-26 14:28:14 196
原创 Spring揭秘——什么是IOC和DI
一、IoC的基本概念IoC全称Inversion of Control,即控制反转。它的核心技术是DI (Dependency Injection),即依赖注入。什么是IOC?打个比方,我们要做一个系统,为客户提供股票新闻。通常我们需要从不同的新闻社订阅新闻来源,然后通过批处理程序定时到指定的新闻服务器抓取最新的股票新闻,接着保存数据库,最后在前端显示。代码如下:public class F...
2020-02-23 22:39:43 215
原创 Effective Java 第一章——引言
本书大多数规则都源于以下几条基本原则:1、清晰性和简洁性:模块用户不该被模块行为迷惑2、代码应该被重用而不是被拷贝3、模块之间的依赖应尽可能最小4、错误应该尽早被检测出,最好是编译时Java支持四种类型1、接口2、类3、数组4、基本类型注意:前三种通常被称为引用类型,类的实例和数组是对象,而基本类型不是对象。...
2020-02-12 22:03:36 159
原创 Spring实战笔记之装配Bean
任何一个成功的应用都是由多个为了实现某一个业务目标而相互协作的组件构成的。例如:在一个在线购物系统中,订单管理组件需要和产品管理组件以及支付组件协作。在Spring中,对象无需自己查找或创建与其关联的其他对象,容器负责把需要相互协作的对象引用赋予各个对象。创建应用对象之间协作的关系的行为通常称为装配,这也是依赖注入的本质。Spring装配bean的可选方案1、在XML中进行显示配置2、在...
2020-01-31 21:48:38 200
原创 Spring实战笔记之依赖注入
Spring的作用Spring是为了简化企业级应用开发而创建的。Spring是如何简化Java开发的它采取了以下4种关键策略:1、基于POJO的轻量级和最小侵入性编程2、通过依赖注入和面向接口实现松耦合3、基于切面和惯例进行声明式编程4、通过切面和模板减少样板式代码基于POJO的轻量级和最小侵入性编程Spring竭力避免因自身的API而弄乱应用代码,最多使用下Spring的注解。...
2020-01-30 22:07:00 306
原创 Spring官方文档总结(持续更新)
Spring IoC容器和bean的介绍这是一个对象定义他们的依赖的过程,容器在创建bean时注入这些依赖。因为不再是自己new依赖,让spring控制,所以也叫做控制反转(IoC)。BeanFactory接口提供了配置框架和基本功能。ApplicationContext是BeanFactory的子接口,它提供更多企业级应用的相关功能。容器概述org.springframework.con...
2020-01-17 20:12:03 523
spring-framework-5.1.x.zip
2020-01-09
servlet_java_idea_demo.rar
2019-11-29
tomcat_80.rar
2019-11-23
矩阵键盘中断扫描程序
2013-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人