- 博客(30)
- 收藏
- 关注
原创 Atomic&Unsafe
开头先写一遍事务的四大特性:ACIDA(atomicity) 原子性C(consistency)一致性I(isolation)隔离性D(durability)持久性正文Atomic:原子更新包常用的有12个类基本类:AtomicInteger,AtomicLong,AtomicBoolean引用类型:AtomicReference,AtomicReferenceFieldUpdater,AtomicMarkableReference原子更新数组类:AtomicIntegerArray,At
2020-09-14 15:44:06 193
原创 mvcc理解不全
我们在mysql的innodb结构下主要适用的是(REPEATABLE-READ)可重复读隔离界别,可解决脏读,不可重复读,但不能解决幻读。可重复读的情况加,在开启事务之后,每次查询的结果都是一样的,不管数据是否被修改提交,主要就是mvcc(Multi-Version Concurrency Control)实现的。mvccundo:任务日志链是对一行数据反复修改产生的版本,每次修改后都会有一个指针,指向上一个修改记录,并且用两个隐藏字段trx_id和roll_pointer把这些undo日志串联起来
2020-08-11 16:37:29 207
原创 swagger2 404的坑
网上很多都说swagger2的404是因为没有/sagger-ui.html的映射,但是这个东西好tm坑的 看版本的我不知道什么版本开始 他映射变了 我使用的是springfox-swagger2 2.9.2版本swagger-bootstrap-ui 1.9.1版本以前是swagger-ui.html但是后来变成了doc.html注意修改映射或者注意访问地址的变动...
2020-07-22 09:59:17 822 1
原创 java启动参数配置
4G以下可以用parallel,4-8G可以用ParNew+CMS,8G以上可以用G1使用parallel垃圾回收-XX:+UseParallelGC -XX:+UseParallelOldGC使用ParNew+CMS垃圾回收-XX:+UseParNewGC XX:+UseConcMarkSweepGC使用G1垃圾回收-XX:+UseG1GCgc信息打印查看-XX:+PrintGCDetails打印内存溢出问题(前面是打印方法,后面是输出地址)-XX:+HeapDumpOnOutOf
2020-07-07 09:44:01 4298 1
原创 类加载机制
类加载机制,说白了就是去寻找我们所需要的类, 比如我们在main方法中写了个Math.abs(-1),取值的绝对值,那我们就需要去获取Math类,获取Math类的过程就是类加载。具体介绍代码之前,我们先看看类加载的过程,首先我们要知道,这个不是继承关系,图是这样画,但是没有继承这个打印出来的就是类加载工具所能找到的所有类信息看到了这些数据,我们就可以讲双亲委派的流程了,在类加载的时候,会去调用loadClass方法,这个是整个类加载机制的关键方法,进入这个方法的时候是使用的app加载类,但是他不
2020-06-15 15:14:34 112
原创 mysql索引理解
说到mysql,很多面试官会问mysql的底层存储结构,mysql的存储引擎,什么是聚簇索引之类的问题,我这边就好好写写这些是什么。首先mysql底层结构是啥,b+tree。很多人都会说这个,然后呢这个是怎么实现的,开始懵逼的,只能记得一些模棱两可的答案,我这边其实也差不多,基本属于模模糊糊,看一遍忘一遍。我们先来张数据库表吧,假设表名为Tcol1col2col31一帆风顺2020-02-022双龙戏珠2020-02-033三阳开泰2020-02-04
2020-05-27 15:08:11 267
原创 spring容器如何加载切面对象after
上一篇我们讲了before,这里我们讲after这边我们看里面的return方法,返回的必要信息,除了一个shouldskip其他的基本没有什么意义,上一篇就讲过了,shouldskip也讲过了,只是原来是从容器中将所有object对象拿出来一个个比对拿到切面修饰的方法,这里就直接能从缓存中拿出来了,因为before已经放入过缓存了。接下来我们看关键方法,源码里也有了注释,创建代理如果有增强器我们看到里面的方法是这样的,没什么特色,就是查询代理对象如果有就返回没有就返回一个空我们继.
2020-05-26 10:51:22 680
原创 spring容器如何加载切面对象before
首先我们需要在springmvc或者springboot项目中导入aop的包,这里以springboot来讲解<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>具体版本由继承的parent来确定第二我们需要在启动类中放入注解
2020-05-25 15:30:57 987
原创 自定义bean对象重名问题
在已经有对象的情况下,设置bean加载的时候注意不要重名不然启动不了,会给你提示在配置文件中添加spring.main.allow-bean-definition-overriding=true 这个东西的意思是当有重名bean的时候覆盖上一个,不建议使用,毕竟每个bean对象都是独特的...
2020-05-18 15:23:17 676
转载 spring4.1.8扩展实战,大佬写的自保存
spring4.1.8扩展实战之一:自定义环境变量验证https://blog.csdn.net/boling_cavalry/article/details/81474340spring4.1.8扩展实战之二:Aware接口揭秘https://blog.csdn.net/boling_cavalry/article/details/81611426spring4.1.8扩展实战之三:广播与监听https://blog.csdn.net/boling_cavalry/article/de
2020-05-12 15:43:43 160
原创 自理解sentinel运行原理
自理解sentinel运行原理sentinel功能流控规则模式效果降级规则RT异常比例异常数热点规则系统规则授权规则sentinel主要实现方式新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新...
2020-04-30 15:52:25 583
原创 记一次使用easyui-treegrid数据层级展示问题
treegrid的数据必须是一个jsonarray格式的数据[{"date":"2019-12-18","children":[{"date":"2019-12-18-1","channelName":"ESPN","type":0}],"type":10},{"date":"2019-12-19","children":[{"date":"2019-12-19-1","channelName...
2019-12-23 09:26:54 574
原创 记一次easyui加载本地数据不成功问题
我这边本地数据是一行数据的子数据,我嫌麻烦就没有去数据库中获取,datagrid对象在更新数据的时候 如果是对象数据就不能使用reload方法去更新,这个只能是从后端获取的数据更新操作如果要更新本地数据需要$('#list_data_mapping').datagrid('loadData', data); loadData这个方法对象格式也必须是{大括号的方式}...
2019-12-13 13:47:28 177
原创 linux记一次rabbitmq服务器关闭后,启动正常,命令不正常
我这边是安装在虚拟机的,晚上关了个机,第二天来启动rabbitmq后,所有执行命令都不能使用,但是我确定rabbit是启动了,因为我界面是能登录查看的我这边解决办法是替换erlang.cookie信息首先找到自己电脑上的.erlang.cookie地址find / -name .erlang.cookie然后去看看数据,其中一个应该是空的,或者多个是空的,有一个是有值的,把有...
2019-11-19 14:46:13 1037
原创 linux中安装rabbitmq遇到的bug
首先,自己装了个虚拟机,新的,空的 里面什么都没有预先需要安装一些基础信息yum install gccyum install wgetyum install epel/x86_64yum install ncurses-devel.x86_64以上是一些包,然后开始安装rabbitmq的依赖# 添加erlang solutions源 $ wget https://...
2019-11-18 14:54:31 490
原创 记一次dubbo服务暴露不了问题
首先我就不写前置准备了,本地启动一个zk服务,喜欢可以启动dubbo-admin,不喜欢也可以不启动准备完成了就开始写入,我这边配置的是springboot+dubbo的方式创建的分布式系统,一般来说服务提供方会将对应的接口文件暴露给zk服务,但是网上的内容基本都只是写了zk地址,没有实际的暴露方式,害得我整了一天才找到方法,最重要的依据暴露方法是上图画红线的那个是提供服务暴露,主要是这个,暴...
2019-10-15 10:35:35 734
原创 mysql索引为何使用b+数而不是b树
回答问题前,首先我们得知道b+树的来源:最先的时候是二叉树->平衡二叉树->b树->b+树二叉树的格式是这种格式在查询的时候其实是很快的,但是保不准会出现这样的查询方式就很看运气了平衡二叉树会自动调整数据的位置,不会让数据一个方向的偏移b树他的存储是一个数据的【key,data】 data是数据在内存中的完整地址b+树数据是放在叶子节点的,非...
2019-10-14 10:47:38 635
原创 mysql聚集索引和非聚集索引
mysql的索引时表索引而非库索引,在创建表字段是可以选择字段引擎,当不选择时,默认是innodb为聚集索引,底层生产的是2个文件一个是索引文件,一个是数据文件(指针和数据在一起)还有一种是myisam引擎,数据是分三个表的,索引文件,指针文件,数据文件...
2019-03-06 14:24:04 906
转载 elasticsearch实现正则表达式查询的思路
ElasticSearch 2.4版本支持Java正则表达式查询,但是,在对大段的文本(Text Block)进行挖掘之前,必须了解正则表达式查询的特殊之处。由于分析器会对文本字段进行分词,移除停用词,小写转换等操作,最终存储在倒转索引中的是小写的标记流(Token Stream),默认情况下,每一个标记是一个分词(Term),这无法满足正则表达式查询的一般要求,这就是说,正则表达式查询的是原始文...
2018-11-05 16:17:50 4243
转载 elasticsearch存储
在ElasticSearch 2.4版本中,文档存储的介质分为内存和硬盘:内存速度快,但是容量有限;硬盘速度较慢,但是容量很大。同时,ElasticSearch进程自身的运行也需要内存空间,必须保证ElasticSearch进程有充足的运行时内存。为了使ElasticSearch引擎达到最佳性能,必须合理分配有限的内存和硬盘资源。一,倒排索引(Inverted Index)ElasticS...
2018-11-05 16:16:15 1557
转载 elasticsearch分词器
在全文搜索(Fulltext Search)中,词(Term)是一个搜索单元,表示文本中的一个词,标记(Token)表示在文本字段中出现的词,由词的文本、在原始文本中的开始和结束偏移量、以及数据类型等组成。ElasticSearch 把文档数据写到倒排索引(Inverted Index)的结构中,倒排索引建立词(Term)和文档之间的映射,索引中的数据是面向词,而不是面向文档的。分析器(Analy...
2018-11-05 16:15:21 3730
转载 elasticsearch复合数据类型——数组,对象和嵌套
在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON文档都内在地具有层次结构。复合数据类型是指数组类型,对象类型和嵌套类型,各个类型的特点分别是:数组字段是指一个字段有多个值,每个值都是该数组字段的一个元素;元素的类型可以是基础类型,也可以是文档类...
2018-11-05 15:50:25 12034 1
转载 elasticsearch索引操作
ElasticSearch是文档型数据库,索引(Index)定义了文档的逻辑存储和字段类型,每个索引可以包含多个文档类型,文档类型是文档的集合,文档以索引定义的逻辑存储模型,比如,指定分片和副本的数量,配置刷新频率,分配分析器等,存储在索引中的海量文档分布式存储在ElasticSearch集群中。ElasticSearch是基于Lucene框架的全文搜索引擎,将所有文档的信息写入到倒排索引(I...
2018-11-05 15:08:13 1450
原创 win7下找到tomcat被占用端口并kill
netstat -ano | findstr "8082"找到最后一个数字tasklist|findstr 5464第一个软件名taskkill -f -t -im QQ.exe递归kill掉全部进程三部曲搞定 可以重启tomcat了不会提示8082端口被占用了...
2018-05-30 14:48:48 985
原创 开发过程中遇到的bug以及解决办法 面试回答个人遇到
前后端分离跨域问题,前后端分离带shiro跨域问题,前后端分离ip不同机器之间跨域问题。。。。。我不写了我推荐一本书吧 网络版贼几把屌https://www.bjsxt.com/javamianshiti.html#10492F 可以看看...
2017-10-12 15:41:31 11037 4
原创 在maven项目基础上搭建springmvc+mybatis项目
首先new一个maven项目然后在pom文件中添加 javax.servlet javax.servlet-api 3.1.0 provided使之不会报错,顺便可以修改一下使用的jdk版本然后创建这四个文件applicationContext.xml xmlns:xsi="http://www.w3.
2017-09-13 09:29:00 202
转载 java中main方法的理解
public static void main(String []args){System.out.println("hello world");}ststem类包含几个有用的类字段和方法。不能实例化它们。在代码系统提供的设施中,有标准输入、标准输出和错误输出流;访问外部定义的属性和环境变量;加载文件和库文件等;和一种快速复制数组的一部分的实用方法。
2017-09-12 14:23:43 2296
原创 虚拟机 centos7 宿主机打不开tomcat项目
linux系统jdk tomcat都配置好了项目也放上去了宿主机访问项目地址的apache就是访问不到 原因是防火墙的问题 如果要关闭的话不能用iptables centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可:sudo syste
2016-05-27 14:43:38 2177
原创 虚拟机 centos7 安装jdk7
先发一个下载地址http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html我们公司安装的时候是去/opt/servers里面直接解压下载下来的gz文件解压之后在/usr目录下进行软连接设置ln -s /opt/servers/jdk1.7.0_80(解压的jdk路径) jav
2016-05-27 14:03:18 462
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人