自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(210)
  • 问答 (2)
  • 收藏
  • 关注

原创 Docker学习总结

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了步骤1:新建一个空文件夹docker-demo,自己挑个目录创建就好。步骤2:将自己的项目导成jar包,例如docker-demo.jar,上传到docker-demo这个目录。

2023-02-28 16:53:27 2041 20

原创 支付宝沙箱准备开发环境

沙箱环境是支付宝开放平台为开发者提供的与生产环境完全隔离的联调测试环境,开发者在沙箱环境中完成的接口调用不会对生产环境中的数据造成任何影响。第三方支付接口流程大同小异,考虑开发及教学的方便性,支付宝提供支付宝沙箱环境开发支付接口,在教学中接入支付宝手机网站支付接口。详细参见:https://docs.open.alipay.com/200/105311/本文档使用支付宝沙箱进行开发测试,这里主要介绍支付宝沙箱环境配置。使用沙箱环境的买家账号登录沙箱版本的支付宝。安装模拟器,安装在没有空格和中文的目录。

2023-01-21 13:37:11 2520 5

原创 JWT学习

这个过程就是无状态认证。拿到了jwt令牌下一步就要携带令牌去访问资源服务中的资源,本项目各个微服务就是资源服务,比如:内容管理服务,客户端申请到jwt令牌,携带jwt去内容管理服务查询课程信息,此时内容管理服务要对jwt进行校验,只有jwt合法才可以继续访问。令牌采用JWT格式即可解决上边的问题,用户认证通过后会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带JWT访问资源服务,资源服务根据事先约定的算法自行完成令牌校验,无需每次都请求认证服务完成授权。

2023-01-19 12:38:38 1443 8

原创 什么是OAuth2

OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。Spring Security支持OAuth2认证,OAuth2提供授权码模式、密码模式、简化模式、客户端模式等四种授权模式,前边举的微信扫码登录的例子就是基于授权码模式,这四种模式中授权码模式和密码模式应用较多,本节使用Spring Security演示授权码模式、密码模式,其余两种请自行查阅相关资料。授权码模式简单理解是使用授权码去获取令牌,要想获取令牌先要获取授权码,授权码的获取需要资源拥有者亲自授权同意才可以获取。

2023-01-19 10:45:52 1565

原创 封装自己的SDK

我们在开发Spring项目时常常会引入各种的依赖包,然后在配置文件中填入必要的信息,就可以使用依赖提供好的容器。这里是在鱼皮新项目直播中学习到的,特此记录一下。可在未来封装自己的SDK进行封装与装逼。

2022-12-03 16:22:00 1156

原创 黑马B站八股文学习笔记之虚拟机篇

说明[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-12sSvClN-1692453186472)()]从这张图学到三点从这张图可以学到。

2023-08-19 21:53:23 605 4

原创 黑马B站八股文学习笔记

● 起因:由于编译器优化、或缓存优化、或 CPU 指令重排序优化导致指令的实际执行顺序与编写顺序不一致● 解决:用 volatile 修饰共享变量会在读、写共享变量时加入不同的屏障,阻止其他读写操作越过屏障,从而达到阻止重排序的效果● 注意: ○ volatile 变量写加的屏障是阻止上方其它写操作越过屏障排到 volatile 变量写之下 ○ volatile 变量读加的屏障是阻止下方其它读操作越过屏障排到 volatile 变量读之上 ○ volatile 读写加入的屏障只能防止同一线

2023-08-13 17:52:09 3933 8

原创 异常统一处理实现

从 Spring 3.0 - Spring 3.2 版本之间,对 Spring 架构和 SpringMVC 的Controller 的异常捕获提供了相应的异常处理。在异常处理测试之前首先在代码中抛出自定义类型的异常,这里以新增课程的service方法为例进行代码修改。至此,项目异常处理的测试完毕,我们在开发中对于业务分支中错误的情况要抛出项目自定义的异常类型。代码中统一抛出项目的自定义异常类型,这样可以统一去捕获这一类或几类的异常。通过测试发现,前端正常提示代码 中抛出的异常信息。

2023-08-02 18:18:22 383 3

原创 计算机网络第一章概述

互联、自治、计算机系统的集合互连:指计算机之间可以通过有线或无线的方式进行数据通信自治:指独立的计算机,它有自己的硬件和软件,可以单独运行使用集合:指至少需要两台计算机TCP/IP模型与OSI参考模型有许多相似之处。都采取分层的体系结构都是基于独立的协议栈的概念。都可以解决异构网络的互连,实现世界上不同厂家生产的计算机之间的通信。两个模型除具有这些基本的相似之处外,也有很多差别。OSI参考模型的最大贡献就是精确地定义了三个主要概念:服务、协议和接口,这与现代的面向对象程序设计思想非常吻合。

2023-07-21 15:48:52 854 3

原创 商品管理系统(javaWeb实训项目保姆级)

该项目是基于JavaWeb实现的商品管理系统,使用maven进行管理jar包,能够对学生信息进行增删改查,分页查询,以及实现管理员的注册、登录数据库:MySQL开发工具:idea开发环境:jdk 1.8 + tomcat。

2023-06-15 22:31:30 2505 3

原创 ES6学习笔记

闭包 = 内层函数 +外层函数的变量1.用哪个关键字声明变量会有变量提升?var2.变量提升是什么流程?先把var变量提升到当前作用域于最前面只提升变量声明,不提升变量赋值然后依次执行代码我们不建议使用var声明变量1.把所有var声明的变量提升到 当前作用城的最前面2.只提升声明, 不提升赋值1.函数提升能够使函数的声明调用更灵活2函数表达式不存在提升的现象3.函数提升出现在相同作用域当中1arguments 是一个伪数组,只存在于函数中。

2023-06-10 13:49:12 1216 5

原创 java并发编程之美第五章读书笔记

CopyOnWriteArrayList使用写时复制策略来保证list的一致性,而获取–修改–写入三步操作并不是原子性的,所以在增删改的时候都使用了独占锁,来保证在某个时候只有一个线程能对list进行修改,另外CopyOnWriteArrayList提供的弱一致性的迭代器,从而保证在获取迭代器后,其他线程对list的修改是不可见的,迭代器遍历的数组是一个快照,CopyOnWriteArrayList底层就是使用它实现的。

2023-05-05 19:43:39 862 2

原创 java并发编程之美第四章读书笔记

前面提到过了AtomicLong是通过CAS提供的非阻塞的原子性操作,相比阻塞算法的同步器来说性能已经很好了,但是在高并发下大量线程同时去竞争同一个原子变量,由于同时只有一个线程凯跃操作成功,这样就造成了大量线程竞争失败后,会通过无限循环不断进行自选操作尝试CAS,白白浪费了CPU资源使用LongAddr时候会在内部维护多个Cell变量,每个Cell里面有一个初始为零的long变量,在同等的并发量下,争夺单个变量更新操作的线程会减小,变相的减少了争夺共享资源的并发量。

2023-05-05 19:42:03 453

原创 java并发编程之美第三章读书笔记

首先讲解了Randon实现原理以及Random在多线程下需要竞争种子原子变量更新操作的缺点,从而引进ThreadLocalRandom类,该类使用ThreadLocal的原理,让每一个线程都持有一个本地的种子变量,该种子变量只有在使用随机数时候才会被初始化,在多线程下计算新种子是根据自己线程内维护的种子变量来进行更新,从而避免了竞争。

2023-05-05 19:39:13 491 6

原创 java并发编程之美第二章读书笔记

并发:同一时间段内多个任务同时都在执行,且执行都没有执行结束,强调的是在一个时间段内同时执行,而一个时间段由多个时间积累而成的,所以并发的多个任务在单位时间内并不一定同时执行并行:单位时间内多个任务同时在执行多核CPU时代打破了单核CPU对多线程的性能限制,多个CPU"意味着每个线程可以使用自己的CPU运行,这减少了线程上下文切换的开销,但是随着对应用系统性能和吞吐量要求的提高,出现了海量数据和请求的要求,迫切需要高并发编程共享资源:该资源被多个线程所持有或者说多个线程都可以访问该资源线程安全问题:当多个线

2023-04-16 13:30:20 272 7

原创 java并发编程之美第一章并发编程基础(读书笔记)

是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位是进程的一次执行路径,一个进程至少有一个线程,进程中的多个线程共享进程的资源.线程是CPU分配的基本单位每个线程都有自己的栈资源,用于存储该线程的局部变量,这些局部变量是该线程私有的,其他线程无法访问,除此之外栈还可以用来存放线程的调用栈帧.堆是一个进程中最大的一个内存,堆是被进程中的所有线程共享的,是进程创建时分配的,堆里面主要存放使用new操作创建的对象实例.存放JVM加载的类,常量及静态变量等信息,也是线程共享的.

2023-04-13 23:09:37 510 6

原创 【十二天学java】day09常用api介绍

什么是APIAPI (Application Programming Interface) :应用程序编程接口java中的API指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。

2023-03-27 10:24:26 455 6

原创 十二天学java】day08面向对象

类的组成是由属性和行为两部分组成属性:在类中通过成员变量来体现(类中方法外的变量)行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)类的定义步骤:①定义类②编写类的成员变量③编写类的成员方法public class 类名 {// 成员变量变量1的数据类型 变量1;变量2的数据类型 变量2;// 成员方法方法1;方法2;/*手机类:类名:手机(Phone)成员变量:品牌(brand)价格(price)成员方法:打电话(call)

2023-03-26 15:14:32 291 1

原创 【十二天学java】day07综合练习

需求:机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。

2023-03-25 15:34:29 133

原创 【十二天学java】day06之方法详解

方法(method)是程序中最小的执行单元注意:方法必须先创建才可以使用,该过程成为方法定义方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用定义格式:public static void 方法名 ( ) {// 方法体;范例:// 方法体;调用格式:方法名();范例:method();注意:方法必须先定义,后调用,否则程序将报错定义格式:参数:由数据类型和变量名组成 - 数据类型 变量名参数范例:int a。

2023-03-23 18:12:39 230

原创 【十二天学java】day05--数组和循环高级

概念: 指的是一种容器,可以同来存储同种数据类型的多个值。 但是数组容器在存储数据的时候,需要结合隐式转换考虑。比如: 定义了一个int类型的数组。那么boolean。double类型的数据是不能存到这个数组中的, 但是byte类型,short类型,int类型的数据是可以存到这个数组里面的。建议:

2023-03-22 13:59:55 656 6

原创 【十二天学java】day04-流程控制语句

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。小明的考试成绩,如果用switch,那么需要写100个case,太麻烦了,所以用if简单。小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,

2023-03-21 18:10:25 556 6

原创 【十二天学java】day03java基础语法

- * / % 这些操作跟小学数学几乎是一模一样的。/ 和 % 的区别:他们两个都是做除法运算,/取结果的商。% 取结果的余数。整数操作只能得到整数,如果想要得到小数,必须有浮点数参与运算。算术运算符的高级用法:是以+为例进行的讲解,其余减法,乘法,除法的运算规则也是一样的。特例:字符串只有+操作,没有其他操作。&& 和 & 、||和|的运行结果都是一模一样的。但是短路逻辑运算符可以提高程序的运行效率。

2023-03-20 13:10:29 496 5

原创 【十二天学java】day02-Java基础语法保姆级使用idea

变量就在程序中临时存储数据的容器。但是这个容器中只能存一个值。数据类型 变量名 = 数据值;//1.定义byte类型的变量//数据类型 变量名 = 数据值;//2.定义short类型的变量//3.定义int类型的变量int c = 30;//4.定义long类型的变量//5.定义float类型的变量//6.定义double类型的变量//7.定义char类型的变量//8.定义boolean类型的变量注意点。

2023-03-19 16:19:45 403 2

原创 【十二天学java】day01-Java基础语法

语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言Java是一门非常火的计算机语言。(也叫做编程语言)我们想要让计算机做一些事情,那么就可以通过Java语言告诉计算机就可以了目录名称说明bin该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。conf该路径下存放了JDK的相关配置文件。include该路径下存放了一些平台特定的头文件。jmods该路径下存放了JDK的各种模块。legal该路径下存放了JDK各模块的授权文档。

2023-03-18 16:17:28 626 2

原创 详解Condition的await和signal等待通知机制

任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等待/通知机制,同样的, 在java Lock体系下依然会有同样的方法实现等待/通知机制。从整体上来看。两者除了在使用方式上不同外,在。

2023-03-16 13:23:13 731 1

原创 【网络编程】零基础到精通--Netty 入门

详细分析如下。

2023-03-14 21:07:44 665 8

原创 【网络编程】零基础到精通--NIO基础

1. java 调用 transferTo 方法后,要从 java 程序的用户态切换至内核态,使用 DMA将数据读入内核缓冲区,不会使用 cpu2. 只会将一些 offset 和 length 信息拷入 socket 缓冲区,几乎无消耗3. 使用 DMA 将 内核缓冲区的数据写入网卡,不会使用 cpu整个过程仅只发生了一次用户态与内核态的切换,数据拷贝了 2 次。所谓的【零拷贝】,并不是真正无拷贝,而是在不会拷贝重复数据到 jvm 内存中,零拷贝的优点有● 更少的用户态与内核态的切换● 不利用

2023-03-13 17:41:55 425 6

原创 【网络编程】零基础到精通——NIO基础三大组件和ByteBuffer

non-blocking io 非阻塞 IO。

2023-03-13 16:37:43 592 7

原创 高并发编程JUC之进程与线程高并发编程JUC之进程与线程

1.准备pom.xml 依赖如下:<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target&g

2023-03-06 20:28:23 327

原创 java并发编程JUC之进程和线程

IO 操作不占用 cpu,只是我们一般拷贝文件使用的是【阻塞 IO】,这时相当于线程虽然不用 cpu,但需要一 直等待 IO 结束,没能充分利用线程。所以才有后面的【非阻塞 IO】和【异步 IO】优化。

2023-03-05 22:20:28 216

原创 java高级篇之三大性质总结:原子性、可见性以及有序性

synchronized: 具有原子性,有序性和可见性;volatile:具有有序性和可见性参考文献《java并发编程的艺术》《深入理解java虚拟机》

2023-03-03 08:16:25 1354 2

原创 docker基础用法及镜像和容器的常用命令大全

Docker 采用了 C / S 架构,包括客户端和服务端。Docker 守护进程作为服务端接受来自客户端的请求,并处理这些请求(创建、运行、分发容器)。客户端和服务端既可以运行在一个机器上,也可通过 socket 或者 RESTfulAPI 来进行通信。Docker overviewDocker Daemon:守护进程Docker 主机(Host):一个物理机或虚拟机,用于运行 Docker 服务进程和容器。Docker 服务端(Server):Docker 守护进程,运行 docker 容器。Doc

2023-02-25 22:26:59 1055

原创 软考中级之数据库系统(重点)

数据库是根据业务的需求,看哪项数据需要记录的一个存储系统,但是当数据存储到一定容量的时候,那数据库的效率就会下降,而这时候需要如何解决呢,最简单的办法就是删掉一部分没有用的历史数据,但是这是在某种层面上是浪费数据的,所以我们需要找个地方把他存起来

2023-02-23 21:03:02 3209 9

原创 JAVA虚拟机JVM之内存模型

很多人将【java 内存结构】与【java 内存模型】傻傻分不清,【java 内存模型】是 Java Memory Model(JMM)的意思。简单的说,JMM 定义了一套在多线程读写共享数据时(成员变量、数组)时,对数据的可见性、有序性、和原子性的规则和保障。

2023-02-23 08:45:21 962 4

原创 RPC框架dubbo的学习

Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

2023-02-21 19:12:28 790 12

原创 字节码指令

ldc2_w 将一个 long 压入操作数栈(分两次压入,因为 long 是 8 个字节)这里小的数字都是和字节码指令存在一起,超过 short 范围的数字存入了常量池。将一个 byte 压入操作数栈(其长度会补齐 4 个字节),类似的指令还有。sipush 将一个 short 压入操作数栈(其长度会补齐 4 个字节)* 演示 字节码指令 和 操作数栈、常量池的关系。完成 main 方法调用,弹出 main 栈帧。接着上一节,研究一下两组字节码指令,一个是。传递参数,执行新栈帧中的字节码。

2023-02-17 22:34:43 1348 3

原创 媒资管理模块之视频断点续传需求分析

通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上传完成,需要客户重新上传,用户体验非常差,所以对于大文件上传的要求最基本的是断点续传。什么是断点续传:

2023-02-16 21:58:46 477

原创 Maven的安装步骤(保姆级安装教程)

(一般会用阿里云的镜像库,但不知道是我电脑还是网络的原因,下载jar包总会出错,换了很多阿里云镜像都不管用,最后换了腾讯云的就好了,所有这里给出了三个镜像)3.配置私服,因为中央仓库在国外导致下载jar包很慢或者失败,所以我们改为国内的服务器,下面三个选择一个就可以了。4.验证安装是否成功,win+R运行cmd,输入mvn -v,如图所示则配置成功。(1)在maven安装目录下新建本地仓库文件夹maven_repository。3.编辑系统变量Path,添加变量值%MAVEN_HOME%\bin。

2023-02-16 19:04:48 644

原创 面试题(二十六)场景应用

二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。-- 百度百科在商品上,一般都会有条形码,条形码也称为一维码,条形码只能表示一串数字。二维码要比条形码丰富很多,可以存储数字、字符串、图片、文件等,比如我们可以把存储在二维码中,扫码二维码我们就可以获取到牛客网的地址。

2023-02-15 13:39:18 638 2

空空如也

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

TA关注的人

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