- 博客(38)
- 资源 (2)
- 收藏
- 关注
原创 HashMap是如何解决hash冲突的(1.6+1.8)
文章目录前言hashMap底层原理java1.6java1.8前言在java1.8之后包含1.8HashMap做了很大的改善。不仅仅在底层数据结构上也包括一些方法hashMap底层原理hashMap在jdk版本不断迭代的前提下,HashMap底层实现也一直在改变初始容量为16,如果在创建HashMap的时候没有指定容量,就使用初始容量。最大容量,HashMap中存储元素的数组的最大的容量,为2的30次方。默认的加载因子为0.75F,在扩容的时候使用。当当前Hash中的容量大于容量*加载因子的时候
2020-05-22 17:54:51 729
原创 浅析jvm
jvm定义跨平台jvm区域划分栈(线程)栈帧定义首先什么是jvm呢?jvm也就是java Virtual Machine(java虚拟机)的缩写。一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能实现的,java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。跨平台也正是jvm的存在所以才出现了跨平台无障碍的天下第一语言java(哈哈哈)大家应该都知...
2019-12-26 16:15:05 270 1
转载 索引?Mysql索引类型、应用以及注意点
一、索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应用...
2019-11-12 16:25:42 161
原创 springboot事务管理
查阅资料:当@Transactional不起作用如何排查问题。可以按照以下几个步骤逐一确认:1、首先要看数据库本身对应的库、表所设置的引擎是什么。MyIsam不支持事务,如果需要,则必须改为InnnoDB。2、@Transactional所注解的方法是否为public3、@Transactional所注解的方法所在的类,是否已经被注解@Service或@Component等。4、需要调用...
2019-07-25 13:38:48 189
原创 正则表达式关于Pattern、Matcher部分应用
文章目录 // \w 匹配字母、数字、下划线。等价于 [A-Za-z0-9_] static final String regular = "#\\w+R(\\d+)C(\\d+)"; @Test public void test() { //编译正则表达式,在API中其实Pattern和Matcher类都有匹配的作用 //但是Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持,包含更丰富的正则匹配操作。
2021-06-08 20:28:56 177
原创 mysql数据库,字符串类型使用<、>判断
文章目录字符串比较字符串转数字比较方案1方案2字符串比较在mysql数据库中如果使用字符串进行比较的话,默认是从高位到低位进行一一比较的,举个例子按照数字来讲,18肯定大于5,但是在字符串比较却返回了false。也就是上面所说的从高位向低位进行比较的,1 > 5 返回false。像这种情况是两位与三位比较,前两位相同,存在第三位的或更多的较大字符串转数字比较方案1字符串后面 +0方案2使用函数CAST参考文档...
2021-05-28 13:58:37 571
原创 读取yml,properties配置文件的的几种方式
文章目录1-@value2-使用对象注入3-读取配置文件1-@value@Value("${keys}")private String key;这里需要注意的是当前类要交给spring来管理@Value不会赋值给static修饰的变量。因为Spring的@Value依赖注入是依赖set方法,而自动生成的set方法是普通的对象方法,你在普通的对象方法里,都是给实例变量赋值的,不是给静态变量赋值的,static修饰的变量,一般不生成set方法。若必须给static修饰的属性赋值可以参考以下方
2021-04-20 10:47:37 1379
原创 有关DCL、volatile之间的问题
文章目录名词介绍代码名词介绍DCL: Double check lock指令重排: java文件经过编译转化为字节码文件的时候,代码编译为一条条指令,一般来说是按照顺序执行的,但是比如说某条指令要从内存中拿数据,内存的速度要不cpu慢近乎百倍,这样cpu不可能等着该指令从内存中取到数据,所以就执行了后面的指令,这就是指令重排。无论是否指令重排,都保证了最终一致性volatile: 多线程可见性、禁止指令重排(方式:指令屏障)代码@Datapublic class Singleton {
2021-03-02 10:31:30 246
原创 linux centos7 安装telnet(离线、在线)
文章目录背景yum安装离线安装开启服务(yum安装也需要这个步骤)背景在将应用包发布到测试环境后,有个借口死活调用不通,经排查后疑似网络不通,那么问题了,必须拿出证据啊。telnet一下。发现服务器没有telnet。安装一下呗。yum安装这里需要注意一点:telnet-server服务启动依赖xinetd服务。xinetd:eXtended InterNET services daemon,超级Internet服务器,用来管理多种轻量级Internet服务。建议最好先安装xinetd服务yu
2020-12-20 12:26:29 2280 1
原创 redis的安装与部署
redis的安装与部署下载与安装下载与安装redis是C语言开发,建议在linux上运行,本教程使用Centos6.4作为安装环境。安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++。源码下载,从官网下载http://download.redis.io/releases/redis-3.0.0.tar.gz解压源码tar -zxvf redis.tar.gzcd /usr/local/redis
2020-11-02 18:26:31 93
原创 从gitLib上拉代码,解决SSL certificate problem
文章目录前言问题解决前言今天来了位新同事,代码在gitlib上,给了gitlib的地址并开通了账号权限,让同事自己拉取,但是死活拉取不下来问题按照一般情况,不管是git命令框操作还是idea操作,在输入gitlib的地址后,点击clone,都会弹出框让你输入账号名密码信息,然后就拉去下来了但是新同事在拉取代码的时候总是提示一句,也不弹出输入账号密码的框Cloning into 'ecs'...fatal: unable to access 'https://xx.xx.xx/zzz/zzz.g
2020-10-16 11:08:45 1303 1
原创 mybatis for循环批量插入及分批插入
文章目录前言批量插入原因stackOverFlowError临界值解决办法改变栈大小(不推荐)分批插入前言背景是这样的,在一次多个系统数据同步的时候,数据量较大,一次大概5000条,在同步的时候我采用的批量插入的方法,模拟测试没问题,但是实际测试却爆出了stackOverFlowError异常,于是乎,跟了一波代码,批量插入DAOvoid insertList(List<Object> listData);Mapper<insert id="insertList" par
2020-09-27 17:53:08 4547 1
原创 linux服务器配置,jdk/tomcat/fastDFS安装
文章目录配置DNS上外网安装JDK安装tomcat安装fastDFS配置DNS上外网 vi /etc/resolv.conf 编辑以下内容 nameserver 8.8.8.8 nameserver 8.8.4.4ifconfig不好使 执行sudo yum install net-tools安装JDK上传至指定文件夹压缩包解压tar -zxvf jdk-8u141-linux-x64.tar.gz编辑配置文件,配置环境变量 vim /etc/profile expor
2020-09-23 19:02:56 193
原创 java算法—检验二叉树是否平衡
文章目录前言前言平衡二叉树一般是一个有序的左右平衡的树,它具有二叉树的所有性质。但是由于平衡二叉树必须保证其平衡的性质,所有的子树在进行添加、删除操作都要保证左右平衡,上下高度不得大于1在这里,我们只需要考虑其是否平衡,不需要考虑其他问题上代码 @Getter @Setter static class TreeNode { int val; TreeNode left; TreeNode right; pu
2020-08-04 16:42:49 182 1
原创 HTTP协议-详解三次握手四次挥手
文章目录Http是什么网络模型Https无状态协议TCP和UDPudptcpHttp是什么Http是一种超文本传输协议。http主要分为三个部分。超文本(HyperText)、传输(Transfer)、协议(Protocol)。其中超文本包括很多,例如音乐,图片,视屏等。网络模型五层七层两者相似,只是定义方式,不必纠结。物理层和链路层属于MAC,网络层属于IP、ARP,运输层属于TCP以及UDP,最后的应用层属于HTTP等协议。Httpshttps的出现主要是为了解决http明文
2020-07-22 17:02:50 1905
原创 事务特点以及分布式事务
文章目录事务spring事务管理方式spring事务七大传播特性数据库四大隔离级别四大特征MySQL数据库InnoDb如何保证事务的原子性和持久性分布式事务全局事务协调管理器分布式协议解决方案TCCMQ事务本地事务表事务事务:其实一个sql就是一个事务。我们要控制的事务是一个连接作为一个事务。Connection con = DataSource.getConnection;con.setAutoCommit(false);//关闭自动提交,将一个连接作为一个事务开启事务。否则一个sql作为一个事务
2020-07-16 11:59:19 529 2
原创 B+树---mysql索引
文章目录前言二叉查找树平衡二叉树B树B+ 树为什么mysql存储引擎innoDB使用B+而不用B呢?聚集索引 VS 非聚集索引前言mysql中索引类型:B+ 树索引、Hash 索引、全文索引mysql默认使用的存储引擎为innodb,而innodb存储引擎中采用的索引数据结构为B+树,树高一般为0-3B+ 树由二叉查找树,平衡二叉树和 B 树这三种数据结构演化来。二叉查找树图中的圆为二叉查找树的节点,节点中存储了键(key)和数据(data)。键对应 user 表中的 id,数据对应 user
2020-07-14 15:15:56 112
原创 Java方法的参数是值传递还是引用传递?
文章目录前言方法参数为基本类型时方法参数为包装类型的引用类型方法参数为类的对象引用总结前言之前一个同事面试遇到了这么一个面试题“Java方法的参数是值传递还是引用传递?”,给我看之后我也是对结果不太确定。所以就百度了一波,感觉虽然问题很简单,但是问题直戳本质,觉得很有必要留下一点点痕迹啦。在Java方法中参数列表有两种类型的参数,基本类型和引用类型。基本类型:值存放在局部变量表中,无论如何修改只会修改当前栈帧的值,方法执行结束对方法外不会做任何改变;此时需要改变外层的变量,必须返回主动赋值。引用数
2020-07-03 15:58:11 2406
原创 mysql主从复制环境搭建(windows)
文章目录简单介绍环境一、主数据库配置二、从库配置三、异常简单介绍MySQL主从复制机制是指将主数据库的数据复制到一个或多个从数据库上。一般下主数据库实时的业务数据写入和更新操作,从数据库常用的读取为主。主从复制过程:1、主服务器在进行增删改操作的时候都会通过IO保存在二进制日志 Binary log 里面。2、从服务器上面启动一个 I/O 线程,通过配置好的用户名和密码, 连接到主服务器上面请求读取二进制日志,然后写到本地的一个Realy log(中继日志)里面。3、从服务器上面同时开启一个
2020-06-17 22:07:25 605 1
原创 springBoot读取配置文件优先级问题
文章目录情景配置文件读取优先级顺序配置文件读取方法互补功能指定端口号启动情景今天兴高采烈的来到了公司,电脑还没打开呢,一个老同学问我“springboot中配置的端口和实际部署到服务器的端口号不一致有没有什么影响?”其实我有点没听明白他讲的什么意思,nginx反向代理了?页面访问端口和后台不一样了?一顿迷惑经过一番有力的交流之后,是这样的:他打包好的jar发给了老大由老大发版,项目中设置了端口号为9080,但是不多一会后老大反馈他部署好了,ip端口号是IP:18080。那么他发现了端口号并不是他原
2020-06-03 11:50:17 745 1
原创 解决BigDecimal、Long精度丢失
文章目录前言情景还原分析解释前言相信很多人在计算金额的时候都会用上高精度的数据类型,比如BigDecimal,比如long,那么我想问一下大家有没有发现过精度丢失的问题呢?情景还原在项目中我们在对金额计算的时候使用到了类型BigDecimal举个栗子吧BigDecimal bg = new BigDecimal("9.9");BigDecimal bigDecimal = bg.setScale(2, BigDecimal.ROUND_HALF_UP);System.out.println(
2020-06-01 18:05:00 1953
翻译 hashMap为啥不安全
文章目录hashMap为啥不安全一、java1.71.1总述1.2死循环1.3丢失数据2.java1.82.1总述线程不安全总结hashMap为啥不安全测试代码public class HashMapTest { public static void main(String[] args) { HashMapThread thread0 = new HashMapThread(); HashMapThread thread1 = new HashMapThre
2020-05-22 16:53:28 170
原创 GIT 常用命令操作以及分支合并
文章目录拉取git命令操作idea拉取提交等用户配置操作分支增删查合并分支git命令操作idea操作拉取git命令操作代码拉取,建议直接代码编辑器操作,简单git clone {代码仓库地址}提交新项目(未初始化的Git仓库)进入到工程目录下使文件夹变为git本地仓库,得到一个.git文件夹cd D://XXXXgit init将暂存区的内容提交到本地版本库。-m 为注释信息...
2020-04-30 16:33:43 385 2
原创 解决网络波动数据传输问题——>spring的重试机制@Retryable
文章目录前言常用参数介绍依赖用法前言不知道大家平时在对数据进行同步传输,或者消息发送等操作由于网络波动的时候是如何操作的,记日志?邮件通知管理员?插入数据监控系统?但是如果仅仅是短暂的网络波动又迅速恢复那么又怎么做呢?循环调用吗?看起来就有点low了。那么我们可以尝试一下@Retryable常用参数介绍value 抛出指定异常才会重试,默认为空include 和value一样,默认...
2020-04-28 16:29:26 1254
原创 将本地jar包加入maven管理当做依赖
将本地jar包加入maven管理当做依赖往往有很多时候一些jar包是我们项目所必须的但是仓库又没有这个jar包。那么我们只能通过在项目中建立lib的方法去使用这个jar。但是这个时候怎么才能纳入maven管理呢做到这一步我们已经可以在代码编辑的时候使用jar包里面的东西了。但是在编译的时候又会惊奇的发现xx包不存在。这个时候去看项目下External Libraries你会发现并没...
2019-12-31 15:31:10 680 1
原创 maven各个按钮以及生命周期 idea
maven之idea按钮Reimport All Maven projectGenerate Sources and Update Folders For All ProjectDownload Sources and/or DocumentationAdd Maven ProjectsExecute Maven GoalToggle Offline ModeToggle 'Skip Tests'...
2019-12-31 15:30:21 3332 1
原创 jvm参数之GC日志
1.verbose:gc表示,启动jvm的时候,输出jvm里面的gc信息。格式如下:[Full GC 200K->100K(1984K), 0.0653877 secs]解读 :Full GC 就表示执行了一次Full GC操作,200K 和100K 表示执行GC前内存容量和执行GC后的内存容量。1984K就表示内存总容量。0.0653877是本次GC所耗时间,单位秒。2.-X...
2019-12-27 18:34:06 438
原创 ThreadLocal介绍
ThreadLocal特性以及用法使用实现原理查看源码特性以及用法用法:多线程中数据共享,比如用户信息,解决多线程中相同变量访问冲突的的问题特性:采用空间换时间的方式解决数据共享冲突等Synchronized是通过线程等待,牺牲时间来解决访问冲突ThreadLocal是通过每个线程单独一份存储空间,牺牲空间来解决冲突,并且相比于Synchronized,ThreadLocal具有...
2019-12-20 16:20:44 109
原创 索引查询返回列详解
索引返回列返回值:首先介绍查询索引的sql语句table_name表名databasename数据库名1.需要在表对应的数据库中查询SHOW INDEXES FROM table_name;2.SHOW INDEXES FROM table_name IN database_name;3.SHOW INDEXES FROM database_name.table_name;...
2019-11-12 15:09:32 2279
原创 自定义对象重写hashcode方法和equals方法,以及hashSet如何判断重复对象
public class SendDdataVo { private int srcSystem = 1; private int tarSystem; private String srcOrgCode; private String tarOrgCode; public Integer getSrcSystem() { return...
2019-10-25 14:01:38 460
转载 for循环优化
完成同样的功能,用不同的代码来实现,性能上可能会有比较大的差别,所以对于一些性能敏感的模块来说,对代码进行一定的优化还是很有必要的。今天就来说一下java代码优化的事情,今天主要聊一下对于for(while等同理)循环的优化。作为三大结构之一的循环,在我们编写代码的时候会经常用到。循环结构让我们操作数组、集合和其他一些有规律的事物变得更加的方便,但是如果我们在实际开发当中运用不合理,可能会给程序...
2019-10-08 15:31:34 122
原创 spring定时任务配置以及时间描述
定时任务——xml配置 <bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <!--<property name="dataSource" ref="dataSource"/>--> &...
2019-09-24 17:39:50 488
原创 docker(yum安装,docker常用命令,简单部署jar)
yum安装docker1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 查看版本信息命令:uname -r2.确保yum包更新到最新:sudo yum update如果安装过旧版本的话,卸载旧版本sudo yum remove docker docker-common docker-seli...
2019-09-03 14:16:27 501
原创 linux基本命令
查看linux体统版本等信息lsb_release -a查看当前文件ls -trl 就是按文件的修改时间反向排序-l 长格式显示-t 按文件的修改时间排序-r 反转排序ls -l相当于ll创建文件夹或者文件:touch+文件名mkdir+文件夹名字删除# rm test.txt rm:是否删除 一般文件 "test.txt"? y # rm homewo...
2019-09-02 16:48:37 331
转载 @ControllerAdvice + @ExceptionHandler
零、前言对于与数据库相关的 Spring MVC 项目,我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service 层抛出运行时异常,Spring 事物管理器就会进行回滚。如此一来,我们的 Controller 层就不得不进行 try-catch Service 层的异常,否则会返回一些不友好的错误信息到客户端。但是,Controller 层每个方法体都写一些模板化的 ...
2019-08-19 18:46:05 162
原创 记一次痛苦的js经历。从MultipleTreeSelect.js到自定义下拉框再到bootstrap-select.js
首先声明在下是一个走java路线的小菜鸟,几乎没写过js。第一次写写的我很难受。开始吧首先是使用这个MultipleTreeSelect.jsMultipleTreeSelect.js是根据jquery.ztree.all.js和select.js继承的一款插件感觉功能还是很强大,使用方法比较简单,但是有坑。待会说//首先引入js文件<script type="text/java...
2019-08-16 15:25:40 2020 1
原创 boostrap验证
<head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>注册</title> <link rel="stylesheet" href="static/cs...
2019-07-26 11:12:30 124
文件存储fastDFS
2020-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人