自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王晓(Java)

一名未来很优秀,现在很努力的程序猿

原创 MYSQL:如何清空表中的数据

方法1:delete from 表名;方法2:truncate table 表名;比 较:不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。 效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。 delete的效果有点像将mysql表中...

2018-09-17 15:34:50 48423 2

原创 Java:详解Java中的异常(Error与Exception)

《Java:详解Java中的异常(Error与Exception)》 《Java:简述Java中的自定义异常》 《Java:简述throw-throws异常抛出》 《Java:简述try-catch-finally异常捕获》 《Java:简述try-catch-finally中return返回》一、 异常机制的概述 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机...

2018-06-22 16:54:26 53190 21

原创 OpenStack:常用端口的梳理

一、OpenStack组件使用的端口二、OpenStack组件依赖服务使用的端口

2020-08-06 16:02:04 26

原创 Docker教程:Dockerfile中sed的使用

在使用DockerFile制作nginx镜像时,需要修改nginx.conf的配置,通过 sed命令可实现对镜像中文件的修改。一、通过指定行号修改在指定行号后增加内容:RUN sed -i -e '行号a内容' 文件路径替换指定行号的内容:sed -i -e '行号c内容' 文件路径在指定行号前增加内容:RUN sed -i -e '行号i内容' 文件路径二、通过匹配内容进行修改匹配行前修改:RUN sed -i '/要匹配的内容/a修改后的内容' 文件路径匹

2020-07-30 10:54:22 98

原创 Vue:父子组件之间的接口互调

一、父组件中调用子组件的方法this.$refs.【子组件】.【子组件方法】父组件部分<template> <div id="parent"> <ImportComponent ref="ImportComponent"></ImportComponent> </div></template><script> import ImportComponent from "@/co

2020-07-08 14:00:27 61

原创 Java:字符串split使用.时返回空数组的问题

String str= "127.0.0.1";String[] splitStr= str.split(".");这个时候得到的是一个空数组。因为:涉及转义的字符,类似的还有() [] {} + - * / . ^ ? $ ¦ 。正确的写入如下。String[] splitStr= str.split("\\.");

2020-06-10 22:25:02 211

转载 简述Java中outer:语法的使用

关键字break和continue都是结束循环的作用,但是它只能结束它外面的第一层循环,如果代码里面是一层一层又一层的循环,但是想直接结束最外层循环就需要outer了。看如下代码:outer:for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if(j==0) { System.out.print(j); }else { /

2020-06-07 23:08:48 63

原创 Exception:java.lang.IllegalArgumentException: invalid comparison

异常: java.lang.IllegalArgumentException: invalid comparisonError querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: com.*.module.bean.enums.Enum_BusinessStage and java.lang.String说明: 在Mapper.xml中对非字符串类型的数据进行了是否

2020-06-01 23:23:24 60

原创 MySQL:常用的MySQL优化工具

影响数据库性能的常见因素如下:(1)磁盘IO;(2)网卡流量;(3)服务器硬件;(4)SQL查询速度。下面介绍几个mysql 优化的工具,可以使用它们对MySQL进行检查,生成awr报告,从整体上把握数据库的性能情况。一、MySQLTunerMySQLTuner是MySQL一个常用的数据库性能诊断工具,主要检查参数设置的合理性,包括日志文件、存储引擎、安全建议及性能分析。针对潜在的问题,给出改进的建议,帮助进行MySQL优化。MySQLTuner支持MySQL / MariaDB / Perc

2020-05-21 10:37:07 67

原创 管理者语录

(1)没做领导的时候,觉得领导都是傻X,做了领导之后,觉得下属才是傻X。(2)最快乐的时候就是专心写代码的时候,因为对就是对,错就是错,没有中间地带,没有不确定性,不存在写完一段代码后说这段代码可能正确的情况。(3)决策者永远比执行者累,要负的责任和要做的事的大小的影响都是完全不同的概念。(4)想要招聘个心仪的下属,不知道要花掉多大的运气才行。(5)以前觉得领导就是吃香喝辣耍威风,现在自己...

2020-04-07 21:04:14 82

原创 Mininet教程(四):Mininet可视化MiniEdit

Mininet通过Miniedit可视化,可以直接在界面上编辑任意拓扑,生成python自定义拓扑脚本,简单方便。Mininet 2.2.0以后内嵌miniedit。在mininet/example下提供miniedit.py脚本,执行脚本后显示可视化界面,可自定义拓扑及配置属性。Miniedit使用分为三步:(1)Miniedit启动进入mininet/example目录下,指定mini...

2020-03-31 20:32:26 551

原创 Mininet教程(三):Mininet命令操作

Mininet命令共分为网络构建启动参数、内部交互命令、外部运行参数三部分。(1)网络构建启动参数:–topo,–custom,–switch,–controller,–mac等等。(2)内部交互命令:dump,net,nodes,links,dpctl,iperf等等。(3)外部运行参数:-c(清除配置信息),-h(帮助)等。一、mn网络构建使用参数介绍–topo:定义拓扑结构a...

2020-03-31 20:28:17 589

原创 Mininet教程(二):Mininet安装部署

一、使用装有Mininet的虚拟机Mininet VM安装是安装Mininet最简单的方法,官方网站为http://mininet.org/download。虚拟机镜像必须有承载的虚拟软件,比如Windows的VirtualBox,VMware Workstation;Mac的VMware Fusion;Linux的KVM等。在虚拟软件中直接打开Mininet虚拟机即可。二、github获取安...

2020-03-31 20:12:47 621

原创 Mininet教程(一):Mininet基本介绍

一、Mininet是什么Mininet是由斯坦福大学基于Linux Container架构开发的一个进程虚拟化网络仿真工具,可以创建一个包含主机,交换机,控制器和链路的虚拟网络,其交换机支持OpenFlow,具备高度灵活的自定义软件定义网络。二、Mininet可以做什么为OpenFlow应用程序提供一个简单,便宜的网络测试平台;启用复杂的拓扑测试,无需连接物理网络;具备拓扑感知和Ope...

2020-03-31 19:56:35 1133

原创 Java:简述对Serializable序列化的认识

一般情况下,我们在定义实体类时会继承Serializable接口,还有一个serialVersionUID变量。如下所示,那么他们有什么用处呢?public class User implements Serializable { private static final long serialVersionUID = 1L; ......}一、Serializable接口Seri...

2020-03-19 22:16:02 101

转载 网络:简述使用ping查看网络情况的过程

一、概览当我们检查网络情况的时候,最先使用的命令肯定是 ping 命令。一般我们用 ping 查看网络情况,主要是检查两个指标,第一个是看看是不是超时,第二个看看是不是延迟太高。如果超时那么肯定是网络有问题啦(禁 ping 情况除外),如果延迟太高,网络情况肯定也是很糟糕的。那么对于 ping 命令的原理,以及ping 是如何检查网络的?大家之前有了解吗?接下来简述 ping 是如何工作的。二...

2020-02-26 21:48:24 732

原创 算法:费波纳茨数列1 1 2 3 5 8 13 21

故事来源: 一天,皇帝骑在马上,率领着文武百官,在号兵鼓手、马队的簇拥下,浩浩荡荡向比萨市费波纳茨的居所进发。弗德烈皇帝向费波纳茨提出了这样一个问题:如果一对兔子从第二个月开始,每月可产一对兔子,试问一年后这个特定的区域里共有多少对兔子?费波纳茨顺口回答了皇帝的问题:共有144对,并把他的计算方法说了出来——1,1,2,3,5,8,13,21,34,55,89,144,这就是费波纳茨数列的原版。...

2020-02-26 21:08:08 1102

转载 真正优秀的人,更懂得尊重别人

仓央嘉措 : 我以为别人尊重我,是因为我很优秀。慢慢的我明白了,别人尊重我,是因为别人很优秀;优秀的人更懂得尊重别人。对人恭敬其实是在庄严你自己。层次高的人,他们更懂得“感同身受”和换位思考,知道每个人都不容易,懂得尊重别人。故事一意大利插画家Marco Melgrati曾根据现实题材创作过一幅画——“你永远不知道跟你玩的是谁!”画中的猫把蛇尾当成鼠尾,毫不畏惧地用爪子抓着蛇的尾巴。...

2020-02-18 18:28:03 206

原创 Vue:SessionStorage存储-读取字符串和对象

SessionStorage存储-读取字符串sessionStorage.setItem("key","value");sessionStorage.getItem("key");SessionStorage存储-读取对象sessionStorage.setItem('user',JSON.stringify(res.data.body.user));let userInf...

2020-01-05 18:07:34 617

原创 SpringBoot:项目配置文件无法生效问题

问题描述:     SpringBoot项目,resource目录下application等配置文件无法生效解决方案:     Java Build Path ->Source->Excluded置为None...

2020-01-05 18:04:50 1302

原创 Vue:简述Vue开发中的NaN类型

NaN 属性代表一个“不是数字”的值。这个特殊的值是因为运算不能执行而导致的,不能执行的原因要么是因为其中的运算对象之一非数字(例如, “abc” / 4),要么是因为运算的结果非数字(例如,除数为零)。虽然 NaN 意味着“不是数字”,但是它的类型是 Number:console.log(typeof NaN === "number"); // logs "true"此外NaN 和任何...

2020-01-05 18:02:39 1196

原创 程序员:既要重视技术,也要重视业务

放在以前,码农这个族群一定是稀罕动物。但在今天,这个世界最不缺的应该就是码农了,未来最廉价的也将是码农。仅有泛泛一技,在未来并不吃香,因为那是要被机器人所取代的。这个世界,缺的是技术过硬又精通业务的工程师,缺的是真正能解决实际业务问题的人,缺的是复合型的人才。码农不是工程师,码农只是会写代码,只会明确需求和逻辑的情况下写代码。工程师则不一样,懂得用技术怎么解决实际业务问题,用技术驱动业务的发展。...

2020-01-05 17:59:05 747

原创 Druid:简述对数据库连接池Druid的认识和使用

一、Druid介绍Druid是一个数据库连接池,可以说是目前最好的!因其优秀的功能、性能和扩展性方面,深受开发人员的青睐。阿里巴巴已经部署了超过600个使用Druid的应用,经过一年多生产环境大规模部署的严苛考验。Druid是阿里巴巴开发的号称为监控而生的数据库连接池!Druid的主要功能如下:一个高效、功能强大、可扩展性好的数据库连接池。可以监控数据库访问性能。进行数据库密码加密 ...

2019-12-04 10:08:56 194

原创 Vue:Vue项目打包后,使浏览器WebPack中不能查看源码

目的 : 防止Vue项目代码泄漏的情况,例如在chrome的Sources—> Page—> webpack://可以查看**方案:**修改config/index.js中的 build对象productionSourceMap: false

2019-12-04 09:51:21 1811

原创 PageHelper:简述对物理分页插件PageHelper的认识

PageHelper是一款好用的,开源的,免费的Mybatis第三方物理分页插件。本文简单介绍PageHelper的基本使用和配置参数的含义,重点分析PageHelper作为Mybatis分页插件的实现原理。一、PageHelper的maven依赖及插件配置PageHelper除了本身的jar包外,它还依赖了一个叫jsqlparser的jar包,使用时,我们不需要单独指定jsqlparser的...

2019-12-03 11:03:10 417 2

原创 数据库:简述分页查询的优化方案

当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多优化的方案。下面简单说一些方法。一、一般分页查询一般的分页查询使用简单的 limit 子句就可以实现。limit 子句声明如下:select * from table limit number1,number2select * from...

2019-12-02 21:26:09 112

原创 路由器:简述对Routing路由表字段的认识

一、路由器工作原理路由器负责不同网络之间的通信,它是当今网络中的重要设备,可以说没有路由器就没有当今的互联网。在路由器中也有一张表,这张表叫路由表,记录着到不同网段的信息。路由表中的信息分为直连路由和非直连路由。直连路由:直接连接在路由器接口的网段,由路由器自动生成。非直连路由:不是直接连接在接口上的网段,此记录需要手动添加或者是使用动态路由。二、路由表中的表项内容destinat...

2019-11-29 18:00:05 376

原创 网络:以太网类型(EthernetType)整理

EtherType 是以太帧里的一个字段,用来指明应用于帧数据字段的协议。根据IEEE802.3,Length/EtherType字段是两个八字节的字段,含义两者取一,这取决于其数值。在量化评估中,字段中的第一个八位字节是最重要的。而当字段值大于等于十进制值1536 (即十六进制为 0600)时, EtherType 字段表示为 MAC 客户机协议(EtherType解释)的种类。该字段的长度和 ...

2019-11-29 17:40:13 1003

原创 JVM:简述对JVM内存数据区域的认识

JAVA程序运行于虚拟机之上,运行时需要内存空间。虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理。虚拟机管理内存数据区域划分如下图:一、程序计数器(Program Counter Register)行号指示器,字节码指令的分支、循环、跳转、异常处理、线程恢复(CPU切换),每条线程都需要一个独立的计数器,线程私有内存互不影响,该区域不会发生内存溢出异常。二、虚拟...

2019-11-24 19:55:58 182

原创 简述对常见日志分析软件的认识

一、ELK对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch、Logstash、Kibana技术栈的结合,由这三个软件及其相关的组件可以打造大规模日志实时处理系统。 E...

2019-11-23 20:10:16 125

原创 ELK:简述对ELK架构的认识

一、ELK的使用背景一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,把所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。一般大型系统是一个分布式部署的架构,不同的服务模...

2019-11-23 19:54:54 200

原创 Redis教程:Redis缓存和MySQL实现一致性

在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。一般都是按照下图的流程来进行业务操作。按照这个流程,读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。不管是先写MySQL数据库,再删除R...

2019-11-23 17:24:52 158

原创 Redis教程:提高Redis效率的小技巧

一、keys很多Redis的使用者因为使用keys这个命令,导致出现性能毛刺。这个命令的时间复杂度是O(N),而且Redis又是单线程执行,在执行keys时即使是时间复杂度只有O(1)例如SET或者GET这种简单命令也会堵塞,从而导致这个时间点性能抖动,甚至可能出现timeout。所以强烈建议生产环境屏蔽keys命令,屏蔽方法如下:二、scanscan命令是keys命令的替代者。如果把key...

2019-11-23 15:55:27 189

原创 SpringBoot:SpringBoot简单集成Redis进行开发

一、在pom中添加springboot对Redis的支持<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>二、在ap...

2019-11-23 15:24:17 119

原创 网络:简述对IP地址的认识

一、IP地址的分类1.A类IP段A类的默认子网掩码 255.0.0.0。255.0.0.0:11111111.00000000.00000000.000000000.0.0.0 到 127.255.255.255,一个子网最多可以容纳1677万多台电脑。2.B类IP段B类的默认子网掩码 255.255.0.0。255.255.0.0:11111111.11111111.0000...

2019-11-14 16:07:52 446

原创 数据库:简述对数据库的认识

《数据库:简述对关系型数据库的认识》《数据库:简述对非关系型数据库的认识》《数据库:关系型数据库和非关系型数据库的区别》《数据库:简述对分布式数据库的认识》一、数据库的定义数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所。用户可以对文件中的数据进行新增、查询、更新、删除等...

2019-11-11 20:25:31 467

原创 数据库:简述对分布式数据库的认识

所谓的分布式数据库技术,就是结合了数据库技术与分布式技术的一种结合。具体指的是把那些在地理意义上分散开的各个数据库节点,但在计算机系统逻辑上又是属于同一个系统的数据结合起来的一种数据库技术。既有着数据库间的协调性也有着数据的分布性。这个系统并不注重系统的集中控制,而是注重每个数据库节点的自治性,此外,为了让程序员能够在编写程序时可以减轻工作量以及系统出错的可能性,一般都是完全不考虑数据的分布情况...

2019-11-11 20:21:26 347

原创 数据库:关系型数据库和非关系型数据库的区别

1. 存储方式传统的关系型数据库采用表格的储存方式, 数据以行和列的方式进行存储,要读取和查询都十分方便。而非关系型数据不适合这样的表格存储方式,通常以数据集的方式,大量的数据集中存储在一起,类似于键值对、图结构或者文档。2. 存储结构关系型数据库按照结构化的方法存储数据, 每个数据表都必须对各个字段定义好(也就是先定义好表的结构),再根据表的结构存入数据,这样做的好处就是由于数据的形式和...

2019-11-11 20:17:35 606

原创 数据库:简述对非关系型数据库(NoSQL)的认识

一、非关系型数据库的概念随着近些年技术方向的不断拓展,大量的NoSql数据库如MongoDB、Redis、Memcache出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的被设计。NoSQL数据库指的是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。NoSQL数据库技术与CAP理论、一致性哈希算法有密切关系。所谓CAP理论,简单来说就是一个分布式系统不可能满足可...

2019-11-11 20:08:24 339

原创 Java:StringUtils类isEmpty方法和isBlank方法区别

org.apache.commons.lang3.StringUtils 类提供了 String 的常用操作,最为常用的判空有如下两种 isEmpty(String str) 和 isBlank(String str)。一、源码public static boolean isEmpty(String str) { return str == null || str.length() =...

2019-11-08 18:12:05 519

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