自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SQL预编译以及JDBC中PreparedStatement的理解

SQL预编译以及JDBC中PreparedStatement的理解SQL语句在数据库中的执行过程数据库服务器接收到sql语句之后,需要词法和语义解析,优化sql语句(进行索引选择),制定执行计划,执行并返回结果。关SQL预编译如果每次都需要经过上面的词法语义解析、语句优化、制定执行计划等,则效率就明显不行了。为了解决上面的问题,于是就有了预编译,预编译语句就是将这类语句中的值用占位符替代,可以视为将sql语句模板化或者说参数化。一次编译、多次运行,省去了解析优化等过程。预编译阶段可以优化

2022-01-03 22:13:24 622

原创 mybatis的执行流程

mybatis的执行流程public void selectUserById(){ try { // 1.获取InputStream流读取mybatis-conf.xml配置文件 InputStream is = Resources.getResourceAsStream("mybatis-conf.xml"); // 2.获取SqlSessionFactory 对象 SqlSessionFac

2021-12-30 21:50:17 2099

原创 自定义事务管理器TransactionManager对象

自定义事务管理器TransactionManager对象以aop思想,实现事务管理切面1. DataSource注册容器<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="htt

2021-12-26 12:00:28 1726

原创 spring中xml配置和类配置

spring中xml配置和类配置基于xml进行配置的方式初始化容器,ClasspathXmlApplicationContext,这种方式在ssm整合时候使用。基于类进行配置的方式来初始化容器:AnnocationConfigApplicationContext,这种方式在springboot框架使用。基于 xml 的 spring 文件配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springf

2021-12-25 17:55:32 719

原创 关于IDEA中的Debug调式工具

关于Debug简介和意义Debug能帮助我们追踪代码的运行流程。程序运行异常定位。线上问题追踪。同时通过调试能够更好的查看程序的执行流程。定位问题,提高自我解决问题的能力。关于IDEA中的Debug调式工具介绍和调试步骤设置断点(F9)调试程序(8个按钮)按钮说明(Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行(F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。(F7):步入。如果当前行有方法

2021-12-21 15:37:16 253

原创 Monitor 原理和 Synchronized 原理

Monitor 原理和 Synchronized 原理Monitor 原理Monitor 被翻译为监视器或管程。每个 Java 对象都可以关联一个 Monitor 对象,如果使用 synchronized 给对象上锁(重量级)之后,该对象头的 Mark Word 中就被设置指向 Monitor 对象的指针。(如果关于对象头不清晰的可以看看我上一篇关于对象头的博客)。Java 使用对象锁 ( 使用 synchronized 获得对象锁 ) 保证工作在共享的数据集上的线程互斥执行。Monitor 结构如

2021-12-19 22:09:14 714

原创 Java对象组成和对象头

Java对象组成和对象头java对象组成Java对象保存在内存中时,由以下三部分组成:1. 对象头 2. 实例数据 3. 对齐填充字节。由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能,这些标记字段组成了对象头。java的对象头由以下三部分组成:Mark Word指向类的指针数组长度(只有数组对象才有)java对象头JVM中对象头的方式有以下两种(以32位JVM为例):1. 普通对象

2021-12-17 16:22:45 224

原创 关于AQS介绍

关于AQS介绍AbstractQueuedSynchronizer内部数据结构在AbstractQueuedSynchronizer内部,有一个队列,我们把它叫做同步等待队列。它的作用是保存等待在这个锁上的线程(由于lock()操作引起的等待)。此外,为了维护等待在条件变量上的等待线程,AbstractQueuedSynchronizer又需要再维护一个条件变量等待队列,也就是那些由Condition.await()引起阻塞的线程。由于一个重入锁可以生成多个条件变量对象,因此,一个重入锁就可能有多个条

2021-12-16 21:58:18 124

原创 park和unpark方法详解

park和unpark方法详解基于许可的多线程控制介绍为了控制多个线程访问共享资源 ,我们需要为每个访问共享区间的线程派发一个许可。拿到一个许可的线程才能进入共享区间活动。当线程完成工作后,离开共享区间时,必须要归还许可,以确保后续的线程可以正常取得许可。如果许可用完了,那么线程进入共享区间时,就必须等待,这就是控制多线程并行的基本思想。park和unpark方法park和unpark方法是工具类LockSuppor介绍t中的API,它的作用很简单,就是挂起和继续执行线程。public stati

2021-12-16 19:02:49 2794 1

原创 对CAS相关总结

对CAS相关总结什么是CAS?CAS(Compare-and-Swap),从字面上理解就是比较并更新,简单来说:从某一内存上取值V,和预期值A进行比较,如果内存值V和预期值A的结果相等,那么我们就把新值B更新到内存,如果不相等,那么就重复上述操作直到成功为止。CAS解决的问题?在Java中对的应用CAS可以解决多线程并发安全的问题。java从jdk1.5就将cas引入并且使用了,java中的Atomic系列就是使用cas实现的,下面我们就用AtomicInteger类看一下java是怎么实

2021-12-08 09:13:08 211

原创 关于ThreadLocal总结

关于ThreadLocal总结ThreadLocal类的介绍ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。对ThreadLocal作用的总结:线程并发: 在多线程并发的场景下传递数据: 我们可以通过ThreadLocal在同一线程,不同组件中传递公共变量线程隔离: 每个线程的变量都是独立的,不会互相影响ThreadLocal的内部结构每个Thread维护一个Thread

2021-12-05 12:13:11 506

原创 使用CORS解决跨域问题

使用CORS解决跨域问题最近在学习Vue时候,为了编写代码方便,所以在HBuilderX编写前端代码,但如果要访问后端数据,就会遇到跨域的问题,所以记录下关于使用CORS解决跨域问题,方便后面使用(粘贴方便​????)什么是跨域跨域是指跨域名的访问,以下情况都属于跨域:跨域原因说明示例域名不同www.jd.com 与 www.taobao.com域名相同,端口不同www.jd.com:8080 与 www.jd.com:8081二级域名不同item.jd.c

2021-12-03 19:48:19 834

原创 JavaWeb 过滤器(Filter)总结

JavaWeb 过滤器(Filter)什么是过滤器FilterServlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。简单说,过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理。通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理。过滤器F

2021-12-02 16:45:57 1198

原创 Spring入门笔记

Spring入门笔记一、Spring概述1. Spring框架是什么?Spring 是可以在 Java SE/EE 中使用的轻量级开源框架。以 IoC(Inverse Of Control:控制反转)和 AOP(Aspect Oriented Programming:面向切面编程)为核心,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。2.

2021-11-27 22:04:57 162

原创 Cookie和Session对比

1. Cookie什么是cookie(储存在用户本地终端上的数据)Cookie实际上是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。什么是会话会话是指一个终端用户与交互系统进行通讯的过程。举个栗子:浏览器访问服务器,就跟打电

2021-11-17 15:55:12 181

原创 关于Servlet总结

1. Servlet1.1 什么是servletServlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和生成数据,生成动态Web内容。**(百度百科的解释)1.2 Servlet工作流程1.3 Servlet 接口中定义的方法public interface Servlet { void init(ServletConfig var1) throws ServletException

2021-11-12 16:58:34 652

原创 移除重复节点

移除重复节点编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] 示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2]题解对给定的链表进行一次遍历,并用一个哈希集合(HashSet)来存储所有出现过的节点。从链表的头节点 head 开始进行遍历,遍历的指针记为 pos。由于头节点一定不会被删除,因此直接放入set集合里面。定义指针表示当前节点的下一个节点,判断是否存在集合中

2021-10-24 15:39:12 112

原创 关于mysql数据库的规范与表的设计

关于mysql数据库的规范1. 建表约束表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint (1 表示是,0 表示否)。举例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。举例:aliyun_admin,rdc_config,level3_name

2021-10-21 20:31:19 209

原创 程序员面试金典:回文排列

回文排列给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。 回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。回文串不一定是字典当中的单词。示例1:输入:"tactcoa"输出:true(排列有"tacocat"、"atcocta",等等)题解一个回文串的排列不可能包含超过一个“出现奇数次的字符”,用哈希表记录字符的个数。再判断即可。代码展示// 使用散列表记录字符的个数public boolean canPermutePalindrome(Str

2021-10-13 19:53:05 71

原创 MySQL总结

数据库什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?数据库: 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。数据库管理系统: DataBaseManagement,简称DBMS。 数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以对数据库当中的数据进行增删改查。常见的数据库管理系统: MySQL、Oracle、MS SqlServe

2021-10-13 19:49:30 15098 11

原创 程序员面试金典:URL化

URL化URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)示例 1:输入:"Mr John Smith ", 13输出:"Mr%20John%20Smith"示例 2:输入:" ", 5输出:"%20%20%20%20%20"题解方法一:使用StringBuilder解决,逐渐遍历字符串中的字符,如果

2021-10-11 21:54:38 78

原创 程序员面试金典:判定是否互为字符重排

判定是否互为字符重排给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例 1:输入: s1 = "abc", s2 = "bca"输出: true 示例 2:输入: s1 = "abc", s2 = "bad"输出: false题解本题要求判断给定的两个字符串是否是重排的关系。首先,我们要正确理解重排的含义。确定其中一个字符串的字符重新排列后,能否变成另一个字符串,根据这个定义检查字符串。互为重排的两个字符串有两个

2021-10-09 22:51:52 387

原创 程序员面试金典:判定字符是否唯一

判定字符是否唯一实现一个算法,确定一个字符串 s 的所有字符是否全都不同。示例 1: 输入: s = "leetcode"输出: false 示例 2: 输入: s = "abc"输出: true题解思考字符串的的字符范围?字符串是 ASCII 字符串(128个可能性)还是 Unicode 字符串如果是unicode,没有字符范围,老老实实排序再判断是比较符合要求的,因为算法性能稳定,没有额外资源要求。代码展示// 方法一:使用boolean数组的做

2021-10-09 22:50:54 149

原创 Redis学习总结

Redis总结这是我学习Redis网址,大家可以借鉴一下,仅供参考:https://www.bilibili.com/video/BV1S54y1R7SB?p=1Nosql简介NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。在现代的计算系统上每天网络上都会产生庞大的数据量。NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出

2021-03-31 21:02:19 337

原创 Typora使用教程

Typora使用教程1 基本操作1.1 标题语法# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题1.2 引用语法> 引用内容1>> 引用内容2效果引用内容1引用内容21.3文本居中语法<center>居中文本</center>效果居中文本

2021-03-17 21:57:12 84

原创 IOException parsing XML document from class path和Dispatcher ServletnoHandlerFound No mapping

IOException parsing XML document from class path resource [applicationContext.xml]检查target目录(*target*是用来存放项目构建后的文件和目录、jar包、war包、编译的class文件,所有都是Maven构建时生的)如果缺少.xml文件可以参考下面总结的关于Idea Maven项目编译后target下classes中没有.xml问题。如果不特意指定参数名为contextConfigLoction的元素

2021-03-13 15:23:49 212

原创 关于Xshell连接Ubuntu虚拟机

关于Xshell连接Ubuntu虚拟机1. 配置虚拟机网络背景:学习研究Hadoop平台的搭建,在本机上安装了VMware ,并创建了Linux虚拟机(Ubuntu系统),为了方便本机和虚拟机间的切换,准备使用Xshell直接连接Linux虚拟机。参考(https://www.cnblogs.com/shireenlee4testing/p/9469650.html)1.检查Linux虚拟机的网络连接模式,确保它是NAT模式。2.在VMware workstation里,点击菜单栏上的【编辑】

2021-03-13 13:26:24 112

空空如也

空空如也

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

TA关注的人

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