自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学生信息管理系统之测试篇

我们将该文件夹下的所有测试脚本中的测试用例全部放入测试套件,一次性测试所有的功能,并生成HTML报告,测试报告中包含每个测试脚本中的测试用例的个数、测试通过的个数、失败的个数、错误的个数以及每个测试用例的错误细节。......

2022-09-01 00:39:33 8786 1

原创 博客园项目之测试篇

我们可以一个文件夹下的所有测试脚本中的测试用例全部放入测试套件,一次性进行测试,并且生成HTML的测试报告,测试报告中包含每个测试脚本中的测试用例的个数、测试通过的个数、失败的个数、错误的个数以及每个测试用例的错误细节。使用unittest单元测试框架,对项目中的登录功能进行了自动化测试。......

2022-08-30 18:38:58 592 2

原创 【面试必问】HTTP与HTTPS的区别以及HTTPS的工作流程

因为HTTP是明文传输,存在安全上的风险。

2022-07-18 22:10:18 769 1

原创 Bean的作用域和生命周期

Bean的作用域可以理解为Bean在Spring整个框架中的某种行为模式,也可以理解为就是Bean的类型。

2022-07-16 23:36:05 304

原创 Servlet的生命周期

主要有三个方法:Servlet容器(tomcat)加载servlet,加载完成后,Servlet容器会创建一个Servlet实例并调用init()方法,init()方法只会调用一次。每收到一个客户端请求,Servlet容器会产生一个新的线程去处理。对于用户的Servlet请求,Servlet容器会创建一个特定于请求的ServletRequest和ServletResponse。然后调用service方法,通过service方法会对请求方法进行匹配。进入相应的逻辑层,完成请求的响应。当web应用被终止,或

2022-07-12 20:26:09 194

原创 【Spring】万字详解使用注解来存取对象

上篇文章中我们详细的讲解了Spring对象的存取和使用,感兴趣的朋友可以去看上篇文章Spring的创建和使用,但是上篇文章中讲的存取对象的方法相对来说有些繁琐,这篇文章我们就介绍使用注解的方式来进行存储对象吧~~这里说的配置扫描路径的方式就是在spring的配置文件中配置一下存储对象的包的路径,只有被配置的包下的所有类,添加了注解才能被识别并注册到Spring中。试想一下,如果不配置路径,那么较大的项目中有成百上千个类,那么就要一个一个类挨着扫描,性能很低。在配置文件中添加:配置好扫描路径后,就可以通过

2022-07-11 17:30:45 790 1

原创 【面试必问】抽象类和接口的区别

抽象类和接口的区别与联系

2022-07-11 00:12:12 253

原创 Spring的创建和使用

创建Spring项目与创建Servlet项目类似,首先创建一个Maven项目。1.3 添加启动类在java文件夹下创建一个启动类,包含main方法即可,这个不是必须的,只是为了测试spring的存取对象的功能。二、存储Bean对象在Java对象也可以叫做Bean。存储Bean对象分为以下两步:Bean就是一个普通的对象。2.2 将Bean注册到容器中在resources文件的根目录下添加Spring配置文件配置文件:将Bean对象注册到容器中就是在中添加如下配置三、获取并使用Bean对象

2022-07-09 16:59:21 437

原创 Spring之核心IOC容器和DI的概念

Spring是包含了众多工具方法的IoC容器。Inversion of Control,就是“控制反转”的意思,是一种设计思想。没有引入IoC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制。而引入IoC的程序,将对象的创建交给第三方,也就是获得依赖对象的方式反转了。IoC的设计思想,也实现了程序之间的解耦。如图所示,因为有了IoC容器这个“第三方”,使得A、B、C、D这4个对象之间没有了耦合关系,齿轮之间的传动全部依靠“第三方了”,全部对象的控

2022-07-07 23:38:19 286

转载 正则表达式详解

目录案例引入正则表达式命名规范结构组成用途场景Java中的正则校验正则元字符正则:普通字符正则:\d正则:\D正则:\w正则:\W正则:\s正则:\S正则:.正则:|正则:[abc]正则:[^abc]正则:[a-z]正则:[^a-z]正则:\num正则:?正则:+正则:{n}正则:{n,m}正则:*在讲正则表达式前,我们不妨先从一个场景来逐渐引入。你可能有过这样的经历:我们去某些网站注册帐号,当你在设置密码的时候,网站会提示你密码的长度范围,以及对应的规则限制(如下图)。根据上图,我们将密码设置规则可以描述

2022-07-05 10:48:06 615

原创 【Spring Boot】Spring Boot的介绍、项目的创建

Spring Boot是一个java开发框架。是为了简化Spring程序开发的。由于使用的是社区版,不能直接创建Spring Boot项目,所以要先安装插件。安装好这个插件,我们就可以创建Spring Boot项目了。点击next,进入下一步:继续点击next:继续点击next:这样子,一个spring boot项目就创建成功了。第一次加载可能有些慢,当如图所示时,就表示spring boot就加载完成了。这样子就将spring boot项目运行起来了。在创建的项目包路径下创建Con

2022-07-04 22:51:54 378

原创 【Web项目】点餐系统

现如今,随着餐饮行业的不断扩大,消费者的年轻化,餐饮行业的点餐逐渐由线下转为线上点单,因此我们这个点餐系统就应运而生。点餐系统为餐厅增添了用户与餐厅的互动性,还可以实现更加多样化的点餐。本项目运用Servlet框架,vue前端,java后端,mysql连接数据库实现了一个具有管理员和普通用户的双角色点餐系统。普通用户:注册、登录、下单、查看自己的订单、查看订单详情、查看菜品、退出登录。管理员:登录、查看所有订单、查看订单详情、新增菜品、删除菜品、查看所有菜品、退出登录等功能。要实现普通用户所需的功能,需要

2022-07-03 15:09:34 2667 8

原创 【JVM】万字详解垃圾回收机制(面试常问)

JVM的内存结构包括5大区域:方法区,堆区,虚拟机栈,本地方法栈,程序计数器。对于程序计数器、虚拟机栈、本地方法栈这三部分而言,他们的生命周期与相关线程有关,随线程而生,随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。而JAVA堆区和方法区不一样,这部分内存的分配和回收都是动态的,也就是垃圾收集器所关注的地方了。在进行垃圾回收之前,首先要判断哪些对象还存活着,哪些对象已经“死去”,判断对象是否已“死”有以下几种算法:给对

2022-06-18 11:53:56 1770

原创 【JVM】详解类加载机制

对于一个类来说,它的生命周期是这样的:当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化三个步骤对该类进行初始化。所以将这三个步骤称为类加载。其中连接又分为三步:验证、准备、解析。下面我们来仔细了解一下类加载的过程:当类被加载之后,系统会为之生成一个对应的Class对象,接着将会进入连接阶段,连接阶段负责把类的二进制数据合并到JRE中(意思就是将java类的二进制代码合并到JVM的运行状态中)。类连接又可分为以下三个阶段:初始化是为类的静态变量赋予正确的初始值,准备阶段

2022-06-14 22:30:51 2944 1

原创 【网络篇】详解TCP/IP协议(下)(IP协议、数据链路层协议)

上篇文章中我们详解了TCP协议详解TCP协议,这篇文章我们来看看IP协议。首部字段含义:

2022-06-10 18:54:29 842

原创 【网络篇】详解TCP/IP协议(上)(TCP、UDP协议)

TCP传输控制协议,是传输层的重要协议。TCP是面向连接的、可靠的、基于字节流的传输层通信协议。TCP首部同常包含20个字节:6位标志位说明:在TCP中,当发送端的数据到达接收主机时,接收端会返回一个已收到消息的通知。这个消息叫做确认应答(ACK)。当发送端将数据发出之后会等待对方的确认应答,如果有确认应答,说明数据已经成功到达对方端,否则,数据丢失的可能性很大。但是对于接收端来说如果反复收到相同的数据是不可取的,因此引入序列号。序列号是按照顺序给发送数据的每一个字节(8位字节)都标上号码的编号。接收端查询

2022-06-10 17:14:16 1209

原创 【面试必问】在浏览器中输入URL后,到底发生了什么?

在现在互联网如此发达的时代,如果我们遇到什么问题不了解,第一个想到的就是就浏览器里找度娘,但是我们想想在浏览器中输入百度的URL后,发生了什么呢?下面我们一起来看看~对URL地址进行校验,看符合URL的要求(包括协议、网络地址、资源路径),如果是不合法的地址,会转给默认的搜索引擎。我们要解析域名,拿到相应的IP地址。在缓存中没有查找到的话,就发送请求到本地域名服务器。如果还没有,就发送递归查询(本地服务器请求比它高一级的服务器,如此递归直到根域名服务器,就一定能找到这个服务器的IP地址)。找到正确的I

2022-06-06 16:35:47 405

原创 【网络篇】认识网络

认识网络一、局域网二、广域网三、IP地址四、端口号五、网络协议六、五元组七、OSI七层模型计算机网络根据网络互连的规模可以分为局域网(LAN)和广域网(WAN)。一、局域网简称LAN,局域网是就是局部组建的一种私有网络,在局域网内部的主机之间能够进行网络通信(网络数据传输),也成为内网。局域网和局域网在没有连接的情况下是无法通信的。局域网的组建方式有很多种,如:基于网线直连基于集线器组建基于交换机组建基于交换机和路由器组建二、广域网简称WAN,通过路由器将多个局域网连接起来,组成较大

2022-05-30 20:58:53 309

原创 Cookie与Session的工作流程

Cookie与Session的工作流程一、为什么有Cookie和Session?二、cookie/session执行流程2.1 cookie执行流程2.2 Session的执行流程三、Session/Cookie的区别一、为什么有Cookie和Session?由于HTTP协议是“无状态”协议(可以参考之前的博客HTTP协议),也就是客户端向服务器端发送请求,服务器作出响应,他们之间的连接就会断开(一次会话结束),下次客户端再给服务器端发送请求,服务器就不知道这个用户是谁了。但是在实际的开发中,我们需要

2022-05-27 15:57:44 1934 2

原创 HTTP协议

HTTP协议一、什么是HTTP?二、HTTP工作过程三、HTTP协议特点四、HTTP协议格式4.1 抓包原理4.2 抓包工具使用4.3 抓包结果分析一、什么是HTTP?HTTP(Hyper Text Transfer Protocol),全称超文本传输协议,是一种应用非常广泛的应用层协议。HTTP是一套在网络上传输文件(如文本、图像、视频、声音和其他多媒体文件)的规则。二、HTTP工作过程通常,当我们在浏览器输入一个“网址”,此时浏览器就会给对应的服务器发送一个HTTP请求,对方服务器收到这个请求之

2022-05-27 10:03:04 1293

原创 Http 1.0 1.1 2.0版本的区别

Http 1.0 1.1 2.0版本的区别

2022-05-13 14:50:12 851

原创 【JavaScript】JS的基础知识

JavaScript一、什么是JavaScript?二、JavaScript的用途三、JS是如何运行的?四、JS前置知识4.1 JS书写格式4.1.1 行内格式4.1.2 内嵌格式4.1.3 外部格式一、什么是JavaScript?JavaScript(下文简称JS)是一种运行在客户端的脚本语言,不需要编译,运行过程中由JS解释器逐个进行解释并执行,JS解释器被称为JavaScript引擎,是浏览器的一部分。二、JavaScript的用途表单动态校验(验证数据合法性)网页开发网页游戏开发服务

2022-04-30 22:50:54 810

转载 字体和font-family对照表

校招内推: 字节跳动2021春季校招内推码: NR6WYPP 投递链接: https://jobs.toutiao.com/s/eeSH1X3 社招私聊~ 进入原文查看字体效果 windows常见内置中文字体 字体中文名字体英文名字体应用宋体SimSun中文名...

2022-04-27 17:36:43 1214

原创 【JUC】JUC下的经典类

JUC下的典型类一、Semaphore 信号量二、 CountDownLatch 计数器三、CyclicBarrier 循环屏障java.util.concurrent简称JUC类,JUC下有几个典型类:ReentrantLockSemaphoreCountDownLatchCyclicBarrierReentrantLock可重入锁,在前面已经进行过讲解,可以去看看常见锁策略一、Semaphore 信号量Semaphore信号量,它的执行策略是设置一个具有n个许可证的信号量,当有任务时

2022-04-27 14:11:04 470

原创 【多线程】线程池的七种创建方式,线程池的拒绝策略,线程池看这篇就够了

线程池一、线程存在的问题二、什么是线程池?三、线程池的优点四、线程池的使用4.1 固定数量的线程池4.2 线程工厂一、线程存在的问题之前我们已经学习过了线程,线程的创建方式我们讲了7种,感兴趣的小伙伴可以去看看前面的讲解。线程的创建那么我们学习了那么多关于线程的知识,为什么还要再用到线程池呢?那么我们就要来思考一下,线程有什么问题吗?首先,每次有任务来时就要创建线程,任务结束就要将这个线程销毁,频繁的创建和销毁需要一定的开销。当任务数远远大于线程可以承载的数量之后,不能友好的进行任务拒绝。因

2022-04-26 17:31:55 8307 1

原创 多线程-常见锁策略+CAS(锁的进阶知识)

常见锁策略一、乐观锁 & 悲观锁1.1 乐观锁的定义1.1.1乐观锁的实现-CAS1.1.2 CAS的应用1.1.3 CAS存在的问题1.1.4 ABA问题1.1.5 ABA问题的解决方案1.2 悲观锁二、公平锁和非公平锁一、乐观锁 & 悲观锁1.1 乐观锁的定义乐观锁,顾名思义,他比较乐观,他认为**一般情况下不会出现冲突,所以只会在更新数据的时候才会对冲突进行检测。**如果没有发生冲突直接进行修改,如果发生了冲突则不进行任何修改,然后把结果返回给用户,让用户自行处理。1.1.1乐

2022-04-24 16:29:13 1223

原创 【Java设计模式】校招最常考的单例模式

单例模式一、什么是单例模式?二、单例模式的类型2.1 饿汉模式2.2 懒汉模式2.2.1 普通懒汉模式2.2.2 DCL版懒汉模式2.2.3 使用volatile防止指令重排序三、枚举实现单例模式一、什么是单例模式?单例(Singleton)模式:指的是在内存中只会创建一次且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁的创建对象使内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。这种模式的好处在于:减少了系统的开销;有

2022-04-22 19:44:51 325

原创 【LockSupport】线程的休眠和指定唤醒

LockSupport一、LockSupport1.1 LockSupport.parkUntil(long)1.2 LockSupport和Interrupt1.3 LockSupport与Object的wait/notify在上篇文章中我们讲了线程通讯的三个方法,感兴趣的小伙伴可以去看看。线程通讯(wait、notify、notifyAll)一、LockSupport除了上篇文章中讲的,使用LockSupport也可以使线程休眠和唤醒。主要包含两个常用方法:LockSupport.park(

2022-04-21 10:52:30 648

原创 多线程-线程通讯【线程的通知和唤醒wait()、notify()/notifyAll()】

由于多个线程之间是抢占执行的,因此线程之间执行的先后顺序难以预知,但我们在实际的开发过程中,我们希望能够合理的协调多个线程之间的执行先后顺序。这就引出了完成这个协调工作的三个方法:wait()/wait(long timeout):让当前线程进入等待状态。notify():唤醒在当前对象上等待的一个线程notifyAll():唤醒在当前对象上等待的所有线程。一、wait()方法的使用wait()执行流程:使当前线程进入休眠状态(将线程放入等待队列中)释放当前的锁满足一定条件时被唤醒,

2022-04-21 10:03:58 2807 3

原创 【多线程】死锁详解

一、什么是死锁死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞现象,若无外力作用,他们都将无法进行下去。也就是说两个线程在拥有锁的情况下,又尝试获取对方的锁,从而导致程序进入阻塞状态。手撕死锁代码(面试常考)~import java.util.concurrent.TimeUnit;/** * 死锁示例 */public class ThreadDemo17 { public static void main(String[] args) {

2022-04-18 17:45:46 4052

原创 多线程-wait和sleep的区别

目录一、wait VS sleep二、wait(0) VS sleep(0)一、wait VS sleep1. 相同点① 都可以让线程进入休眠状态。② 都可以相应interrupt中断请求。响应中断请求:public class WaitSleepDemo { public static void main(String[] args) throws InterruptedException { Object lock=new Objec

2022-04-12 17:07:26 3588

原创 多线程-线程安全问题的解决

在上一篇文章中,我们说了线程

2022-04-12 16:20:15 861

原创 数据结构 优先级队列(堆)---学习笔记

一、堆(heap)1.1 概念1.堆在结构是一颗完全二叉树。2.从节点值看: 根节点的值一定不小于左右子树的节点值——大根堆(最大堆) 根节点的值一定不大于左右子树的节点值——小根堆(最小堆)3.堆在物理上是保存在数组中4.堆的实现基本都是基于二叉树——二叉堆。判断一棵二叉树是不是堆从两点出发,首先看它的结构是否一棵完全二叉树,然后看根节点的值与左右子树节点值的大小关系,若根节点>=左右子树,则为最大堆,若根节点<=左右子树,则为最小堆。...

2022-04-09 17:40:40 1754

原创 Java线程的几种状态及线程安全问题

目录一、线程状态1.1 所有线程状态1.2 线程状态的转移二、线程安全性问题2.1 线程安全的概念2.2 线程不安全的原因2.2.1 抢占式执行2.2.2 多个线程修改同一个变量2.2.3 非原子性操作2.2.4 内存可见性2.2.5 指令重排序一、线程状态1.1 所有线程状态线程的状态是一个枚举类型 Thread.Statepublic class ThreadState { public static void mai...

2022-03-27 17:31:44 997 2

原创 Thread常用构造方法及属性

前面介绍了Thread的Thread的创建,现在我们就来了解以下Thread的常用构造方法和属性~一、Thread常用构造方法方法 说明 Thread() 创建线程对象 Thread(Runnable target) 使⽤ Runnable 对象创建线程对象 Thread(String name) 创建线程对象,并命名 Thread(Runnable target, String name) 使⽤ Runnable 对象创建线程对象,并命名 Th

2022-03-27 12:49:44 1756

原创 数据结构 二叉树常考面试题---判断一棵树是否为完全二叉树

一、完全二叉树的相关定义对于深度为K的,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中编号为1-n的节点一一对应时称之为完全二叉树。对完全二叉树来说一共有三种节点:1.度为二的节点有n个 2.度为1的节点最多只有一个 3.度为0的节点有n个。二、解题思路用一个标志来区分两个阶段,第一个阶段,度为2或者,左树不存在但右树存在,return false,当左树存在但右树不存在时或者度为0时,需要切换到第二阶段;第二阶段:此时上一个节点的左树存在右树不存在,或者为叶子节点,若现在

2022-03-26 23:59:36 447

原创 多线程-线程的创建、中断、等待、休眠和获取线程引用

今天来总结下Thread类的用法,包括Thread的创建、中断、等待、休眠以及获取线程实例的用法。目录一、线程的创建1.1继承Thread1.1.1通过继承Thread类来创建线程1.1.2 变种方法11.1.3 启动线程——start()方法1.1.3 start()和run()的区别1.2实现Runnable接口1.2.1 基础实现Runnable接口1.2.2 变种方法1:匿名实现Runnable接口1.2.3 变种方法2:使用Lambda表...

2022-03-25 23:34:57 1382

原创 面试常问——进程和线程的区别

最近学习到了Java的多线程部分,了解到了进程和线程的相关概念,下面我们来介绍一下进程和线程吧。目录一、进程二、线程三、进程VS线程一、进程进程是操作系统资源分配的最小单元。一个进程拥有的资源有⾃⼰的堆、栈、虚存空间(页表)、文件描述符等信息。 从编程的角度来理解进程,可以把它看作是⼀个类或一个 PCB(Process Control Block)进程控制块的结构体。进程是操作系统对一个正在运行的程序的一种抽象,可以把进程看作程序运行的一次运行过程。程序VS进程:

2022-03-22 00:52:00 57171 3

原创 堆的应用 --TopK问题

目录1.最小K个数:OJ链接2.前K个高频元素:OJ链接3.查找和最小的K对数字:OJ链接1.最小K个数:OJ链接题目描述:设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。示例:输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]提示:0 <= len(arr) <= 100000 0 <= k <= min(100000, len(arr))思路:在TopK问题中

2022-03-20 23:33:24 318

原创 数据结构学习笔记-七大排序问题

1.冒泡排序2.堆排序

2022-03-18 23:01:21 1731

空空如也

空空如也

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

TA关注的人

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