自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL引擎介绍

在学习MyBatis框架的时候创建了一个数据库表,其中在表的末端使用到了engine = innodb default charset = utf8;当我们不进行设置时,engine的默认值是MyISAM,MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。 简单来说innobd适合与事务有关的处理。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。这样就可以根据数据表不同的用处是用不同的存储类型。

2021-06-07 22:30:49 1066

原创 JVM类加载

一、jvm一个类的加载过程一个类加载到jvm内存,到jvm内存的卸载,会经历七个阶段,也就是他的生命周期:加载——验证——准备——解析——初始化——使用——卸载其中验证、准备、解析阶段统称为链接,于是乎整个过程变成了加载——链接——初始化——使用——卸载。加载:主要通过classpath、jar包、网络、某个磁盘位置中类的class二进制字节流读取,在内存中生成一个代表这个类的java.lang.Class对象放入元空间。此阶段可以干预,使用自定义类加载器来实现。链接:主要是为了验证加载的类是否

2021-08-29 15:38:29 139 1

转载 过滤器和拦截器的区别

过滤器与拦截器的区别——转载

2021-08-07 21:51:38 106

原创 Java关键字——volatile

1、JMM(java内存模型)要了解volatile是什么,首先需要知道JMM,JMM全称是java内存模型(Java Memory Mode)。为什么需要java内存模型,是因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。JVM中将内存划分为主内存和工作内存。主内存对应java堆中的对象实例,

2021-07-16 22:13:13 720

原创 Java线程池

1、线程池程序的运行,其本质上,是对系统资源(CPU、内存、磁盘等等)的使用。高效的使用这些资源是编程优化演进的一个方向。传统的单个线程的创建使用太耗费资源,存在效率低管理不遍等缺陷。而池化技术的出现,很好的解决了单个线程创建的缺点。池化技术:池化技术简单点来说,就是提前保存大量的资源,以备不时之需。在机器资源有限的情况下,使用池化技术可以大大的提高资源的利用率,提升性能等。有了池化技术,线程池也就理所当然的派上用场。线程池的优势:线程池的主要特点有:① 线程复用性高 ② 能控制最大并发数 ③便于

2021-07-15 21:39:28 108

原创 红黑树——变色及旋转

什么是红黑树红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。红黑树是一种特化的AVL树(平衡二叉树),都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。 它虽然是复杂的,但它的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。——来自百度百科为什么需要红黑树?红黑树的使用极大的提高了搜索效率,传统的二叉树和二

2021-07-10 16:05:53 551

原创 JVM堆内存及GC回收算法

堆:**新生区:**伊甸园(Eden)、form、to(谁空谁是to)**老年区:**经过新生区筛选留下来的,即当一个对象经历了15次GC还没销毁则进入老年区新生代(Young)与老年代(Old)的比例值是1:2 Eden :form:to = 8:1:1**元空间(永久区):**又称非堆,逻辑上存在,物理上不存在。Jdk8.0版本后称位元空间,且在本地内存中存储,不属于jvm内存。GC(Garbage Collection 垃圾回收机制):GC只有在新生区和老年区中执行,自动执行。当一个对象经

2021-07-03 23:05:06 150

原创 native关键字

在Java源码中我们可以看到有些类并不是具体的抽象类或接口,但却可以存在未实现的方法,如Thread中:我们都知道Thread线程是一个class,理论上是不能存在未实现的方法的。那么native究竟是干什么的起到了什么作用呢?native说明:凡是带了native,说明java的作用范围达不到了,需要回去调用底层c语言的库native主要是调用了偏向底层c语言或c++的库,偏向硬件类的在使用java驱动程序可以使用,如打印机,管理系统等jvm中存在一个本地方法接口,调用native主要是调

2021-07-03 11:28:22 91

原创 双亲委派机制——简单理解

三层ClassLoaderjava程序都是在jvm上运行的,而jvm又提供了三层ClassLoader,这三层分别是:Bootstrap classLoader:主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。ExtClassLoader:主要负责加载jre/lib/ext目录下的一些扩展的jar。AppClassLoader:主要负责加载应用程序的主函数类双亲委派机制:当我们运行一个类时,他会一直从AppCla

2021-07-03 10:27:04 216

原创 springMvc底层原理的简单理解

springmvc底层实现原理:用户发送请求时会经过dispatcherServlet,dispatcherServlet根据请求去寻找处理映射器,处理映射器进行解析查找,返回一个映射器。接着dispatcherServlet根据映射器去适配,然后由具体的Controller去执行,调用业务层,返回一个ModleAndView,即返回数据和需要跳转的页面dispatcherServlet再通过ModeAndView去配置试图解析器,试图解析器再返回给前端说明具体要调用的页面。...

2021-06-23 21:34:20 346

原创 在idea中使用ajax配置

前言本章记录了使用maven工程结合SpringMvc创建ajax的使用环境。AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。传统的网页(即不用ajax技术的网页),想要更新内容或者提交一个表单,都需要重新加载整个网页。使用ajax技术的网页,通过在后台服务器进行少量的数据交换,就可以实现异步局部更新。一、搭建ajax运行环境首先需要导入Json

2021-06-23 01:00:01 5517

原创 Get请求和Post请求的探讨

前言说到get请求和post请求的区别,最直观的感受是get请求把参数放在url中,post请求是通过request body传递参数。但事实上并非如此。一、get请求和post请求的区别我们先来具体列举他们之间的区别:GET请求在URL中传送的参数是有长度限制的,而POST没有。对参数的数据类型,GET只接受ASCII字符,而POST没有限制。GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。GET参数通过URL传递,POST放在Request body中。

2021-06-21 22:09:50 233 1

原创 Spring-AOP三种实现方式

文章目录前言Aop在Spring中的作用AOP中的专业术语二、实现方式(jdk动态代理)1、方式一(通过 Spring API 实现)小结:Spring的Aop就是将公共的业务 (日志 , 安全等) 和领域业务结合起来 , 当执行领域业务时 , 将会把公共业务加进来 . 实现公共业务的重复利用 . 领域业务更纯粹 , 程序猿专注领域业务 , 其本质还是动态代理 。2、方式二(自定义类实现AOP)3、方式三(基于注解的方式进行实现)前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发

2021-06-17 17:47:25 436

原创 spring中基于注解实现属性注入

准备工作1、在spring配置文件中引入context文件头xmlns:context="http://www.springframework.org/schema/context"http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd即创建context域名空间2、开启属性注解支持!(重要!)<context:annot

2021-06-15 17:28:09 239

原创 mybatis环境搭建

关于mybatis运行环境搭建的步骤文章目录关于mybatis运行环境搭建的步骤前言一、mybatis是什么?二、使用步骤1.新建一个普通的maven项目2.创建mybatis的核心模块3.编写mybatis工具类4.编写代码前言在学习mybatis框架时,为了后续更好的理解和使用,在此记录了该运行环境的搭建过程。一、mybatis是什么?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获

2021-06-11 00:45:51 1122

原创 log4j日志文件的配置

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、log4j是什么?二、使用步骤1.使用maven进行配置2.在类路径下创建log4j.porperties配置文件3.最后在mybatis-config.xml文件中设置value值为log4j4.使

2021-06-10 09:30:18 815

原创 mysql数据库8.0返回无效时区(Server returns invalid timezone)

在idea上连接mysql数据库时,如果数据库版本为8.0,则需要在后面添加上:?serverTimezone=GMT%2B8若未添加,点击Test Connection 时会提示服务器返回无效时区:此时只需要在url后添加上:?serverTimezone=GMT%2B8 可以解决问题。...

2021-06-08 17:27:19 1272

空空如也

空空如也

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

TA关注的人

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