- 博客(34)
- 收藏
- 关注
原创 【多图预警,不懂来敲我】图说HashMap原理和流程
1.前言HashMap是开发中最常用的键值对集合类,也是面试中经常被问及的一个知识点,也是衡量java基础是否扎实的标准之一,是每个JAVA初学者入门必须跨过的槛。所以HashMap重要性不言而喻,需要彻底掌握。 但在开始学习HashMap时,如果文章中有一大堆源码和一大段文字,会让读者阅读起来十分枯燥以及苦涩难懂。特别是不太了解HashMap的读者,但为了深入理解肯定要结合源码学习。 所以打算先介绍HashMap流程,熟悉主要操作的流程步骤,再结合源码,加深对HashMap的理解。分为两篇文章讲解:第
2021-01-13 16:44:23
610
1
原创 HashMap详解以及常见面试题
HashMap详解以及常见面试题一、概要本文先会将hashmap的基本概念属性梳理一遍后,再从增删改查方法中每个步骤逐一解释说明。力求达到通熟易懂,逻辑清晰,便于加深印象。二、概念首先Hashmap的底层数据结构是由数组+链表组成的,是线程不安全,允许key和value为null。底层结构数组叫哈希桶,而桶内则是链表,链表中的节点Node存放着实际的元素。Hashmap中获取元素时的主...
2018-11-24 19:48:51
15468
19
原创 centos利用mail发送邮件
centos利用mail发送邮件安装mail yum install mailx -y请求数字证书root@PLAY ~]# mkdir -p /root/.certs/ ####创建目录,用来存放证书[root@PLAY ~]# echo -n | openssl s_client -connect s...
2018-09-02 10:32:27
614
原创 centos下利用crontab实现定时任务
centos下利用crontab实现定时任务crontabc常用命令cron服务是linux自带的定时任务。方便快捷好用是他的优点。只要了解他的时间设置,即cron表达式,能轻松的掌握 查看当前crontab定时列表crontab -l编辑crontabcrontab -e删除crotabcrontab -r crontab -e #编辑将对应的定时任务...
2018-09-02 10:31:48
1565
原创 《高性能MYSQL》逻辑结构-读书笔记
高性能MYSQL笔记1. MYSQL逻辑结构MYSQL逻辑结构有三层,分别为 1. 连接/线程处理:实现连接处理,授权认证,安全等 2. 服务层:该层主要有缓存,解析,处理,优化以及跨存储引擎如存储过程,触发器,视图等 3. 存储引擎:主要负责数据读取和存储。根据服务器层提供的执行计划,进行语句的执行。2. 并发控制并发控制是当多个线程或者事务同时操作同一...
2018-08-19 13:43:53
417
原创 《高性能MYSQL》复制-笔记
# 《高性能MYSQL》复制-笔记复制概述复制解决的基本问题是让一台服务器的数据与其他服务器保持数据同步。一台主库的数据可以同步到多台备库上。常见的用途:1.应用实现读写分离从而负载均衡。2.由单机变为集群,可实现数据的分布。3.利用心跳检测机制以及主备切换实现高可用和故障切换。如何复制复制步骤Master更改数据记录在binlog(二进制日志),通过bin...
2018-08-12 18:31:27
639
原创 《高性能mysql》笔记-查询性能优化总结
高性能mysql-查询性能优化-笔记衡量查询性能的三个指标返回的行数:意思是select返回的列数以及行记录数。扫描的行数:查询所需要扫描的行数。相应的时间:执行sql时间以及等待(sleep等待连接,lock等待锁的时间)返回的行数案例 1. 查询不需要的记录即多余的记录 2. 查询多余的列。很多时候为了方便直接select *,这样造成有些字段是不需...
2018-08-05 16:08:56
962
原创 高性能mysql笔记-高性能索引
高性能索引写在开头一些重要的话,如题高性能的索引。现在很多文章或者博客都会有一些索引建立的规则。 比如说程序员必须掌握的10条SQL技巧,你不知道的SQL10条索引规则。 而且这些文章的阅读量比其他讲原理性的要高。能够体现出如今码农们急躁的心理。想通过这些技巧就掌握 索引优化。举个明显的例子,前导模糊查询不能使用索引 select * from order where desc l...
2018-07-29 17:03:36
411
原创 《高性能mysql》笔记-服务器性能剖析总结
《高性能mysql》笔记-服务器性能剖析总结 如果遇到了性能需要优化的问题时,首先明确目标对象是什么?是整个应用程序还是数据库。还要明确的是性能衡量的单位是每个查询所花费的时间。即响应时间。响应时间又分为等待时间和执行时间。而不是cpu利用率,吞吐量。接下来是测量每个步骤所需的时间。若是数据库优化,则首先要判断是服务器问题还是单条sql查询的问题。判断的步骤如下:1. 利用SHOW ...
2018-07-29 11:41:34
539
原创 MYSQL基准测试
什么是基准测试基准测试是针对系统设计的一种压力测试。更加简单,直接,易于测试,数据可由工具生成。而压力测试一般考虑业务逻辑(购物车业务),要求真实数据。为什么需要基准测试?可对线上异常进行重现负载能力并发性能基准测试的指标吞吐量。即TPS(每秒并发事务数量),QPS(每秒查询数量)相应时间。客户端发送到接收到的全部时间并发。测试不同并发下的性能。同时处理的...
2018-07-08 16:52:57
1149
原创 mysql基准测试与sysbench使用
什么是基准测试? 基准测试是针对系统设计的一种压力测试。他的操作简单,直接,易于测试,数据可由工具生成,数据为测试数据。而压力测试一般考虑业务逻辑(例如购物车业务),要求需要真实的数据。主要作用于对mysql参数修改后的性能变化以及硬件配置更换测试性能。 基准测试详解可以查看这篇文章:什么是基准测试sysbench简介cpu性能磁盘io性能调度程序性能内存分配以...
2018-07-08 16:47:51
611
原创 Ehcache与mybaits配置讲解
一、Ehcache缓存机制Ehcache属于二级缓存。缓存的粒度是单个实体类,也就是说当更新,修改,删除时,会将整个实体表中的数据在缓存中清空。这也是Ehcache的局限性。接下来说下Ehcache缓存策略,比如查询商品表,商品表加上了Ehcache1. select * from 商品表。首先会去一级缓存查询,其次到二级缓存,最后才会到数据库查询实体记录。 2. 将获取到所有商品对象的I...
2018-06-18 20:25:55
363
原创 JAVA自定义注解运用
一、为什么会用到自定注解? 在实际开发中,会遇到很多重复性的代码。比如,登录状态的校验,登录用户信息的获取,对指定代码块增加日志打印。这些代码都是一些重复性冗余的代码。为了减少这些代码,我们通常会用AOP机制去切割。但不足的地方是不够灵活,如果有一个东西可以让我们可以灵活的标记指定的方法或参数。这是就有一个自定义注解的出现,充当标记点,让AOP能够准确的切割。 在常用的框架中,也有自定义...
2018-06-10 19:43:52
1440
原创 @RequestParam和@RequestBody的区别
一、@RequestParam使用使用@RequestParm用于绑定controller上的参数,可以是多个参数,也可以是一个Map集合,GET,POST均可@PostMapping(value = "requestParam")@ResponseBodypublic Boolean requestParam(@RequestParam(name = "string",requi...
2018-06-10 12:49:05
9002
4
转载 SpringBoot整合UEditor教程
UEditor只提供JSP版本的后端入口代码。但提供了项目源码,因此可以根据业务需求修改源代码。此处使用了SpringBoot框架,配备了Thymeleaf模板引擎,所以没有必要再添加jsp来兼容UEditor,可通过修改源码满足需要。下面是详细教程。1.新建SpringBoot项目,添加web...
2018-06-05 17:32:04
781
转载 CentOS7 Failed to start LSB: Bring up/down解决方法
刚刚装好的虚拟机突然不能上网了,报错很诡异,具体报错如下:/etc/init.d/network restartRestarting network (via systemctl):  Job for network.service failed because the control process exited with error ...
2018-06-04 20:43:47
319
转载 使用VMware安装CentOS7详请
                 话不多说直接开车,乘客坐稳了准备资料: CentOS-7-x86_64-Everything-1611 下载地址  http://
2018-06-02 13:09:01
242
原创 Mysql主从复制配置和主主配置
一、主从复制原理 复制涉及的概念- 两个日志BinLog:二进制文件,存储MasterDB中修改数据的内容。存储内容的格式有Statement,Row,Mixed。Relay Log : 功能作用与Binlog一样,不同点在于当日志内的内容被读取完后,会被删除。- 三个线程Binlog dump 将读取Binlog后发送数据给IO线程...
2018-06-02 10:39:48
1254
原创 spring全局异常处理机制-秒懂
现如今与前台交互大多数采用restful api调用,而一个良好的异常处理机制,可进一步提高用户体验。 方法:@ControllerAdvice,@ExceptionHander()在父类的baseController方法上加上@ExceptionHander()代码实现:1.@ControllerAdvice,@ExceptionHander()创建一个全...
2018-05-27 19:59:18
2898
原创 Hibernate3.X升级4.x步骤
Hibernate3.X升级4.x步骤1.依赖maven需要修改成4.x版本<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.11.Fina...
2018-05-27 16:44:00
1741
原创 乐观锁和悲观锁理解和应用场景
一、锁的含义乐观锁: 顾名思义,对当前操作的数据保持一个乐观的态度,认为不会有其他事务操作修改当前的数据记录。只有在提交事务更新时,会检测有没有被修改。若有则直接选择retry或定义的操作。例子:hiberante的version版本控制悲观锁: 悲观锁认为其他事务会对操作的数据进行修改,所...
2018-05-27 16:20:58
8175
1
原创 hibernate异常Found shared references to a collection 解决方法
一、分析错误的原因首先先理解下“Found shared references to a collection”这句话的意思,发现共享了同一个集合应用意思是说禁止两个对象共同引用同一个集合对象,参见Hibernate reference第6章的”Two entities may not share a reference to the same collection instance”。...
2018-05-27 11:46:50
9981
1
原创 Mysql-Innodb索引二次查找解决方案
一、为什么会造成二级查找 因为Innodb二级索引存储的是主键,所以通过索引查找时,第一次查询是通过二级索引找到主键值,第二次查询是通过主键在聚簇索引找到对应的行位置二、解决方案1. 索引覆盖何为索引覆盖?只查找该索引的值。select index_column from table 只查找二级索引的值,则不需要在去聚簇索引进行二次查找2.延时关联先使...
2018-05-10 21:44:20
3096
原创 Mysql事务以及隔离级别
一、事务的四大特性(ACID)1. 原子性(Atomicity) 保证事务时一个原子操作单元。要么全部执行,要么全部不执行2. 一致性(Consistent) 保证数据的一致性。例子:A转10块钱给B,那么要保证A减10,B加10。最后总的价钱能与事务前的一致。3. 隔离性(Isolaton) 提供隔离机制,在并发中事务不受外部操作...
2018-05-10 21:25:53
177
原创 Mysql-打开远程访问权限
mysql中打开远程访问权限我的mysql是5.7版本//添加远程用户admin密码为password mysql> grant all privileges on *.* to admin@localhost identified by 'password' with grant option 如果是固定ip就这么写 mysql> grant all privileges on *.* to
2018-05-07 22:08:08
512
原创 maven中package和install的区别。解决找不到依赖项目的jar包问题
问题描述: 当项目A依赖的项目B时,B打包成jar包供给项目A使用。当项目A执行package时,会出现找不到b的jar或者不是最新内容的jar。问题原因: A从仓库中未找到B的jar或者不是最新内容的jar包。解决与总结: 1、在package A前,先将B进行install。因为install后会将代码编译打包放在本地仓库中,供A项目使用或安装。 ...
2018-03-05 22:20:05
7029
原创 jenkins自动构建部署,svn+maven+tomcat搭建。
作用● 持续、自动地构建软件项目 ● 监控定时任务、主要特点 1、易于安装,只要把jenkins.war部署到servlet容器,不需要数据库的支持2、易于配置,所有配置都是通过其提供的web界面实现3、集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知4、生成JUnit/TestNG测试报告5、分布式构建支持Jenkins能够让多台计...
2018-03-03 14:33:36
362
原创 Swagger2与Spring三分钟即可上手集成
1. 介绍 Swagger强大之处就在于他自动生成API文档,使后台开发不用频繁地写API文档。 Swagger生成的api文档是实时更新的,你写的api接口有任何的改动都会在文档中及时的表现出来。 看到这里是不是回想起之前手写的API文档那段日子,在现在看来确实很浪费时间。 可以参考下swagger-springfox的[github地址](https://github.com/sp...
2017-12-06 00:32:59
1197
原创 对InnoDB和MyISAM存储引擎的理解
最近在看mysql优化内容,发现对sql语句优化跟存储引擎还有一定的联系所以就打算写一篇关于InnoDB和MyISAM存储引擎的区别目录如何选择合适的存储引擎?InnoDB和MyISAM的区别InnoDB特有的结构1.如何选择合适的存储引擎?MyISAM: 该应用是以读和插入操作为主,很少有更新删除操作,对事务的完整性,并发性要求不高。 InnoDB:
2017-12-03 23:48:18
374
原创 String.intern方法的理解
intern方法的理解目录结构如下 1. intern方法的概述及理论 2. intern的实际作用 3. 用代码演示其作用## 1. intern方法的概述及理论 ## 首先对象会在字符串常量池查找是否有对应的字符串常量(用equals(object)比较)。如果有对应的字符串常量,则返回该字符串常量。如果没有,则将字符串添加进来并指向该对象。## 2. intern的实际
2017-11-30 23:42:28
605
原创 getCurrentSession 出现No hibernate bound to the thread
1、问题情景在Dao里调用getCurrentSession() 代码如下@Override public WebSite findWebSite() { Session session = this.getHibernateTemplate().getSessionFactory().getCurrentSession(); Query query =
2017-10-31 18:13:49
431
原创 Centos7安装mysql5.7,最新解决办法
服务器环境如下centos7.4mysql5.71、下载并解压mysql5.7wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz#解压文件 -zxvf(至小威风) 看到某人的博客里是这样记 o(∩_∩)o 哈哈tar -zxvf mysql-5.7.17-linux-gl
2017-10-26 00:45:08
2263
原创 Linux 自动备份mysql数据
Linux 自动备份mysql数据lz阿里云服务器环境如下 - centos7.4 - mysql5.71. 创建shell脚本知识点 - mysqldump mysqldump常用于MySQL数据库逻辑备份编辑shell脚本:vi /bak/bakmysql/backup.sh#!/bin/sh cd /bak/bakmysqlecho "You are in bakm
2017-10-25 21:25:26
506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人