自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (1)
  • 收藏
  • 关注

原创 IDEA设置(2020 1.2版本)

IDEA设置(20201.2版本)设置常见的视图工程界面展示创建模块(Module)Module创建Module删除查看项目配置常用配置1. Appearance & Behavior设置界面1.1设置主题1.2 设置窗体及菜单的字体及字体大小 (可忽略)1.3 补充:设置编辑区主题 (可忽略)2. Editor - General2.1 设置鼠标滚轮修改字体大小(可忽略)2.2 设置鼠标悬浮提示2.3 设置自动导包功能2.4 设置显示行号和方法间的分隔符2.5 忽略大小写提示2.6 设置取消单行显

2020-12-19 17:19:07 1555 1

原创 Bomb Lab (计算机系统基础实验)

最近看了计算机系统基础实验这门课程,做了Bomb Lab的实验,然后做做相应的总结。

2022-06-09 21:00:42 1993 2

原创 谷粒学院p68 vue-element-admin 安装失败

一开始导入vue-element-admin npm install 的时候一直失败,然后导入的是vue-admin-1010(已经下载好依赖了)运行报错如下:Module build failed (from ./node_modules/sass-loader/lib/loader.js):Error: Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (

2021-12-30 10:28:29 791

原创 @RequestBody、@RequestParam和@ResponseBody的区别

@RequestBody和@RequestParam主要是用来接收前端传给后端的json数据。@RequestBody 需要使用post提交方式在后端接收的方法里@RequestBody可以和@RequestParam同时使用,但一个方法里,@RequestBody只能有一个,@RequestParam可以有多个。使用json传递数据,把json数据封装到对应对象里面@RequestBody(required = false) TeacherQuery teacherQuery)//参

2021-12-28 17:48:20 508

原创 MyBatis-Plus主键注解

使用位置:实体类主键字段@TableName("sys_user")public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email;}属性类型必须指定默认值描述valueString否“”主键字段名typeEnum否IdTy.

2021-12-27 13:09:59 5203

原创 栈帧(局部变量表)

局部变量表 字节码中方法内部结构的剖析变量槽slotSlot的重复利用局部变量局部变量表是一组变量值的存储空间,用于存放方法参数和方法内部定义的局部变量,在Java程序被编译为Class文件时,就在方法的Code属性的max_locals数据项中确定了该方法所需分配的局部变量表的最大容量。字节码中方法内部结构的剖析变量槽slot局部变量表的容量以变量槽(Variable Slot)为最小单位。一个变量槽可以存放一个32位以内的数据类型,Java中不超过32位存储空间的数据类型有boole

2021-07-17 18:19:08 500 3

原创 JVM虚拟机发展历程

JVM发展历程Sun Classic VMExact VmHotSpot VMBEA 的 JRockitIBM 的 J9KVM 和 CDC/CLDC HotSpotAzul VMBEA Liquid VMApache HarmonyDalvik VMMicrosoft JVMTaobao JVMGraal VMSun Classic VMJIT :Just-In-Time Compiler(即时编译器)Exact VmHotSpot VMBEA 的 JRockitIBM 的 J9KV

2021-07-13 18:48:00 228

原创 DispatcherServlet is not assignable to javax.servlet.Servlet

出现这个错误解决方法如下:解决!!!

2021-05-29 21:09:36 891 1

原创 SpringMVC异常处理

SpringMVC异常处理1. SpringMVC异常处理1.1 异常处理的思路1.2 异常处理两种方式1.3 简单异常处理器SimpleMappingExceptionResolver1.4 自定义异常处理步骤1. SpringMVC异常处理1.1 异常处理的思路系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试等手段减少运行时异常的发生。系统的Dao、Service、Controller出现都通过throws

2021-05-25 15:58:22 159 2

原创 SpringMVC拦截器

SpringMVC拦截器1. SpringMVC拦截器1.1 拦截器(interceptor)的作用1.2 拦截器和过滤器区别1.3 拦截器是快速入门1.4 多拦截器操作1.5 拦截器方法说明1. SpringMVC拦截器1.1 拦截器(interceptor)的作用Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(Interceptor Chain)。在访问被拦截的方法或字段时,

2021-05-25 15:17:58 120 1

原创 Spring JdbcTemplate基本使用

Spring JdbcTemplate基本使用Spring JdbcTemplate基本使用1.1 JdbcTemplate概述1.2 JdbcTemplate开发步骤1.3 Spring产生JdbcTemplate对象1.4 JdbcTemplate的常用操作Spring JdbcTemplate基本使用1.1 JdbcTemplate概述它是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcT

2021-05-21 21:31:21 211

原创 SpringMVC的请求和响应

SpringMVC的请求和响应1.SpringMVC的数据响应1.1 SpringMVC的数据响应方式1.2 页面跳转1. 返回字符串形式2. 返回ModelAndView对象3. 向request域存储数据1.3 回写数据1. 直接返回字符串2. 返回对象或集合1.4 知识要点SpringMVC的数据响应方式2. SpringMVC 获得请求数据2.1 获得请求参数2.2 获得基本类型参数2.3 获得POJO类型参数2.4 获得数组类型参数2.5 获得集合类型参数2.6 请求数据乱码问题2.7 参数绑定注

2021-05-21 21:16:36 426 3

原创 Spring集成Web环境与MVC入门

Spring集成Web环境与MVC入门1. Spring与Web环境集成1.1 ApplicationContext应用上下文获取方式1.2 Spring提供获取应用上下文的工具2. SpringMVC的简介2.1 SpringMVC概述2.2 SpringMVC快速入门2.3 SpringMVC流程图示3. SpringMVC的组件解析3.1 SpringMVC的执行流程3.2 SpringMVC组件解析3.3 SpringMVC注解解析1.mvc命名空间引入2. 组件扫描3.4 SpringMVC的XM

2021-05-21 18:39:57 237 1

原创 Spring配置数据源及注解开发

Spring配置数据源及注解开发1. Spring配置数据源1.1 数据源(连接池)的作用1.2 数据源的手动创建①导入c3p0和druid的坐标 (pom.xml)①导入mysql数据库驱动坐标②创建C3P0连接池②创建Druid连接池③提取jdbc.properties配置文件④读取jdbc.properties配置文件创建连接池1.3 Spring配置数据源1.4 抽取jdbc配置文件1.5 知识要点2. Spring注解开发2.1 Spring原始注解2.2 Spring新注解3. Spring整合

2021-05-21 17:40:04 212

原创 SpringMVC使用MultipartFile上传文件但是输出为null

出错的位置在 spring-mvc.xml 中,将文件上传解析器的 id 写错了!!!具体代码如下:spring-mvc.xml<!--配置文件上传解析器--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--上传文件总大小--> <property name="maxUplo

2021-05-18 13:23:58 479

原创 SpringMVC中ModelAndView addObject()设置的值jsp获取不到

早上学习SpringMVC时遇到了这样一个问题:下面代码使用了 ModelAndView 对象的 addObject(String attributeName,Object attributeValue)方法,但是在跳转到的 jsp 页面中无法获取到设置的 username 值@Controller@RequestMapping("/user")public class UserController { @RequestMapping(value = "/quick2") publ

2021-05-15 10:29:31 2344 1

原创 使用MyBatis中出现了ConversionException的解决方法

早上在使用mybatis做修改操作时候出现了这个异常:ConversionException :DateConverter does not support default String to ‘Date’ conversion.因为我的bean类中使用了Date属性很明显这就是 beanutils 工具类无法将字符串转换为 Date(java.util.Date)这里采用自己实现的方式,下面是工具类的实现://把map中的值注入到对应的JavaBean属性中public static &

2021-05-04 15:52:00 1172

原创 MyBatis事务

mybatis默认开启事务在使用JDBC的时候,如果要开启事务,我们需要调用conn.setAutoCommit(false) 方法来关闭自动提交,之后才能进行事务操作,否则每一次对数据库的操作都会持久化到磁盘中。mybatis,如果底层使用JDBC(在mybatis.xml中配置的transactionManager标签的type设为jdbc的话),那么,mybatis会默认开启事务,也就是说,mybatis默认是关闭自动提交的。在mybatis中,如果我们执行了数据库的修改操作 (inse

2021-04-30 13:57:30 3576

原创 ArrayList面试题

ArrayList1. ArrayList频繁扩容导致添加性能急剧下降,如何处理?2. ArrayList插入或删除元素一定慢么?3. ArrayList是线程安全的么?4. 如何复制某个ArrayList到另一个ArrayList中去?5. 已知成员变量集合存储N多用户名称,在多线程的环境下,使用迭代器在读取集合数据的同时如何保证还可以正常的写入数据到集合?6. ArrayList 和 LinkList区别?1. ArrayList频繁扩容导致添加性能急剧下降,如何处理?构造具有指定初始容量的空列表。

2021-04-26 17:54:59 588 2

原创 ArrayList底层详解

ArrayList底层详解一、ArrayList集合底层数据结构二、ArrayList继承关系1、Serializable标记性接口2、Cloneable 标记性接口浅拷贝深拷贝3、RandomAccess标记接口4、AbstractList抽象类三、ArrayList源码一、ArrayList集合底层数据结构ArrayList集合介绍List 接口的可调整大小的数组实现。数组:一旦初始化长度就不可以发生改变数组结构介绍增删慢:每次删除元素,都需要更改数组长度、拷贝以及移动元素位置。查询快:

2021-04-26 12:15:07 5073

原创 LinkedList底层详解

LinkedList详解List引发的思考List接口LinkedList继承体系AbstractList抽象类AbstractSequentialListLinkedList的底层实现Node的理解双向链表并发修改异常List引发的思考思考:LinkedList中实现的方法为什么和ArrayList中相似呢?因为它们都是属于单列集合下的,所以它们实现的方法都是一致的,为了让它们的体系完整,进而设计出了List接口,让LinkedList和ArrayList实现List接口。List接口包含的

2021-04-24 20:07:54 4104

原创 剑指 Offer 39. 数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000本题常见的三种解法:哈希表统计法: 遍历数组 nums ,用 HashMap 统计各数字的数量,即可找出众数 。此方法时间和空间复杂度均为 O(N)。数组排序法: 将数组 nums 排序,数组中点的元素 一定为众数。此方法时间和空间

2021-04-11 18:05:55 130

原创 请求转发和请求重定向的路径

转发和重定向的url前有加 / 为绝对路径,反之为相对路径1.绝对路径重定向的 / 表示:http://服务器ip:端口/response.sendRedirect("/abc/index.jsp");地址为:http://localhost:8080/Manager/index.jsp请求转发的 / 表示:http://服务器ip:端口/项目名request.getRequestDispatcher("/index.jsp").forward(request, response);地址

2021-03-26 21:52:27 1317

原创 jsp 中的out 输出和response.getWriter 输出的区别

response 中表示响应,我们经常用于设置返回给客户端的内容(输出)out 也是给用户做输出使用的。由于jsp 翻译之后,底层源代码都是使用out 来进行输出,所以一般情况下。我们在jsp 页面中统一使用out 来进行输出。避免打乱页面输出内容的顺序。out.write() 输出字符串没有问题out.print() 输出任意数据都没有问题(都转换成为字符串后调用的write 输出)深入源码,浅出结论:在jsp 页面中,可以统一使用out.print()来进行输出每个print方法的实现

2021-02-27 10:04:53 210

原创 eclipse中配置tomcat,创建jsp页面

目录1.在eclipse中添加tomcate2.添加tomcat 的版本,这里选择7.03.创建动态网页项目4.在WebContent目录下创建 jsp 文件此时报错是因为没有添加tomcat服务器添加tomcat服务器在jsp文件中写入内容右击项目,运行在服务器上eclipse下配置项目部署的路径使用的tomcate版本是:apache-tomcat-7.0.791.在eclipse中添加tomcate2.添加tomcat 的版本,这里选择7.03.创建动态网页项目4.在WebCo

2021-02-21 15:04:05 2357 1

原创 Shell编程

目录Shell概述Shell解析器脚本的执行脚本的执行方式Shell中的变量自定义变量变量的生命周期:特殊的变量运算符条件判断流程控制Shell概述Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。Linux系统的核心是内核(Kernal)。内核控制着计算机系统上的所有硬件和软件,在必要时为应用程序分配硬件, 并根据需要执行程序中的代码。内核主要负责以下四种功能:系统内存管理软件程序管理硬件设备管理文件系统管理简单来说Shell是一种特殊的交互式工具,核心

2021-02-15 16:17:31 306 1

原创 MySQL的执行计划(Explain)中key_len计算方式

影响索引长度因素:列长度:列是否为空: NULL(+1),NOT NULL(+0)字符集: 如 utf8mb4 = 4 ,utf8 = 3, gbk = 2, latin1 = 1列类型为字符: varchar(+2), char(+0)计算公式:key_len=(表字符集长度) * 列长度 + 1(null) + 2(变长列)示例:charact_set=utf8, char(50), nullkey_len=(3*50+1+0)=151 charact_set=u

2021-02-08 17:45:03 384

原创 堆排序中 i 位置的节点的子节点位置为 2i+1, 2i+2, 父节点为 (i-1) / 2

在堆排序中使用到了左右子节点,它们的节点位置是 2i + 1 和 2i + 2,下面是如何得到这个结论:1.我们首先假设一个节点:它的数组下标是 i ,在二叉树的第 n 层的第 x + 1 个我们可以知道完全二叉树的前 n 层的总结点数是 2 * n - 1 个,在第n层的节点,前n-1层有 2^(n-1) - 1 个节点,加上他本层前面的x个节点,则: i = 2^(n-1) - 1 + x2.我们再来看子节点,i 的子节点在第 n + 1 层,对于左子节点,令他在数组中下标为j。左子节点在

2021-02-07 23:22:58 2419 2

原创 JDBC中的Statement与PreparedStatement

在 java.sql 包中有 3 个接口分别定义了对数据库的调用的不同方式:Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。PrepatedStatement: SQL 语句被预编译并存储在此对象中,可以使用此对象多次高效地执行该语句。CallableStatement:用于执行 SQL 存储过程使用Statement操作数据表的弊端通过调用 Connection 对象的 createStatement() 方法创建该对象。该对象用于执行静态的 SQL 语句,并且返

2021-02-03 21:29:06 335

原创 查看无法通过右键查看源码的网页源代码

简单一种方法浏览器直接输入:view-source:网址或者使用快捷键为:Ctrl+UF12 debug页面右键不能用的话,快捷键为:Ctrl+Shift+I

2021-01-17 13:14:22 4544

原创 1636. 按照频率将数组升序排序[JAVA]

题目描述:给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序。如果有多个值的频率相同,请你按照数值本身将它们 降序 排序。请你返回排序后的数组。示例 1:输入:nums = [1,1,2,2,2,3]输出:[3,1,1,2,2,2]解释:‘3’ 频率为 1,‘1’ 频率为 2,‘2’ 频率为 3 。示例 2:输入:nums = [2,3,1,3,2]输出:[1,3,3,2,2]解释:‘2’ 和 ‘3’ 频率都为 2 ,所以它们之间按照数值本身降序排序。示例

2021-01-16 14:01:09 275

原创 查找算法(3种)

查找算法二分查找算法(有序数组)插值查找算法(有序数组)斐波那契(黄金分割法)查找算法二分查找算法(有序数组)思路分析:1.首先需要确定该数组的中间下标mid = (left + right) / 22.让需要查找的数 findVal 和 arr[mid] 比较findVal > arr[mid] 说明要查找的数在 mid 的右边,因此需要向右递归查找findVal < arr[mid] 说明要查找的数在 mid 的左边,因此需要向左递归查找findVal = a

2021-01-12 20:01:24 230

原创 常见的排序算法实现

排序算法排序的分类冒泡排序排序的分类冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不必要的比较。// 将冒泡排序算法封装成一个方法 public sta

2021-01-10 21:05:45 591 2

原创 1122. 数组的相对排序 [JAVA]

给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]提示:1 <= arr1.length, ar

2021-01-08 22:35:47 273

原创 Docker基础详解

Docker基础Docker简介1. Docker是什么2. Docker的优点Docker安装Docker的基本组成镜像(image)容器(container)仓库(repository)总结Docker简介1. Docker是什么Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境

2021-01-06 20:27:45 175

原创 docker安装指定版本的mysql、redis

安装MySQL1.docker hub上面查找mysql镜像2.从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.63.使用mysql5.6镜像创建容器(也叫运行镜像)使用mysql镜像 docker run -p 12345:3306 --name mysql -v /jachinuse/mysql/conf:/etc/mysql/conf.d -v /jachinuse/mysql/logs:/logs -v /jachinuse/mysql/data:/var

2021-01-06 17:36:57 732

原创 DockerFile_自定义镜像mycentos

自定义镜像mycentosBase镜像(scratch)自定义镜像mycentos1.编写2.构建3.运行4.列出镜像的变更历史CMD/ENTRYPOINT 镜像案例自定义镜像Tomcat9Base镜像(scratch)Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的自定义镜像mycentos1.编写1.Hub默认CentOS镜像什么情况自定义mycentos目的是使我们自己的镜像具备如下:登录后的默认路径vim编辑器查看网络配置ifc

2021-01-06 15:40:32 287

原创 922. 按奇偶排序数组 II[JAVA]

给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。提示:2 <= A.length <= 20000A.length % 2 == 00 <= A[i] <= 1000思

2021-01-05 21:50:53 105

原创 350. 两个数组的交集 II[JAVA]

给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。方法一:哈希表由于同一个数字在两个数组中都可能出现多次,因此需要用哈希表存储每个数字出现的次数。对于一个数字,其在交集中出现的次数

2021-01-04 21:56:31 204

原创 349. 两个数组的交集[JAVA]

给定两个数组,编写一个函数来计算它们的交集示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。方式1:两个集合如果使用哈希集合存储元素,则可以在 O(1)O(1) 的时间内判断一个元素是否在集合中,从而降低时间复杂度。首先使用两个集合分别存储两个数组中的元素,然后遍

2021-01-03 22:54:35 395

log4j.properties

log4j.properties

2021-01-11

空空如也

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

TA关注的人

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