- 博客(26)
- 收藏
- 关注
原创 简述select、poll、epoll的区别
IO多路复用是Linux常见的一种IO模型,select、poll和epoll是其三种实现方式,那这三种方式有什么区别呢?select进程调用select后会被阻塞,当fd(文件修饰符)就绪后或者阻塞时间超时后,select函数返回,进程轮询fd集合,找到就绪的fd并执行select能监控的fd数量是有上限的,32位系统一般为1024,64位系统为2048;这个上限可以通过修改参数提高,但是相应的会损失性能pollpoll和select基本是一样的,但是它对fd集合做了优化,使用链表存储
2021-08-06 17:16:54
240
原创 left join、right join和inner join有什么区别?
sql有left join、right join和inner join,那它们之间有什么区别呢?left join:返回左表所有记录和右表联结字段相等的记录,右表中不存在的记录用NULL填充 right join:返回右表所有记录和左表联结字段相等的记录,左表中不存在的记录用NULL填充 inner join:只返回左表和右表联结字段相等的记录例如现在有两张表,A和B,分别使用三种联结方式看看select结果表Aaid aname 1 Jack 2 Sam 3
2021-08-03 17:48:43
253
原创 第四次挥手后等待的2MSL到底是多久?
HTTP断开连接需要经过四次挥手,第四次挥手后为了保证发送的ack成功被对方接收需要等待2MSL的时间。MSL:报文的最长生存时间那到底2MSL是多长时间呢?规定是MSL为2分钟,2MSL就是4分钟但是实际中30秒、1分钟、2分钟都在使用...
2021-07-27 17:02:49
4849
原创 查询联合索引里单个字段会走联合索引吗?
背景索引:IDX(b,c)sqlselect id where b = xx;select id where c = xx;上面的两句sql会走b,c的联合索引吗?答案是第一条会走,第二条不会那多个字段的联合索引,使用部分字段会走索引吗?例如 IDX(a,b,c) select id where b = xx and c = xx;答案是不会其实不管是多少个字段的联合索引,不管查询顺序,不管查询用到了几个字段只要没有使用联合索引的第一个字段,则不会走联合索引...
2021-07-19 19:34:44
4679
3
原创 Git入门及常用命令
Git安装sudo apt-get install git创建仓库初始化一个仓库:git init只能跟踪文本文件,不能跟踪二进制文件添加文件到仓库使用命令git add <file>,注意,可反复多次使用,添加多个文件使用命令git commit -m <message>,完成基本操作git status功能:查看仓库当前状态,查看是否有文件被修改,不显示具体修改内容git diff功能:查看仓库文件修改的具体内容版本回退git log功能:查看
2021-03-18 21:46:21
132
原创 JavaScript(六)类型转换、正则、异常
前言经过前面一系列的学习,我们已经可以进行简单的JavaScript编写了。学会了外形,下面我们继续修炼内功,后面的一系列知识是能给我们编程带来很大质量提升的技能类型转换在编程过程中,我们常常会遇到需要改变变量数据类型的情况,这时候我们的类型转换就派上用场了JavaScript有6种常规数据类型:string,number,boolean,object,function,symbol2种特殊数据类型:null,undefined3种对象类型:Object,Date,Array注:
2020-06-01 21:31:56
701
原创 JavaScript(五)判断、条件、循环
前言之前写的代码,感觉是没有灵魂的,你怎么写它就怎么做。加入了逻辑判断和循环等语句后,就相当于给代码注入了灵魂,它可以有自己的思维去判断该做什么事情判断比较运算符运算符描述==等于===绝对等于(值和类型均相等)!=不等于!==不绝对等于(值和类型有一个不相等,或两个都不相等)>大于<小于>=大于或等于<=小于或等于逻辑运算符三目运算符这也是比较常用的一种判断语句,示例:()中的是判断
2020-05-26 11:53:43
2227
1
原创 The user specified as a definer (‘root’@‘%’)does not exist解决方法
最近使用备份的数据库时,遇到一个报错:The user specified as a definer (‘root’@’%’) does not exist这个错误的原因是,数据库备份是不包括视图文件的,恢复备份的数据库是没有权限访问视图文件的,所以要给数据库添加权限。1.win+r,输入cmd进入命令提示符界面2.mysql -u root -p输入数据库密码后,进入mysql服务,这儿的mysql是各自的服务名,我的就叫mysql3.grant all privileges on *.* t
2020-05-22 17:32:40
7883
4
原创 JavaScript(四)事件、字符串、运算符
前言这篇详细讲解如何在HTML事件触发时,执行JavaScript代码,来实现动态需求。同时详细讲一下字符串和运算符,在JavaScript编程中经常使用,需要深刻理解事件HTML事件,顾名思义就是在HTML页面上发生的事情,事件可以是浏览器行为或者用户行为。例如页面加载完后显示页面内容,这就是浏览器行为。用户点击按钮,页面内容改变,这就是用户行为。要想实现这样灵活的动态改变,就需要在事件触发时加入JavaScript代码。例如:<p id="demo"></p><b
2020-05-17 14:49:42
2373
1
原创 JavaScript(三)对象、函数、作用域
前言后面阶段学习知识更加具体化,建议读者在学习理论知识的同时,也能上手操作,能够快速的理解掌握所学知识。对象此对象非彼“对象”,JavaScript中对象可以随意创建,那个“对象”只有靠自己努力(〃‘▽’〃),不过二者也有相同之处和你的girlfriend一样,JavaScript的对象也有自己的属性和方法。例如,girlfriend对象有自己的属性:长发、年龄、身高等等;也会有自己的...
2020-05-07 23:24:39
1495
1
原创 JavaScript(二)变量、数据类型、注释
前言突然发现图片只能上传5m以内大小的,我晕。。。只能选一些小点的图片和大家分享了,代码固然美妙,生活也很重要。变量变量简单来说,就是用一个字符来存放值,例如x=1,就是用‘x’来存放值1。这里的值是多种多样的,可以是整数、浮点数、字符串…变量也可以存放表达式,例如x=y+z,就是用’x’来存放"x+y“”表达式。JavaScript对变量命名的规范:1.必须以字母或者特殊字符(例如$ ...
2020-05-02 23:54:41
1727
1
原创 cp30报错An attempt by a client to checkout a Connection has timed out
使用mysql+cp30连接池时,报错An attempt by a client to checkout a Connection has timed out。从报错信息上看,是获取connection连接超时了,错误原因可能是因为cp30的私有属性checkoutTimeout设置太小造成的。当checkoutTimeout值设置过小时,可能由于操作数据过大而造成超时。解决方法:增加check...
2020-04-30 09:41:04
9494
1
原创 JavaScript(一)简介、语法、输出
前言之前一直做Java后台开发,这个阶段准备学习JavaScript,这个系列我也会边学边更新。因为没有什么艺术天赋,最近又在学习摄影,所有每篇文章最后都会附上我拍摄的一张图片,供大家一起欣赏。ps:本系列学习需要HTML、CSS基础简介JavaScript是一种轻量级的脚本语言,适应现代所有的浏览器,现在广泛的用于前端开发。我自己对JavaScript的理解是,它让网页“动”起来了,在静态...
2020-04-29 11:25:34
2068
1
原创 cp30报错No operations allowed after connection closed
使用mysql+cp30连接池时,报错No operations allowed after connection closed。从报错信息来看,是connection断开导致的错误。在网上搜索后发现,较新版本的mysql配置了connection的默认时间,默认时间一般为8个小时。超过了八个小时,mysql则会自动断开connection,解决方法为:在xml文件中增加property配置...
2020-04-27 23:25:37
2956
1
原创 ftl模板生成的word文档打不开
使用ftl用ftl模板生成的word文档打不开,一直未响应的可能问题如下:1.word模板另存为xml格式文件的时候,选择Word 2003 XML格式(兼容问题)2.模板中有图片的时候,将ftl文件中图片的base64编码改成变量${xxx}改为对应的变量名3.图片的<w:binData></w:binData>标签必须在同一行,不能跳行,中间...
2020-04-19 21:44:33
3996
1
原创 Java使用模板生成Word发给前端下载
之前使用POI组件生成Excel,表格的布局和内容填充都比较简单。Word文档布局更加复杂,字体、排版、字号等等因素不好调整,于是使用模板来生成Word文档,瞬间舒服多了。1.新建一个Word文档作为模板,需要动态变量的地方用${xxx}进行替代,例如:在文档中可以根据自己的需求更改字号,字体等等排版格式。2.将该文档另存为Word.xml格式,不能直接修改文件后缀:打开该xml文件,...
2020-04-13 11:27:38
4428
3
原创 Redis中常见缓存问题解析
Redis是一个具有较高性能的key-value型数据库,Redis通过RDB周期性的将内存中的数据以快照的形式存入硬盘中,以此达到持久化的目的。在此解析一下Redis缓存中常见的四个问题:缓存预热、缓存雪崩、缓存穿透、缓存降级。缓存预热当用户查询一个数据时,会先到数据库进行查询,再将查询到的数据进行缓存。为了避免这个问题,在用户查询前就将缓存数据加载到缓存系统中,这样用户查询时就能直接进入我...
2020-04-07 23:35:16
2116
1
原创 POI导出Excel文件中文乱码
使用POI组件生产Excel文件时中文乱码,总结后可能错误原因如下:后台导出Excel文件格式混乱POI组件可生成.xls和.xlsx两种格式的Excel文件,设置文件格式时应注意与导出的格式相匹配。如果文件格式设置出错,则会出现以下错误:.xls文件格式设置response.setCharacterEncoding("utf-8");response.setContentType("...
2020-04-06 10:41:22
6242
1
原创 Unknown column ''xxx" in 'field list'解决方案
最近在用ssm框架(spring+spring MVC +mybatis)进行项目开发的时候,遇到了一个比较奇怪的问题。本地测试所有接口的sql语句都一切正常,但是把项目部署到远端服务器上请求接口就报错:Unknown column ‘’ in ‘field list’。根据报错信息在网上搜索了一些解决方法,都没有解决问题,大家可以先试试这些方法:1,检查数据库中的字段名与实体类中的字段名是否...
2020-03-20 16:15:15
4489
3
原创 使用POI组件导出Excel文件
在使用Java进行日常开发的时候,经常需要导出一些文件。其中Excel文件是最常见的一种导出格式,Java中可导出Excel的组件有很多种,这儿我详细介绍其中一种——POIPOIPOI由Apache公司开发,可到Apache官网直接下载POI的压缩包POI压缩包下载下载后解压,将我们需要的jar包放进我们项目的lib文件中,即可在项目中使用POI组件的功能导出Excel进行Excel...
2019-12-02 16:53:01
2160
1
原创 Ajax URL路径的写法
Ajax URL路径的写法在前后端使用ajax进行数据交互的时候,需要在前端代码中编写URL路径进入后端代码的controller中,从而获取数据。初次尝试前后端交互也许会遇到困难,在此,我列举了几种URL的写法供大家分享。相对于网站根目录可以用"/"开始 (根目录是指服务器的根目录,不是你项目的根目录)...
2019-10-07 16:34:56
5059
1
原创 ssm框架搭建流程
ssmssm是整合了spring、spring MVC、mybatis三个框架的开源框架1.导包由于spring MVC 本身就是springwebmvc,是spring框架的一部分,可以与spring无缝整合,MyBatis与Spring整合就需要额外的jar包,即需要MyBatisSpring的整合包2.配置文件根据web层,service层和dao层三层架构与ssm框架的联系从...
2019-08-31 14:57:43
2862
1
原创 MyBatis入门详解
释义MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录简单来概括,MyBatis...
2019-08-02 09:40:21
2433
1
原创 Spring框架
释义Spring是一个基于IOC和AOP的结构J2EE系统的框架。IOC反转控制是Spring的基础,Inversion Of Control简单说就是创建对象由以前的程序员自己new构造方法来调用,变成了交由Spring创建对象DI依赖注入Dependency Inject。简单说就是拿到对象的属性,已经被注入好相关值了,直接使用即可。作用1.简化企业软件开发的复杂性2.提供更多的企业应...
2019-07-13 17:06:36
2264
1
原创 Java SE到Java EE的学习转换
我接触java的学习是从Java SE开始的,SE部分主要是用来做桌面程序的开发,在现在的主流趋势中已经渐渐的退出了中心舞台。现在人们对网络的认知和通过网络接收信息大部分都是碎片化的,因此各种网页就成为了我们最频繁的上网途径,因此Java EE热了。我想就此分享一下我从SE的学习到EE的学习的转换历程**不同之处**Java SE是纯java语言的学习,可以通过它进行java桌面程序的开发等。...
2019-07-12 09:58:08
3148
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人