自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 收藏
  • 关注

原创 Java8-Lambda表达式

1、Lambda表达式的概念Lambda表达式时Java8中值得学习的新特性之一。Lambda表达式从本质上来说是一个匿名方法,使用这个匿名方法来实现接口中的方法,方便简洁,简化代码。2、Lambda表达式的使用场景Lambda表达式最大的优点就是实现接口时大大的简化了代码。//创建一个接口package cn;public interface Human { public int test(int a);}//================3种实现方法=======

2020-10-27 17:34:16 172

原创 vagrant创建CentOS7后硬盘挂载异常(爆满)

使用vagrant创建虚拟机的时候,vagrant会默认的把Vagrantfile文件下的所有同级文件和目录都复制到创建的centos7的/vagrant目录下,导致虚拟机的硬盘爆满。我是在yum安装docker的时候空间不足报错,当时很疑惑,用df -h查看后发现/dev/sda1目录直接被拉满。解决方案:初始化的Vagrantfile中有可以修改的地方,不过被注释掉了,所以应该没有用,不要动它 # config.vm.synced_folder "../data", "/vagrant_dat

2020-10-25 18:49:23 793 3

原创 安装VirtualBox后通过Vagrant安装CentOS磁盘爆满问题

使用Vagrant安装CentOS,因为硬盘爆满导致安装失败,可以通过修改VirtualBox的全局设定来修改虚拟电脑的位置。步骤如下:1.打开VirtualBox点击左上角管理------>全局设定2. 在常规项中选择虚拟电脑的位置...

2020-10-18 18:54:46 614

原创 Docker安装mysql

总体步骤:搜索镜像拉取镜像查看镜像启动镜像停止容器移除容器一、安装mysql#搜索镜像,网络太差,可能会超时docker search mysql 如果拉取慢,那么说明你没有配置阿里云镜像加速器或者网易镜像加速器,可以看看我docker专栏配置阿里云镜像加速器的文章#直接拉取,搜索镜像只是看一下你要拉哪一个,拉5.6版本的docker pull mysql:5.6#查看镜像docker images#使用镜像,获得容器docker run -p 12345:3306

2020-07-07 23:04:12 133

原创 DockerFile详解

一、什么是DockerFileDockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。二、DockerFile构建解析过程先去官方网站找一个DockerFile,这里以centos 6.8 的DockerFile为例子FROM scratchMAINTAINER The CentOS Project <[email protected]>ADD c68-docker.tar.xz /LABEL name="CentOS Base Image"

2020-07-07 21:36:29 318

原创 Docker容器数据卷

容器数据卷是什么容器数据卷类似于Redis中的持久化方法RDB和AOF,也是将容器持久化的东西,而且容器间能够继承和共享数据容器内添加数据卷直接命令添加无带权命令 docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名 例: docker run -it -v /myDataVolume:/dataVolumeContainer centos 查看数据卷是否挂载成功docker inspect 容器ID有以下数据证明挂载成功容器和宿主机之间数据共

2020-07-07 00:19:13 178

原创 Docker镜像和镜像commit

Docker 镜像的原理镜像是说明?镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。其实在Docker的镜像实际上是一种叫做UnionFS(联合文件系统)的东东。Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories

2020-07-06 17:14:34 174

原创 Docker中的常用命令

帮助命令查看docker版本docker version查看docker基本信息docker infodocker帮助手册docker --helpUsage: docker [OPTIONS] COMMAND [arg...]Usage: docker [ 选项参数 ] 命令 [参数...(可多选)]镜像命令列出本地主机上的镜像:REPOSITORY:表示镜像的仓库源TAG:镜像的标签IMAGE ID:镜像IDCREATED:镜像创建时间VIR

2020-07-06 16:21:03 177

原创 Docker底层运行原理

问题:Docker是如何工作的Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器,是一个运行时环境,就是我们前面说到的集装箱。问题:Docker为何比VM快?docker有着比虚拟机更少的抽象层。由亍docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将

2020-07-06 12:51:04 137

原创 Docker阿里云镜像加速器配置

如果没有配置镜像加速器的话,那么在安装镜像的时候,docker会从外网的Hub拉去,可能会比较慢,所以接下来就来配置Docker阿里云镜像加速器配置首先需要在阿里云容器镜像服务注册账号:阿里云容器镜像服务CentOS 6.8 配置登陆后点击 镜像加速器,可以看到加速器地址和如何修改配置文件注意:/etc/docker/daemon.json是centos7的,centos6.8在/etc/sysconfig/docker然后打开配置文件,路径为/etc/sysconfig/docker配置

2020-07-06 11:37:25 485

原创 Docker简介及安装

什么是DockerDocker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。Docker解决什么问题?Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用(包括环境)运行在 Docker 容器上面,而 D

2020-07-06 10:47:36 88

原创 jqPaginator分页插件的使用

第一步使用jqPaginator分页插件的前提需要导入以下两个css样式和两个js<link rel="stylesheet" href="css/bootstrap.min.css"><link rel="stylesheet" href="css/jqPaginator.css"><script type="text/javascript" src="js/jquery-3.3.1.js"></script><script type="te

2020-07-04 15:41:55 438

原创 jsp页面无法解析JSTL表达式

我是使用IDEA创建maven工程自动生成的web.xml所以自动生成的模板是<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app></web-app><?xml version="1.0" encoding="UTF-8"?>或

2020-06-27 16:49:48 375

转载 IDEA 使用maven创建SpringMVC工程

转至https://blog.csdn.net/ajiu_9999/article/details/86491569

2020-06-27 09:23:34 81

原创 单例模式

介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。在Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session 对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory就够,这是就会使用到单例模式八种方式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒

2020-06-11 12:57:28 86

原创 设计模式七大原则

七大原则单一职责原则接口隔离原则依赖倒转(倒置)原则里氏替换原则开闭原则迪米特法则单一职责原则基本介绍对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。 当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为 A1,A2单一职责原则注意事项和细节降低类的复杂度,一个类只负责一项职责。提高类的可读性,可维护性降低变更引起的风险通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类

2020-06-11 10:48:16 100

原创 JVM介绍

1. 什么是虚拟机所谓虚拟机就是一台虚拟的计算机,是一款软件,用来执行一系列虚拟计算机指令。大体上虚拟机可以分为系统虚拟机和程序虚拟机。系统虚拟机:Visual Box、VMwareJava虚拟机2. Java虚拟机Java虚拟机是一台执行Java字节码的虚拟机,它拥有独立的运行机制,其运行的Java字节码也不是一定要由Java语言编译而成Java平台的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回收器,以及可靠的即时编译器Java技术的核心就是是Java虚拟机,因为所有的J

2020-06-03 13:41:47 111

原创 Java 网络编程

网络基础计算机网络把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、 共享硬件、软件、数据信息等资源网络编程的目的直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯网络编程中有两个主要的问题如何准确地定位网络上一台或多台主机;定位主机上的特定的应用找到主机后如何可靠高效地进行数据传输网络通信要素IP和端口号网络通信协议如何实现网络中的主机互相通信通信双方地址IP端口号一

2020-05-31 16:18:29 202

原创 Java File和IO流

File的使用java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。 如果需要访问文件内容本身,则需要使用输入/输出流想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对 象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。File对象可以作为参数传递给流的构造器File常用构造器public File(String pathname):以pathn

2020-05-31 14:17:07 225 1

原创 Java多线程

基本概念首先需要了解一些基本的概念程序(Program):为完成特定任务、用某种语言编写的一组指令的集合。即指一 段静态的代码,静态对象进程(Process):一个程序的执行过程,简单理解就是运行中的程序就叫进程。线程(Thread):进程可以进一步细化为线程,由多个线程组成一个进程,线程可以看作程序内部的一条执行路径。关于进程:若一个进程同一时间并行执行多个线程,就是支持多线程的线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc),一个进程中的多个线程共享堆和方法区,

2020-05-30 20:54:24 127

原创 Redis主从复制

是什么?行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主能干嘛?读写分离容灾恢复怎么玩?一主二从一台主机(master),两台从机(slave)(一主多从也是一个配置)为了方便,我们就在一台机子上操作第一步:准备配置文件准备3个配置文件,修改一下名字,分别为:(redis配置文件以端口号命名)redis6379.confredis6380.confredis6381.conf

2020-05-28 23:40:53 126

原创 Redis事务

事务是什么可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞事务能干什么一个队列中,一次性、顺序性、排他性的执行一系列命令常用命令MULTI作用:标记一个事务的开始(事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行)可用版本:>= 1.2.0时间复杂度:O(1)返回值:总是返回OKEXEC作用:执行所有事务块内的命令(假如某个(或某些) key 正处于

2020-05-28 20:03:21 75

原创 对于Redis RDB和AOF的总结

RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾。Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大同时开启两种持久化模式在这种情况下,当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整RDB的数据不实时,同时使用两者时服务器重启也只会找

2020-05-28 16:00:02 118

原创 Redis持久化之AOF

AOF是什么AOF(Append Only File):以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作AOF保存的是appendonly.aof文件,在配置文件中可以配置文件保存的名称AOF开启后,不过你是做什么操作,只要是写操作,都会自动记录在appendonly.aof,所以FLUSH

2020-05-28 15:50:25 102

原创 Redis持久化之RDB

RDB是什么RDB(Redis DataBase):在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里RDB工作流程Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。R

2020-05-28 14:12:23 168

转载 Redis配置文件常用配置解析

units单元配置大小单位,开头定义了一写基本的度量单位,只支持bytes,不支持bit对大小写不敏感# Redis configuration file example# Note on units: when memory size is needed, it is possible to specify# it in the usual form of 1k 5GB 4M and so forth:## 1k => 1000 bytes# 1kb => 1024 by

2020-05-28 13:01:09 128

原创 Redis数据类型常用命令

Redis键(key)命令:keys *作用:查看当前库的所有键命令:exists [key]作用:判断某一个key是否存在命令:ttl [key]作用:查看key还有多少秒过期,-1表示永不过期,-2表示已经过期命令:expire [key] [second]作用:给key设置过期时间,单位秒,过期后生命周期终结命令:type [key]作用:查看key的类型命令:del [key]作用:删除keyRedis字符串(String)命令:set [key] [valu

2020-05-27 20:30:01 378

原创 Redis常用五大数据类型

五大数据类型String(字符串)Hash(哈希,类似Java中的Map)List(列表)Set(集合)Zset(有序集合)StringString是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个valuestring类型是二进制安全的,意思是redis的String可以包含任何数据,比如jpg图片或者序列化的对象string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512MHashHash(哈希)

2020-05-27 13:36:44 147

原创 Redis启动后的杂项基础知识

redis是单进程的单进程模型来处理客户端的请求。对读写等事件的响应,是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率redis默认数据库数量为16个打开redis配置文件,/opt/redis-3.0.4/redis.conf找到可知redis默认

2020-05-27 13:07:29 90

原创 Redis安装并启动

环境:Linux CentOS 6.1redis-3.0.4.tar.gz复制把redis-3.0.4.tar.gz复制进/opt/目录解压解压redis-3.0.4.tar.gz命令:tar -zxvf redis-3.0.4.tar.gz得到redis-3.0.4目录编译与安装进入redis-3.0.4目录编译命令:make安装命令:make install注意:没有安装gcc依赖需要安装gcc才能执行make install安装gcc命令:yum -y instal

2020-05-27 11:03:29 89

原创 jQuery Ajax

1. 什么是AjaxAsynchronous Javascript And XML(异步JavaScript和XML)Ajax并不是一种语言,而是一种基于JavaScript的技术Ajax技术使浏览器不用刷新页面,就可以和服务器进行通信的方式(局部刷新)2. Ajax传输的数据格式XMLJSONHTML3. 使用jQuery进行Ajax开发jQuery对Ajax操作进行了封装,再jQuery最底层使用的方法是$.ajax(),第二层使用的是load(),$.get(),$.pos

2020-05-26 15:18:36 108

原创 jQuery中的事件

加载DOM在页面加载完毕后, 浏览器会通过 JavaScript 为 DOM 元素添加事件. 在常规的 JavaScript 代码中, 通常使用 window.onload 方法, 在 jQuery 中使用 $(document).ready() 方法$(document).ready(function(){});//简化为$(function(){});事件绑定对匹配的元素进行特定的事件绑定: bind()$(".head").click(function(){});//绑定写法为$

2020-05-25 23:50:37 527

原创 jQuery中的DOM操作

1. 什么是DOMDOM(Document Object Model—文档对象模型):一种与 浏览器, 平台, 语言无关的接口, 使用该接口可以轻松地 访问页面中所有的标准组件2. DOM 操作的分类DOM Core:DOM Core 并不专属于 JavaScript, 任何一种支持 DOM 的程序设计语言都可以使用它. 它的用途并非仅限于处 理网页, 也可以用来处理任何一种是用标记语言编写出来的文 档, 例如: XMLHTML DOM:使用 JavaScript 和 DOM 为 HTML 文

2020-05-25 19:38:11 208

原创 jQuery的选择器

1. 什么是选择器选择器是 jQuery 的根基, 在 jQuery 中, 对事件 处理, 遍历 DOM 和 Ajax 操作都依赖于选择器2. jQuery选择器的优点写法简介有完善的事件处理机制3. jQuery基本选择器基本选择器是 jQuery 中最常用的选择器, 也是最简单 的选择器, 它通过元素 id, class 和标签名来查找 DOM 元素 (在网页中 id 只能使用一次, class 允许重复使用)3.1 代码示例<!DOCTYPE HTML PUBLIC

2020-05-23 12:56:36 212

原创 jQuery对象和DOM对象

1. jQuery对象是什么?jQuery对象就是通过jQuery($())包装DOM对象后产生的对象2. jQuery对象的特性jQuery对象是独有的,如果一个对象时jQuery对象,那么他就可以使用jQuery里的方法jQuery对象无法使用DOM对象的任何方法,反之,DOM对象无法使用jQuery对象的任何方法3. 获取jQuery对象需要获得jQuery对象,只需要在变量面前加上$var $variable = jQuery对象var variable = DOM对象

2020-05-22 11:42:03 303

原创 Mybatis的注解开发

往期内容,如下一、MyBatis简介二、MyBatis环境搭建三、MyBatis入门案例四、MyBatis自定义五、MyBatis CRUD操作六、Mybatis中参数和返回值的深入了解七、MyBatis 配置文件标签八、MyBatis POOLED连接池深入了解九、MyBatis中的动态sql语句十、MyBatis多表查询操作十一、Mybatis中的延迟加载和缓存1.环境搭建1.1 最终代码目录结构1.2 数据库数据DROP TABLE IF EXISTS `user`.

2020-05-21 17:57:18 148

原创 Mybatis中的延迟加载和缓存

往期内容,如下一、MyBatis简介二、MyBatis环境搭建三、MyBatis入门案例四、MyBatis自定义五、MyBatis CRUD操作六、Mybatis中参数和返回值的深入了解七、MyBatis 配置文件标签八、MyBatis POOLED连接池深入了解九、MyBatis中的动态sql语句十、MyBatis多表查询操作延迟加载和立即加载延迟加载:在真正使用数据时才发起查询,不用的时候不查询。按需加载,即使懒加载立即加载:不管用不用,只要一调用方法,马上发起查.

2020-05-20 18:36:29 260

原创 MyBatis多表查询操作

往期内容,如下一、MyBatis环境搭建二、MyBatis入门案例三、MyBatis自定义四、MyBatis CRUD操作五、MyBatis中参数和返回值的深入了解六、MyBatis 配置文件标签七、MyBatis POOLED连接池深入了解八、MyBatis中的动态sql语句代码目录结构如下:环境搭建数据库数据:User实体类数据CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment, `username.

2020-05-19 16:37:48 631

原创 MyBatis中的动态sql语句

往期内容,如下一、MyBatis环境搭建二、MyBatis入门案例三、MyBatis自定义四、MyBatis CRUD操作五、MyBatis中参数和返回值的深入了解六、MyBatis 配置文件标签七、MyBatis POOLED连接池深入了解何为动态sql语句,在实际开发中,我们查询数据库的时候,在同一个功能下我们通常需要设置多个查询条件,满足其中的一个条件时才到数据库进行查询。...

2020-05-18 18:25:34 145

原创 Java数据结构和算法-2-稀疏数组

稀疏数组的应用场景先看一个实际的需求编写的五子棋程序中,有存盘退出和续上盘的功能分析问题:因为该二维数组的很多值是默认值0, 因此记录了很多没有意义的数据.—>稀疏数组稀疏数组介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模举例说明有如下原始二维数组转换为稀疏数组稀疏数组转换的思路分析应用实例

2020-05-17 19:00:55 113

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除