自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

日拱一卒

眼睛看向的地方能到达吗?

  • 博客(23)
  • 问答 (7)
  • 收藏
  • 关注

原创 MySQL底层与MVCC

MySQL底层大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。Store层存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MyS

2021-04-25 15:29:59 178

原创 MySQL索引的数据结构和索引优化

索引是帮助我们查找数据的排好序的数据结构,现在MySQL索引支持HASH和BTREE。我们大多数使用BTREE。下面我们介绍一下常见的几种数据结构,并解释一下为什么mysql不采用这些数据结构而是用BTREE。索引的数据结构 平衡二叉树 就拿主键索引来说,当表中数据量级增大,索引也越来越多,构建的索引二叉树也越来越高,数据库索引是存储在外部磁盘上的,当我们利用索引查找数据时,不可能把整个索引全部加载到内存,只能逐一加载每个磁盘页,磁盘页对应索引树的节点,那么这时需要做的磁盘IO增多,所以不使用

2021-04-23 18:17:00 238

原创 垃圾收集算法和垃圾收集器

垃圾收集算法分代收集理论分代收集就是根据对象在各个年代内存分配的策略和对象的存活周期来选择对应年代的收集算法,如年轻代中的对象朝生夕死,我们则可以选择复制算法以空间换时间去收集,老年代中的对象大多是老顽固,收集一次可能并没有多少对象要被回收,那这种情况下采用复制算法有点浪费空间且效率低,再者老年代没有别的年代为他进行分配担保,所以我们采用标记清楚或标记整理算法。 复制算法 标记清除算法 标记整理算法 垃圾收集器 serial收集器(-XX:+UseSerial..

2021-04-23 10:11:39 147

原创 JVM整体结构

JVM之前阅读过《深入理解java虚拟机》这本书,也系统总结过关于JVM的一些基础知识,所以这篇文章不会再重复那些内容,只记录一些之前没关注到的内容或难以理解的内容。虚拟机栈(线程栈)虚拟机栈中有局部变量表、操作数栈、动态链接、方法出口等信息。局部变量表用于存放线程中的基本数据类型和对象引用。操作数栈用于存储方法中的一些操作数,用完就会被回收。上图表示的是main方法运行时jvm虚拟机中关于main方法线程中栈帧的布局和操作数的运算过程。对象的内存分配及GC...

2021-04-22 18:22:14 212

原创 类加载机制

类加载是什么?首先,java之所以是跨平台的语言是因为我们编写好java文件后,java文件会被编译成.class文件,也就是字节码文件,字节码文件可以在任何平台通过java虚拟机来运行。java虚拟机怎么运行字节码文件的呢?其实也就是类怎么被加载的。在java中有类加载器的概念,其实类加载器也不过是功能为加载其他类的类。类加载器会将.class文件转化成二进制字节流存入运行时数据区的方法区中,并在堆中创建一个class对象,用于封装类在方法区内的数据结构。什么时候会启动类加载器?当我们在A类的

2021-04-22 15:53:54 210

原创 Java异常

最近在整理以前的资料,发现有道云笔记上还有写过的部分内容,先挪上来。一、异常的实现及分类所有的异常都继承于Throwable,他有两个子类,Error和Exception。Error是错误,所有编译时期的错误和系统错误都通过Error抛出,这些错误表示故障发生于虚拟机自身,或者发生在虚拟机试图执行应用时,如java虚拟机运行错误(Virtual MachineError)、类定义错误(NoClassDefFoundError)等。这些错误是不可查的,因为它们在应用程序的控制和处理能力之 外.

2020-08-12 10:50:02 111

原创 RocketMQ

这段时间做分布式事务的时候用到了RocketMQ,今天在这里总结一下最近的学习成果。什么是MQ?MQ就是消息队列,全称Message Queue。顾名思义,就是存放消息的队列。为什么要用MQ?1、异步没错,就是我们常说的那个异步。举个栗子,现有AB两个服务,客户端调用A服务的一个接口,接口中又调用了B服务的接口,但是B服务这个接口可能实时性要求不是很高,那为了加快接口的响应速度,我们可以将A调用B这部分用MQ来代替,此时,请求逻辑就变成了客户端调用A的接口,A接口发送消息到MQ Serv

2020-08-12 10:48:57 170

原创 分布式之CAP定理和BASE理论

距离第一篇文章的更新,已经过去一个多月了,不是我偷懒不更新,实在是这段时间太忙了。今天准备整理下分布式系统中的理论知识——CAP和BASE。 什么是CAP CAP是指Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)。一致性:一致性是指在分布式系统中的所有数据备份,在同一时刻是否同样的值。大致分为强一致性、弱一致性和最终一致性。关于一致性的详细描述可以参考这篇文章https://www.jianshu.com/p/3

2020-08-12 10:48:13 220

原创 知识总结——Java

Java基础:Java高级:

2020-08-11 18:05:29 191

原创 知识总结——JVM

​内存区域Java虚拟机在执行Java程序的过程中把它管理的内存划分为若干个不同的数据区。 程序计数器:当前线程所执行的字节码的行号指示器,字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖它;多线程场景下,程序计数器用于记录本线程执行位置情况,方便下次切换回来继续执行。此区域是唯一一个不会出现OutOfMemoryError的区域,生命周期随线程 虚拟机栈:生命周期跟线程一样,描述的是Java方法执行的

2020-08-11 18:03:09 119

原创 redis集群搭建,看这一篇就够了!

网上很多关于redis集群搭建的博文,照做之后我都掉进了坑,愤怒之余,自己来写一篇作为我公众号的开篇文章。什么是redis集群? redis集群就是多个redis节点一起工作的模式。它没有代理节点和中心节点,各个节点平等。 在redis集群中,数据在多个节点自动分区。集群内置了16384(2的14次方)个slot(哈希槽),并分配给了各个节点。redis集群在存储数据时会先根据...

2020-04-16 21:59:17 422

原创 mysql和oracle自定义多条件排序

mysql:使用field函数。select * from a order by field(name,'val1','val2','val3');其中name是你要排序的字段,后面是字段的值,比如select * from a field(age,'18','20','19');以上是自定义条件排序,多条件就是select * from a order by(field(age,'1...

2018-09-03 15:00:13 1221

原创 poi导出excel表格

 刚入职不到一个月,前几天产品姐让做一个导出excel表格到的功能。以前在学校从来没有接触过,一脸懵逼。但是任务得完成啊。就从网上查java导出excel怎么做,然后就找到了poi。首先,去apache官网下载poi使用的jar包。代码如下:util方法:package com.mx.util;import java.io.FileNotFoundException;i...

2018-08-09 17:18:32 239

原创 hibernate中的saveOrUpdate方法

saveOrUpdate方法是分为save(insert)和update(update)方法,它是根据session中对象的状态来判断并选择执行操作的。下面简述hibernate中对象的三种状态。瞬时态(Transient,临时态):(对象未被持久化)实例对象是通过new关键字来开辟内存空间创建java对象,但是它并没有纳入hibernate的session管理中,如果没有变量对它引用,它将被

2017-12-08 11:49:14 4746

原创 ModelDriven

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-11-23 21:38:47 189

原创 转发,重定向中的路径问题以及两者的区别,用法

url:http://localhost:8080/newlib"/"代表根目录,也就是这里的http://localhost:8080"./"代表当前目录"../"代表上一级目录request.getContextPath()代表:/newlib转发和重定向的过程:转发:浏览器发送http请求给服务器,服务器接受请求,在内部调用方法在完成请求处理和转发动作将目标资源发

2017-09-19 08:58:32 4849

原创 jsp

jsp总结定义:java server page,中文名:java服务器页面。实质:是一个简化的servlet,它和servlet一样,在服务器端运行。一个jsp页面第一次被访问时,tomcat引擎会自动将         jsp翻译成一个servlet,xxx.jsp-->xxx_jsp.java-->xxx_jsp.class。作用:在html页面中插入java代码。出现的原因

2017-09-11 22:26:44 230

原创 服务器地址和客户端地址

客户端地址:客户端去访问服务器的地址,是服务器外部的地址,访问时需要写上web应用的名称,例如:http://localhost:8080/test,常见的有重定向,直接输入地址访问,服务器端地址:服务器内部资源跳转的地址,例如在一个web应用的请求转发request.getRequestDispatcher(address)。后期补充...

2017-09-10 20:05:21 1882

原创 常见的状态码

200:一切正常302:重定向304:拿本缓存404:没有该资源(服务器端)500:服务器端错误后续补充每个状态出现的具体意思...

2017-09-08 16:27:27 282

原创 ueditor基本配置使用

1.配置ueditor基本功能a.在官网下载对应版本的ueditor压缩包,解压后放到项目的webroot下b.在需要富文本编辑器的jsp页面引入c.创建编辑器实例及其DOM容器(使用script而不用textarea的好处在官方文档上有说明)d.在ueditor_config.js中查找URL变量配置编辑器在项目中的路径2.前后端交互默认的name为edi

2017-09-05 23:47:50 290

原创 图片回显

我们在Java代码中上传图片时,图片的路径是通过代码request.getSession().getServletContext().getRealPath("/img")来获取路径的,而这句代码返回的路径是tomcat中webapps目录下的工程路径,图片就直接保存到了tomcat中。当我们重新发布工程的时候,tomcat其实是先将原来的工程删掉,然后再将改动过的新的工程

2017-09-05 22:25:14 1462

原创 重新部署项目后,上传的图片在浏览器中

在tomcat中重新部署项目后,原来的文件都会被删除,说明图片不是上传到项目里了,而是存到tomcat的已编译项目里。可以用虚拟路径来解决。1.配置tomcat中的server.xml文件<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"

2017-09-05 22:14:16 252

原创 HTTP Status 500 - Cannot call sendRedirect() after the response has been committed

HTTP Status 500 - Cannot call sendRedirect() after the response has been committedsendRedirect无法被重复调用。在每个response.sendRedirect() 调用后面加上return;response重定向之后的代码都会无效的

2017-09-05 21:48:15 2980 2

空空如也

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

TA关注的人

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