自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

想教猫咪学Java

一个正在努力学习java的猫奴

  • 博客(69)
  • 收藏
  • 关注

原创 MVCC底层机制

MVCC底层机制​ MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问(乐观锁)。​ MVCC具体的操作方式是:innodb引擎会在每一行加上隐藏的两列:事务ID和回滚指针。注:一个session对应的事务ID需要通过update、delete语句的执行来生成的对于account表,假设原有字段数据如下:当执行事务id为300的事务时,执行更新语句,此时会向表中插入一条 id=1,name='lilei300’的数据,而之前的这条name=lilei的数据

2020-11-01 22:27:44 260

原创 Spring自研框架复习

1.@WebServlet("/")不会拦截指向jsp的转发,而@WebServlet("/*")会拦截指向jsp的转发。拦截之后不断重复执行@WebServlet("/")里面的内容,不断拦截里面的jsp,导致异常反射依赖于Class和java.lang.reflect包Field:表示类中的成员变量Method:类中的方法Constructor:表示类的构造方法Array:提供动态创建数组和访问数组元素的静态方法Class用来表示运行时类型信息的对应类每个类都有一个唯一与之对应的C

2020-09-09 22:15:58 302

原创 Spring学习笔记(一):概述及第一个Spring程序

Spring概述及第一个Spring程序一、简介Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架Spring官网:https://spring.io/Spring下载:https://spring.io/projects/spring-framework#learnSpringGithub地址:https://github.com/spring

2020-08-13 10:14:34 232

原创 Mybatis学习笔记(五):多对一和一对多

Mybatis多对一和一对多一、多对一概述即多个对象对应一个对象,例如多个学生对应一个老师association — 联系 ,关联 多个人可以关联一个人。collection — 集合 一个人有一个集合,包含多个人。发现是多对一业务情况,我们需要使用association 标签进行关联例如,现在有两张表,student表和teacher表,两张表之间用tid和id进行关联。现需要查询学生id,name,还有老师的name,因此需要连表查询po

2020-08-13 10:13:42 102

原创 Mybatis学习笔记(四):实现查询分页、使用注解开发

Mybatis实现查询分页、使用注解开发一、MySQL分页查询语句select * from user limit #{startIndex},#{pageSize};# startIndex : 起始位置 ,默认是0开始# pageSize :页面大小例如:select * from user limit 0,3二、Mybatis中使用limit实现分页接口://查询全部用户实现分页List<User> selectUserByLimit(Map<String

2020-08-13 10:13:14 360

原创 Mybatis学习笔记(三):解决实体类属性和数据库字段名不一致

一、Mybatis解决实体类属性和数据库字段名不一致案例:在user表中查询所有字段pojo实体类:package org.westos.pojo;public class User { private int id; private String name; private String password; public User() { } public User(int id, String name, String password) {

2020-08-13 10:12:41 816

原创 Mybatis学习笔记(二):实现对数据库的增删改查

Mybatis实现对数据库的增删改查一、编写接口package org.westos.dao;import org.westos.pojo.User;import javax.jws.soap.SOAPBinding;import java.util.List;public interface UserMapper { //添加一个用户 int addUser(User user); //根据id查找用户 User selectUser(int id);

2020-08-13 10:11:54 195

原创 Mybatis学习笔记(一):初识mybatis

Mybatis学习笔记(一):初识mybatis2.使用步骤​ 根据官方文档的入门指导来进行学习是最有效的。官方文档的步骤用斜体表示,具体代码用正体表示。2.1 安装​ 使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中项目代码:​ 创建空MAVEN项目作为父公程,删除src文件夹,导入依赖:<dependencies> <dependency> <groupId>mysql</gro

2020-08-13 10:10:33 170

原创 Web学习笔记(四):超市管理系统的搭建

Web学习笔记():超市管理系统的搭建1. 项目前瞻​ 整合整个JavaWeb所学习的知识做一个超市管理系统小项目。该管理系统分为四个功能:登录注销用户管理订单管理供应商管理每个部分都需要连接数据库,实现增删改查功能。2.项目实现2.1 准备工作​ 首先创建一套模板式的项目结构:创建Maven中的web-app项目模板修改Web-inf中的xml文件,导入项目依赖配置Tomcat,IDEA连接数据库在main目录下建Java、resources

2020-08-13 10:09:43 432

原创 Web学习(三):JSP

一、JSP指令JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。JSP指令有三个:指令描述<%@ page … %>定义网页依赖属性,比如脚本语言、error页面、缓存需求等等<%@ include … %>包含其他文件<%@ taglib … %>引入标签库的定义pageautoFlush:自动刷新 (true,false:默认)contentType:页面文本类型 “text/html”e

2020-08-13 10:08:26 85

原创 JavaWeb学习(二):Servlet

一、Servlet简介Servlet是Sun公司提供的也可用于开发动态web资源的技术Sun公司在其API中提供了一个Servlet接口,用户若想发一个动态web资源,需两个步骤:编写一个Java类,实现Servlet接口八开发好的Java类部署到web服务器中按照一种约定俗称的称呼习惯,通常我们也把实现了Servlet接口的Java程序称之为Servlet二、Servlet运行过程Web浏览器发出HTTP请求给Web容器Web容器首次访问创建目标ServletWeb容器创建请

2020-08-13 10:07:24 206

原创 JavaWeb学习(一):概述、Tomcat服务器、HTTP

一、概述静态Webhtml,htm ,服务器会直接读取HTML的数据;缺点:网页内容无法更新,通过协议写单的手段可以让它动起来,如JavaScript,VBScript等动态Web主要特征:可以从服务端获取数据,Web界面因人而变优点:可以实现真正用户交互可以从服务端保证每个用户有自己的空间增强了用户体验性实现动态Web手段PHPASP:微软JSP、Servlet:SUN 解决B/S架构,性能高,跨平台,不需要任何门槛(HTML嵌套Java代码)有哪些We

2020-08-13 10:06:43 109

原创 MySQL(二):JDBC

JDBC一、JDBC简介SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范(接口), 称之为JDBC。这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc 加载具体的驱动,就可以操作数据库。JDBC全称:Java Data Base Connectivity (Java数据库连接)组成JDBC的两个包:java.sqljavax.sql开发JDBC应用需要以上2个包的支持外,还需要 导入相应JDBC的数据库实现(即数据库驱动)

2020-08-08 09:22:04 133

原创 MySQL(一)基本操作

一、MySQL概述是现在流行的,开源的,免费的关系型数据库,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品特点免费 , 开源数据库小巧 , 功能齐全使用便捷可运行于Windows或Linux操作系统可适用于中小型甚至大型网站应用市面常见的数据库:关系型数据库 (SQL)MySQL , Oracle , SQL Server , SQLite , DB2 , …关系型数据库通过外键关联来建立表与表之间的关系非关系型数据库(NOSQL)Red

2020-08-08 09:21:09 187

原创 Web学习笔记(八):JavaScript操作DOM对象

JavaScript操作DOM对象一、DOM概述Document Object Model,即文档对象模型DOMDOM CoreCSS-DOMHTML-DOM节点与节点的关系二、访问节点使用getElement系列方法访问指定节点getElementById() 通过id访问节点getElementsByName() 通过类名访问节点getElementsByTagName() 通过标签访问节点根据层次关系访问节点节点属性parent

2020-07-25 14:14:14 115

原创 Web学习笔记(七):JavaScript操作BOM对象

JavaScript操作BOM对象一、BOM模型BOM,即浏览器对象模型(Browser Object Model),BOM提供了独立于内容的可以与浏览器窗口进行互动的对象结构可实现功能弹出新的浏览器窗口移动,关闭浏览器窗口以及调整窗口大小页面前进后退…二、Window对象的常用方法confirm()方法将弹出一个确认对话框confirm()与alert ()、 prompt()区别alert( ):一个参数,仅显示警告对话框的消息,无返回值,不能对脚本 产生

2020-07-25 14:13:27 87

原创 Web学习笔记(六):JavaScript基础知识

JavaScript基础知识一、JavaScript作用表单验证 - 减轻服务器端压力实现页面的动态交互实现页面动态效果二、JavaScript概述JavaScript是一种基于对象和事件驱动的 , 并具有安全性能的脚本语言特点向HTML页面中添加交互行为脚本语言 , 语法和Java类似解析型语言 , 边执行边解释基本结构<script type="text/javascript"><!- JavaScript语句-></sc

2020-07-25 14:11:56 79

原创 Web学习笔记(五):jQuery 事件

jQuery 事件一、jQuery概述jQuery 是一个 JavaScript 库,极大地简化了JavaScript使用格式使用时先导入jQuery包公式:jQuery(选择器).事件二、事件页面对不同访问者的响应叫做事件,事件处理程序指的是当 HTML 中发生某些事件时所调用的方法三、click事件当单击元素时,发生 click 事件。click() 方法触发 click 事件,或规定当发生 click 事件时运行的函数<!DOCTYPE html&

2020-07-25 14:10:04 62

原创 Web学习笔记(四):盒子模型

CSS盒子模型一、什么是盒子模型所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。下面的图片说明了盒子模型(Box Model):Margin(外边距) - 清除边框外的区域,外边距是透明的Border(边框) - 围绕在内边距和内容外的边框。Padding(内边距) - 清除内容周围

2020-07-24 20:06:36 518

原创 Web学习笔记(三):页面美化

一、span 和 divspan标签行内元素,能让某几个文字或者某个词语凸显出来,内容显示在同一行div标签块级标签,默认占一行,自动换行<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <div>Hello&lt

2020-07-24 20:05:39 944

原创 Web学习笔记(二):CSS

一、什么是CSSCSS概念Cascading Style Sheet 层叠样式表表现HTML文件样式的语言,包括对字体、颜色、边距、高度、宽度、背景图片、网页定位等设定CSS的优势内容与表现分离网页的表现统一 , 容易修改丰富的样式 , 使得页面布局更加灵活减少网页的代码量 , 增加网页的浏览速度 , 节省网络带宽运用独立于页面的CSS , 有利于网页被搜索引擎收录CSS基础语法选择器{声明1;声明2;}案例:h1{ color: red;}注意:CSS语句

2020-07-24 20:04:54 70

原创 Web学习笔记(一):HTML

常用标签字体标签 fontcolor: 颜色size: 大小 1~7face: 改变字体p 段落标签h标题标签 : 1~6(H1最大)br 换行hr 水平线b 加粗i 斜体strong : 加粗 包含语义em : 斜体 包含语义img标签src : 指定图片的路径width: 宽度height: 高度alt : 图片加载错误时的提示信息相对路径:./ 代表的是当前路径…/ 代表的上一级路径…/…/ 代表的上上一级路径

2020-07-24 20:03:34 95

原创 JVM学习笔记(一):初探JVM

JVM学习笔记1. JVM的体系结构​ JVM是建立在操作系统之上的一个虚拟机。通过在实际计算机模仿各种计算机功能来实现的,组成部分包括堆、方法区、栈、本地方法栈、程序计算器等部分组成的,其中方法回收堆和方法区是共享区,也就是谁都可以使用,而栈和程序计算器、本地方法栈区是归JVM的。​ JVM的体系结构如图所示:​​ 其中需要注意的是,垃圾回收作用的对象是堆内存和本地方法区,而栈内存中绝对不会有垃圾。因为栈中的方法执行完会弹栈消失,且main方法会在栈底。如果栈中存在垃圾的话那么主方法将永远都不

2020-07-11 22:31:33 145

原创 Java学习笔记(二十五):反射与注解

Java学习笔记(二十五):反射和注解1.反射概述​ JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取类的信息以及动态调用对象的方法的功能称为java语言的反射机制。​ 要想解剖一个类,必须先要获取到该类的字节码文件对象。​ 而解剖使用的就是Class类中的方法,所以先要获取到每一个字节码文件对应的Class类型的对象。​ 获取class文件对象的三种方式:Object类的getClass()方法

2020-07-11 22:25:46 99

原创 Java SE综合练习题错误总结

Java SE练习题错误总结一、String类的引用指出下列程序运行的结果 (B)public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String args[]) { Example ex = new Example(); ex.change(ex.str, ex.ch);

2020-06-10 14:42:08 687

转载 Java中的各种锁详细介绍

Java中的各种锁详细介绍 转自:https://www.cnblogs.com/jyroy/p/11365935.htmlJava提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的...

2020-06-08 17:38:41 109

原创 Java学习笔记(二十四):多线程及其安全(二)

Java学习笔记(二十四):多线程及其安全(二)线程通信​ Java中的线程通信可以通过一个生产者——商品——消费者模型来体现。​ 假设有一种商品,它由生产者生产,由消费者消耗。当商品有剩余时,生产者进入等待状态。而消费者则对商品进行消耗;​ 当商品被消耗完的时候,消费者进入等待状态,并且提醒正在等待的生产者进行生产。此时生产者被唤醒,进行商品的生产,生产完成后再次进入等待状态,并且提醒消费者商品被已经生产出来了,以此往复。​ 而在Java中,生产者和消费者就好比两个线程,他们通过商品进行通信。在

2020-06-07 21:11:25 166

原创 Java学习笔记(二十三):多线程及其安全

Java学习笔记(二十三):多线程进程​ 要了解线程,首先得明白进程。进程就是正在运行的程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。​ 单进程计算机只能做一件事情。而我们现在的计算机都可以一边玩游戏(游戏进程),一边听音乐(音乐进程),所以我们常见的操作系统都是多进程操作系统。​ 对于单核计算机来讲,游戏进程和音乐进程并不是同时运行的。因为CPU在某个时间点上只能做一件事情,计算机是在游戏进程和音乐进程间做着频繁切换,且切换速度很快,所以我们感觉游戏和音乐在同

2020-06-06 20:34:46 183

原创 Java网络编程及Connection refused异常处理

Java网络编程及Connection refused异常IP地址​ 实现网络通信,首先必须确定通信双方的对象。因此知道两个元素:IP地址和端口号。通过IP地址和端口号就可以定位到一台确定的主机上。​ IP的作用是唯一定位一台网络上的计算机。IP地址的分类方式有两种:通过IP地址分类(IPV4/IPV6):IPV4:由4个字节组成,如127.0.0.1 ,每个字节的长度为0-255;IPV6:IPv6的128位地址是按照每16位划分为一段,因此总共有8段,每段被转换为一个4位十六进制数,并

2020-06-05 22:08:46 1836

原创 Java学习笔记(二十二):常用IO流及Properties

Java学习笔记(二十二):常用IO流及Properties数据输入输出流​ 该流属于字节流。有一个规律,一般以Stream结尾的流都是字节流。​ 该流的特点在于,与之前的字节流写入读取都是通过字节不同,该流可以直接写入和读取基本数据类型。数据输入流: DataInputStream(InputStream in)数据输出流: DataOutputStream(OutputStream out)public class Mytest { public static void main

2020-06-02 21:10:48 174

原创 Java学习笔记(二十一):IO流之字符流

Java学习笔记(二十一):IO流之字符流​ 由于字节流操作中文不是特别方便,所以java就提供了字符流。字符流 = 字节流 + 编码表。一、编解码​ 编码就是把字符串转换成字节数组,方法如下:public byte[] getBytes();使用平台的默认字符集将此 String编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 public byte[] getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte 序列,并将

2020-06-02 11:00:01 176

原创 Java学习笔记(二十):IO流之字节流

Java学习笔记(二十):IO流​ IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式。Java中用于操作流的对象都在IO包中。​ IO流按照流向,分为输入流和输出流。按照数据类型分为:字节流:可以读写任何类型的文件。比如音频、视频 、文本文件;字符流:只能读写文本文件。如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。输出流超类OutputStream子类FileOutputStream一、构造方法FileOu

2020-05-24 22:52:30 121

原创 Java学习笔记(十九):IO流学习预备---异常和File类

Java学习笔记(十九):IO流学习预备–异常和File类异常一、概述​ 异常就是Java程序在运行过程中出现的错误。二、异常的继承体系异常的基类: Throwable严重问题: Error 不予处理,因为这种问题一般是很严重的问题,比如: 内存溢出非严重问题: Exception编译时异常: 非RuntimeException运行时异常: RuntimeException三、运行时异常RuntimeException​ main函数收到异常时,有两种处理方式:自己将

2020-05-24 22:51:58 155

原创 Java学习笔记(十九):HashMap和Hashtable

Java学习笔记(十九):HashMap和HashtableMap集合​ 用来操作“键 ---- 值”对应的数据,可以使用Map<K,V>接口。Map集合有以下几个常用实现类:HashMap,HashTable,LinkedHashMap,TreeMap等,将在下面一一介绍。​ Map集合有以下特点:一个映射不能包含重复的键;一个 “键(K)” 只能映射到一个 “值(V)”,即每个键最多只能映射到一个值。​ Map接口和Collection接口的不同点:Map是双列的,Col

2020-05-19 23:36:57 118

原创 Java学习笔记(十八):Set集合

Java学习笔记(十八):Set集合Set集合​ Set集合与List不同的是,Set集合中的元素不能重复。HashSet集合一、特点:底层数据结构为哈希表(HashMap的实例),初始容量为16,加载因子0.75,元素无序(即数据的存储顺序不一致);不允许重复元素;线程不安全,效率高。二、HashSet保证元素唯一性的原理​ 当向 HashSet 集合中存入一个元素时,HashSet 会调用该对象的 hashCode() 方法来得到该对象的 hashCode 值,然后根据 hashC

2020-05-19 23:36:26 120

原创 数据结构学习笔记(七):图的深度优先和广度优先算法

数据结构学习笔记(六):图的深度优先和广度优先算法一、概述​ 图是一种数据结构,其中结点可以具有0个或者多个相邻的元素,两个结点之间的连接称为边。结点也可以称为顶点。二、图的表示方法邻接矩阵邻接矩阵中,1表示两个结点相连通,0表示两个结点不连通。如图中0和1,2,3连通,故矩阵中(0,1)(0,2)(0,3)为1,其余不相通的位置为0。邻接表三、创建图的邻接矩阵​ 实现代码:public class Graph { private int numsOfEdges;

2020-05-15 13:50:50 531

原创 数据结构学习笔记(六):哈希表

数据结构学习笔记(六):哈希表​ 哈希表是根据关键码值而直接进行访问的数据结构。也就是说它通过关键码值映射到表中的一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。​ 哈希表的具体框架如下图所示:​ 哈希表的组成通常为数组+链表或者数组+二叉树,本文以链表为例。接下来将结合一个具体的题目来实现哈希表的代码。题目如下:有一个公司,当有新员工来报道时,要求将该员工的信息加入(编号,姓名),当输入该员工的编号时,要求查找到该员工的所有信息。要求不使用数据库,速

2020-05-12 23:00:28 131

原创 Java学习笔记(十七):三大常用集合与泛型、增强for循环、可变参数

Java学习笔记(十七):三大常用集合与泛型、增强for循环、可变参数ArrayList特有功能://ArrayList存储字符串并遍历void forEach(Consumer<? super E> action);void forEach(new Consumer()){ public}执行特定动作的每一个元素的 Iterable直到所有元素都被处理或操作抛出异常。Vector一、概述​ Vector 类可以实现可增长的对象数组 , Vector 是同步的。

2020-05-11 22:05:33 157

原创 算法学习笔记(三):归并排序、基数排序、堆排序

算法学习笔记(三):归并排序、基数排序、堆排序归并排序​ 归并排序是利用归并思想,先将数组拆分成一个又一个小元素,再对其进行“治”,即将其排序,最后合成一个有序的序列。如图所示:​ ​ “治”阶段以最后一次“治”阶段为例分析,我们需要将两个已经有序的子序列合并成一个有序序列,步骤如下:​ 可以看到,大致步骤分为三步:1. 对比左右两部分的各位数字,将较小的数字放入临时数组;2. 在一方全部放完之后,将另一方剩余的元素(已排序)按序放入临时数组;3. 将临时数组中的元素拷贝进原数组。​

2020-05-11 10:25:44 232

原创 Java学习笔记(十六):Collection集合及子类接口List

Java学习笔记(十六):Collection集合及子类接口ListCollection集合一、概念​ 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。二、数组和集合的区别长度区别:数组的长度是固定的而集合的长度是可变的;存储数据类型的区别:数组可以存储基本数据类型 , 也可以存储引用数据类型; 而集合只能存储引用数据类型,但是根据自动拆装箱规则,此条件并不能算作是集合的弊端。内容区别:数组只能存储同种数据类型的元素 ,集合可以存储不同引

2020-05-11 10:22:07 189

空空如也

空空如也

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

TA关注的人

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