自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JavaScript笔记4

一、this1.1 默认值普通函数普通函数的调用方式决定了 this 的值,即【谁调用 this 的值指向谁】<script> // 普通函数 function sayHi() { console.log(this); } // 函数表达式 let sayHello = function () { console.log(this); } // 函数的调用方式决定了 this 的值 sayHi(); // window window

2022-05-31 01:00:00 86

原创 JavaScript笔记3

一、面向对象3 个特征:封装、继承、多态1.1 封装命名空间<script> // 普通对象(命名空间)形式的封装 let beats = { name: '狼', setName: function (name) { this.name = this.name; }, getName() { console.log(this.name); } } beats.setName('熊'); beats.g

2022-05-30 20:39:07 84

原创 JavaScript笔记2

一、面向对象1.1 构造函数构造函数是专门用于创建对象的函数,如果一个函数使用 new 关键字调用,那么这个函数就是构造函数。<script> // 定义函数 function foo() { console.log('通过 new 也能调用函数...'); } // 调用函数 new foo;</script>总结:使用 new 关键字调用函数的行为被称为实例化实例化构造函数时没有参数时可以省略 ()构造函数的返回值即为新创建的对象

2022-05-30 11:32:59 128

原创 JavaScript笔记

一、作用域作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问,作用域分为全局作用域和局部作用域。1.1 局部作用域局部作用域分为函数作用域和块作用域。函数作用域在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。<script> // 声明 counter 函数 function counter(x, y) { // 函数内部声明的变量 let s = x + y; console.log(s); // 18

2022-05-30 11:09:16 104

原创 HTML基础知识(2)

一、列表标签无序列表<ul> <li>1</li> <li>2</li> <li>3</li></ul>//ul标签中只允许包含li标签,li标签中可嵌套任意内容有序列表<ol> <li>1</li> <li>2</li> <li>3</li></ol>//ol标签中只允许包含

2022-04-07 17:15:11 339

原创 HTML基础知识(1)

一、HTML骨架html标签:网页的整体head标签:网页的头部body标签:网页的身体title标签:网页的标题二、HTML标签的结构<head>包裹的内容</head>双标签:<开始标签>包裹的内容<结束标签>单标签:无包裹内容三、HTML标签的关系嵌套关系<head> <title></title><head>并列关系<head></hea

2022-04-06 18:51:22 441

原创 -------------------------------分割线-------------------------------------准备重新开始写博客啦~

考上研究生啦,开学之前学学习

2022-04-01 13:39:23 55

原创 Redis

RedisRedis基本概念和安装1 Nosql概述什么是NOSQL为什么需要NOSQL主流的NOSQL产品NOSQL的特点什么是NOSQL​ NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。为什么需要NOSQL​ 随着互联网的高速崛起,网站的用户群的增加,访问量的上升,传统(关系型)数据库上都开始出现了性能瓶颈,web程序不再仅仅专注在功能上,同时也在追求性能。所以NOSQL数据库应运而上,具体表现为对如

2020-07-06 18:41:04 131

原创 Linux

Linux操作系统Linux操作系统概述Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了成千上百种不同的Linux系统。Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器等。尤其在这里提及一下,我们熟知是Android程序最底层就是运行在linux系统上的。

2020-06-30 14:17:38 176

原创 Java8——LinkedList源码详解

LinkedListLinkedList是通过一个双向链表来实现的,它允许插入所有元素,包括null,它是线程不同步的双向链表的结构如下图双向链表每个节点除了数据域以外,还有一个前指针和后指针,分别指向前驱节点和后继节点,另外,双向链表还有一个first指针,指向头结点,last指针指向尾结点。属性//链表的节点个数transient int size = 0;//指向头节点的指针transient Node<E> first;//指向尾节点的指针transient No

2020-06-27 15:23:47 181

原创 Java8——Vector源码详解

VectorVector很多方法都和ArrayList一样,只是多加了synchronized保证了线程的安全。Vector比ArrayList多了一个属性protected int capacityIncrement;这个属性是在扩容的时候用到的,表示每次扩容只扩容capacityIncrement个空间,该属性可以通过构造方法赋值。构造方法public Vector(int initialCapacity, int capacityIncrement) { super(); if

2020-06-27 14:48:51 201

原创 Java8——ArrayList源码详解

ArrayList从这段注释中,我们可以得知 ArrayList 是一个动态数组,实现了 List 接口以及 list相关的所有方法,它允许所有元素的插入,包括 null。另外,ArrayList 和 Vector 除了线程不同步之外,大致相等。ArrayList属性private static final long serialVersionUID = 8683452581122892189L; //默认初始容量 private static final int DEFAULT_CAPA

2020-06-27 14:34:10 443

原创 Iterator迭代器接口

Iterator迭代器Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。GOF给迭代器模式的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式,就是为容器而生。Collection接口继承了java.lang.Iterable接口,该接口有一个iterator()方法,那么所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象

2020-06-26 16:30:42 231

原创 Java——集合框架(浅析)

容器是一个Java所编写的程序,从前必须自行编写程序以管理对象关系,现在容器都会自动帮你做好。常用的容器:WebSphere,WebLogic,Resin,Tomcat容器类容器类 其实就是一种用来存储数据的数据结构,在 JAVA 中容器可分为即 “集合”(Set)、“列表”(List)、“映射”(Map)。至于,为什么需要容器,总的来说,主要是在以数组作为数据的存储结构中,其长度难以扩充,同时数组中元素类型必须相同。而容器可以弥补数组的这两个缺陷。Java 容器类包含 List、ArrayLi

2020-06-26 16:04:27 165

原创 MyBatis快速入门(四)

MyBatis框架掌握Mybatis的延迟加载掌握Mybatis缓存掌握Mybatis注解开发项目准备用户主键查询用户信息<!-- 主键查询用户信息--><select id="queryUserById" resultType="user" parameterType="int"> select * from user where id = #{id}</select>/** * 主键查询用户信息 */@Testpubli

2020-06-21 18:19:50 128

原创 MaBatis快速入门(三)

MyBatis框架理解Mybatis连接池与事务操作掌握Mybatis动态SQL掌握Mybatis多表关联查询掌握Mybatis多对多关系Mybatis连接池MyBatis配置文件中,配置为使用连接池,那么连接池是在什么时候建立的,什么时候从连接池中获取连接的。连接池初始化时机在SqlSessionFactoryBuilder构建SqlSessionFactory的时候初始化连接池,初始化之后放入Configuration对象当中。分析框架源代码:org.apache.ibatis.bu

2020-06-21 16:52:42 169

原创 MyBatis快速入门(二)

MyBatis框架MyBatis配置文件详解SqlMapperConfig.xmlenviroments配置数据源环境default数据源开关environment具体数据源环境,可以配置多个transactionManager事务管理器datasource数据源<!--配置--><configuration> <!--配置数据源环境信息--> <environments default="development">

2020-06-19 00:45:22 275

原创 Mybatis快速入门(一)

MyBatis框架什么是框架框架就是一相当于一栋高楼,楼已经盖好了,你怎么装修,就看你自己的需求了。框架是一个半成品,对于Java语言来说,框架就是封装了别人的代码。在框架的基础上我们在进一步开发,拿来主义。框架解决什么问题解决的是技术整合问题。软件开发环境和规模都很大,不可能任何一个项目的代码都从零开始,此时就需要一个非常优秀的框架把基础技术整合完毕,我们在他的基础上进一步开发。提高性能,易扩展,易维护,最终提高整个团队的开发效率。什么时候使用框架企业级大型项目开发。怎么使用框架Java

2020-06-19 00:21:27 182

原创 计算机网络基础——TCP/UDP(拥塞处理,流量控制,三次握手四次挥手)

服务类型:TCP和UDPTCP:面向连接,提供服务前建立专门的传输连接,并且这条连接可管理,在需要或通信结束时进行拆除。(建立在不可靠传输服务上,可能出现丢失、乱序、延迟、重复等问题,因此必须使用三次握手、超时、重传功能)UDP:无连接,直接发送,不管是否能到达,尽力而为TCP/UDP区别TCP优点:可靠、稳定TCP的可靠体现在TCP在传输数据之前会三次握手建立连接,而在数据传递时,有确认、窗口、重传、拥塞控制,在数据传完后,还会断开连接用来节约系统资源。缺点:慢、效率低、占用系统资源

2020-06-16 14:20:08 906

原创 计算机网路基础——HTTP协议

HTTP协议超文本传输协议(HTTP,HyperText Transfer Peotocol)是互联网上应用最广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。HTTP协议包括哪些请求?GET:请求读取由URL所标志的信息。POST:给服务器添加信息(注释)。PUT:在给定的URL下存储一个文档。DELETE:删除给定的URL所标志的资源。HTTP中POST请求和GET请求的区别post更安全(不会作为URL的一部分,不会被缓存,保存在服务器日志,以及浏览器浏览记录中)po

2020-06-15 19:18:39 126

原创 计算机网络基础——网络的体系结构

OSI(开放式系统互联)开放式系统互联将网络通信的工作分为7层物理层主要定义物理设备标准,如网线接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。(局域网上传输帧,负责管理电脑通信设备和网络媒体之间的互通)数据链路层将比特组合成字节,再将字节组成帧,使用链路层地址(以太网mac地址)来访问介质,进行差错检测。(传输有地址的帧以及错误的检测功能)

2020-06-15 16:02:24 257

原创 IDEA常用的一些快捷键

Ctrl+Alt+V:new一个对象后,自动补全前边的类型加变量名Ctrl+Alt+L:格式化代码Alt+Insert:快速生成get,set等方法Alt+Enter:快速实现接口里的方法Ctrl+Shift+U:大小写切换Ctrl+F:在当前文件里搜索Ctrl+Shift+F:全局搜索Ctrl+R:在当前文件里替换Ctrl+Shift+R:全局替换Ctrl+Shift+上下键:上下移动代码Ctrl+D:快速复制一行Ctrl+X:快速删除一行Ctrl+Z:回退Ctrl+Shift+

2020-06-15 14:47:03 446

原创 Java面试知识点(六)——枚举类与注解

枚举类JDK1.5之前需要自定义枚举类JDK.5之后新增enum关键字用于定义枚举类当类的对象只有有限个,是确定的、当需要定义一组常量时,都建议使用枚举类。枚举类的属性枚举类的对象的属性不允许被改动,用private final修饰。枚举类使用private final修饰的属性应该在构造器中为其赋值。枚举类显式的定义了带参的构造器,则在列出枚举值时也必须对应的传入参数。自定义枚举类私有化类的构造器,保证不能在类的外部创建其对象。在类内部创建枚举类实例,声明为:public sta

2020-06-15 14:46:13 133

原创 Java面试知识点(五)——单例模式实现方式

单例模式单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供整个实例特点:单例类只有一个实例单例类必须自己创建自己的唯一实例单例类必须给所有其他对象提供这个实例为什么使用单例模式?当我们需要确保某个类只要一个对象,或者创建一个类需要消耗的资源过多。数据库连接实例主要是节省打开或者关闭数据库连接所引起的效率损耗,这种效率上的损耗还是非常昂贵的,因为用单例模式来维护,就可以大大降低这种损耗。手写单例模式第一种单例模式(饿汉式(静态常量))package com.singl

2020-06-12 15:28:15 120

原创 Java面试知识点(四)——Java异常

Java异常简介Java异常时Java提供的一种识别及相应错误的一致性机制Java异常架构ThrowableJAVA语言中所有错误与异常的超类Throwable包含连个子类:Error(错误)和Exception(异常)并且提供了printStackTrace()等接口用于获取堆栈跟踪数据等信息Error(错误)定义:Error类及其子类—程序中无法处理的错误,表示运行应用程序中出现了严重的错误。特点:此类错误一般表示代码运行时JVM出现问题Virtual MachineErro

2020-06-11 18:28:35 101

原创 Java面试知识点(三)——Java基础之线程池

1.线程池一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。2.线程池的工作原理?1)线程池判断核心线程池里的线程是否都在执行任务,如果不是,则创建一个新的工作线程来执行任务,如果核心线程池里的线程都在执行任务,则进入下一个流程。2)线程池判断工作队列是否已满,没满,则将新提交的任务存储在这个工作队列里,满了,进入下一个流程。3)线程池判断线程池的线程是否都处于工作状态。如果没有,则创建一个新的工作线程来执行任务。如果已经满了,则交给饱

2020-06-11 16:37:40 140

原创 Java面试知识点(二)——Java基础之多线程

1.程序完成特定任务,使用某种语言编写的一组指令的集合(一段静态的代码)2.进程(Process)一次程序的执行过程,正在运行的一个程序(有它自身产生存在消亡的过程)进程作为资源的分配单位,系统在运行时会分配不同的内存区域3.线程(Thread)进程可以进一步细化成为线程(一个程序内部的一条执行路径)若一个进程在同一时间并行多个线程,那么就是支持多线程的线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(PC)一个进程中的多个线程共享一个方法区和堆,使得线程间的通信更加简便、

2020-06-11 14:51:11 153

原创 Java面试知识点(一)——Java基础知识

1.JavaJava是面向对象编程语言,不仅吸收了c++的优点,还倔弃了c++里面很难理解的多继承、指针等相关概念因此java语言功能强大且简单易用面向对象(封装、继承、多态)平台无关性(java虚拟机实现平台无关性)支持网络编程、多线程健壮性、安全性2.JDK1.5之后的3大版本Java SE(J2SE,Java 2 Platform Standard Edition,标准版)它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用Java程序。Java EE(J2EE,Ja

2020-06-08 16:08:23 162

原创 JDBC核心技术

JDBC核心技术第1章:JDBC概述1.1 数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。1.2 Java中的数据存储技术在Java中,数据库存取技术可分为如下几类:JDBC直接访问数据库J

2020-05-27 10:45:41 1224

原创 Java-反射

Java ReflectionReflection是被视为动态语言的关键,java反射机制允许程序在执行期借助于Reflection API取得任何类内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象,这个对象就包含了完整类的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,我们形象的称之为:反射。Java反射机制提供的功能在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象

2020-05-19 14:11:10 145

原创 MySQL基础06-视图

视图视图是一种根据查询(也就是SELECT表达式)定义的数据库对象,用于获取想要看到和使用的局部数据。视图有时也被成为“虚拟表”。视图可以被用来从常规表(称为“基表”)或其他视图中查询数据。•相对于从基表中直接获取数据,视图有以下好处:–访问数据变得简单–可被用来对不同用户显示不同的表的内容用来协助适配表的结构以适应前端现有的应用程序视图的作用:提高检索效率隐藏表的实现细节(面向视图检索)视图的创建create view 视图名;查看视图的操作select * from

2020-05-15 18:28:06 122

原创 MySQL基础06-索引

索引索引的原理:索引被用来快速找在一个列上用特定值的行。如果没有索引,MySQL不得不首先从第一条记录开始,进行全表扫描,表越大,花费的时间越多。对于一个有序字段,可以运用二分查找,性能上得到本质的提高,MYISAM和INNODB都是使用 B+Tree作为索引结构什么时候需要给字段添加索引表中该字段中的数据庞大经常被检索,经常出现在where子句中的字段经常被DML操作的字段不建议添加索引索引等同于一本书的目录,主键、唯一约束会自动添加索引,所以尽量根据主键进行查询效率较高创建索引

2020-05-15 17:19:29 94

原创 MySQL基础05-事务

数据库事务(Transaction)含义:通过一组逻辑操作单元(一组DML语句)将数据从一种状态转换为另一种状态。事务可以保证多个操作原子性,要哦全部成功,要么全部失败。对于数据库来说,事务保证批量的DML要么全成功,要么全失败。事务具有四个特征ACID:原子性(Atomicity)整个事务中的所有操作,必须作为一个单元全部完成(或全部取消)。一致性(Consistency)在事务的开始之前与结束之后,数据库都保持一致状态。隔离性(Isolation)一个事务的执行不影响其他事务的执行。

2020-05-15 16:54:29 142

原创 MySQL基础04-存储引擎

存储引擎数据库中的各表均被指定的存储引擎来处理了解当前服务器中有哪些存储引擎可用,可以使用show engines\G常用的存储引擎MyISAM存储引擎MyISAM存储引擎是MySQL最常用的引擎。它管理的表具有以下特征: –使用三个文件表示每个表: 格式文件 — 存储表结构的定义(mytable.frm) 数据文件 — 存储表行的内容(mytable.MYD) 索引文件 — 存储表上索引(mytable.MYI) 灵活的AUTO_INCREMENT字段处理

2020-05-14 11:19:51 105

原创 MySQL基础03-表

表创建表格式create table tableName( columName dataType(length) ........ columName dataType(length)创建表的时候,表中有字段,每个字段有字段名字段数据类型字段长度显示字段约束MySql常用数据类型类型描述char定长字符串,存储空间大小固定,适合作为主键或外键varchar变长字符串,存储空间等于实际数据空间Int( 长度)整型bigint(长度)

2020-05-14 11:10:40 115

原创 MySQL基础02

连接查询连接查询也叫做多表查询,需要关联多个表进行查询笛卡尔乘积:由于没有使用连接条件,或者连接条件无效SQL99语法通过使用join关键字实现连接内连接、外连接select 字段名1,字段名2from 表1 (inner|left outer|right outer|cross) join 表2 on 关联条件 (inner|left outer|right outer|cross) join 表3 on 关联条件where 筛选条件group by 分组

2020-05-14 09:46:29 132

原创 MySQL基础01

数据库相关概念DB:数据库:保存一组有组织的数据的容器DBMS:数据库管理系统,用于管理DB中的数据SQL:结构化查询语言,用于与DBMS通信的语言数据库存储数据的特点1.将数据存储到表中,再将表放到库中2.一个数据库可以有多个表,每个表都有自己的名字,用来标识自己,表名具有唯一性3.表由列组成,也称为字段。所有表都是由一个或者多个列组成,每一列类似java中的属性4.表中的数据是按行存储的,每一行类似于java中的对象MySQL的常见命令1.查看当前所有数据库:show datab

2020-05-10 14:43:35 74

原创 复杂度分析

大O时间复杂度分析法T(n) = O(f(n))T(n):表示代码执行的时间n:表示数据规模的大小f(n):表示每段代码执行的总和O:表示T(n)与f(n)成正比如何分析一段代码的时间复杂度只关注循环次数最多的代码加法法则:总的时间复杂度 = 量级最大的那段代码的时间复杂度乘法法则:嵌套代码的时间复杂度 = 内外代码的时间复杂度的乘积复杂度量级可以粗略的分为两类:多...

2020-04-29 11:42:39 207

原创 数据结构与算法

数据结构数据结构就是数据的存储结构算法算法就是操作数据结构的方法学习数据结构需要重点掌握数组链表栈队列散列表二叉树堆跳表图Trie树学习算法需要重点掌握递归排序二分查找搜索哈希算法贪心算法分治算法回溯算法动态规划字符串匹配...

2020-04-29 11:08:22 68

原创 xml

xml定义xml是可扩展的标记语言作用可以用来保存信息可以作为数据的传输格式可以做配置文件语法文档声明<?xml version="1.0" encoding="UTF-8"?>元素标签xml属性xml注释文本区域<![CDATA[ 这里可以把你输入的字符原样显示,不会解析xml ]]>...

2020-04-26 10:44:07 94

空空如也

空空如也

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

TA关注的人

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