自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

姜守威的博客

一个有梦想的大学生

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

原创 Java获取本地主机的外网IP

通过Java获取本地主机的外网地址, 该实验通过网址chinaz获取。

2022-09-18 12:32:26 874 2

原创 Web安全复习资料

黑客: 源自英文hacker,曾指热心于计算机技术、水平高超的计算机专家,尤其是程序设计人员.现在逐渐区分为白帽子、灰帽子、黑帽子等。白客(白帽子)是正面的黑客。白客检测到系统漏洞后,不会恶意利用漏洞、窃取系统数据,而是公布漏洞,提醒网站管理员及时修复,防止网站系统被其他人(如黑帽子)攻击。灰客(灰帽子)与白帽子相似。灰客擅长攻击技术,精通攻击与防御,但不轻易造成破坏。通常灰客将黑客行为作为一种业余爱好来做,希望通过黑客行为来警告系统管理员网络或系统存在漏洞,以达到警示别人的目的。与白帽子相对的就是黑帽

2022-06-15 16:26:39 831

原创 Docker常用命令以及常用服务的安装

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(1) 查看docker引擎中运行的容器有哪些?查看所有容器(2) 运行一个容器运行tomcat镜像运行tomcat镜像, 加上端口号映射 -p后台运行tomcat镜像 -d指定容器名称 -name(3) 停止 重启 暂停 恢复容器(

2022-06-12 16:08:03 413

原创 Spring Security+JWT简述

目录一. 什么是Spring Security1. 登陆校验的流程2. SpringSecurity基础案例二. Spring Security原理流程一. 什么是Spring SecuritySpring Security是Spring家族的一个安全管理框架, 相比于另一个安全框架Shiro, 它具有更丰富的功能。一般中大型项目都是使用SpringSecurity做安全框架, 而Shiro上手比较简单spring security 的核心功能:认证(你是谁): 只有你的用户名或密码正确才能

2022-06-03 19:01:27 25435 1

原创 http 协议基本格式

目录一. http是什么二. 抓包工具1. 抓包工具原理a) 抓包结果**三. http请求一. http是什么http(超文本传输协议)是应用层协议http大部分基于传输层TCP协议实现, 其中http1.0、http1.1、http2.0均为TCP, http3基于UDP实现当我们使用浏览器访问一个网页时, 首先用户向服务器发送一个http请求, 然后服务器收到这个请求会返回一个http响应数据事实上, 当我们访问一个网站时, 可能涉及不止一次的http请求/响应的交互过程二. 抓包工具下

2022-05-21 19:45:07 3690

原创 CSS选择器常用方法

目录一. 什么是CSS1. 引入方式2. 代码风格二. 选择器1. 基础选择器a) 标签选择器b) 类选择器c) id选择器d) 通配符选择器2. 复合选择器a) 后代选择器b) 子选择器c) 并集选择器d) 伪类选择器一. 什么是CSScss是层叠样式表(Cascading Style Sheets), 是一种用来表现HTML或XML等文件样式的计算机语言,CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。1. 引入方式内部样式表写在style标签中, 嵌入

2022-05-19 16:24:01 308

原创 数据链路层以太网帧概述

目录一. 以太网二. MTU一. 以太网以太网是现有局域网最常用的通信协议标准以太网链路传输的数据包称作以太帧(以太网数据帧), 在以太网中,网络访问层的软件必须把数据转换成能够通过网络适配器硬件进行传输的格式。以太网帧格式目的地址和源地址是网卡的硬件地址(MAC地址), 长度为48位不同的数据请求对应不同的类型, 0800的数据是IP数据、0806代表ARP请求/响应数据、8035代表RARP请求/响应数据数据表示要交给上层的数据. 以太网帧数据长度最小为46字节, 如果不够46

2022-05-11 21:04:00 4019

原创 IP协议报字段

目录IP数据报IP数据报头字段IP数据报在TCP/IP协议中, 使用IP协议传输数据的包称为IP数据包TCP和IP的区别TCP: 传输控制层协议, 位于传输层, 它是一种有连接、可靠、面向字节流、基于IP的传输层协议IP: 因特网协议, 位于网络层, 它是一种无连接、不可靠、IP协议规定了数据传输时的基本单元和格式IP数据报由首部和数据部分组成, 首部的前一部分是固定的, 共20字节, 然后还有一部分是可选字段, 它的长度是可选的IP数据报头字段版本: 表示IP协议的版本, 如目前广泛使用的

2022-04-30 16:45:14 3492

原创 TCP协议概述

目录1. TCP协议1. TCP协议TCP(Transmission Control Protocol), 传输控制协议

2022-04-25 13:13:14 3172

原创 UDP报文结构和注意事项

目录UDP协议UDP协议UDP是User Datagram Protocol的简称, 中文名是用户数据包协议, 是一种无连接的传输层协议, 提供面向事务的简单不可靠信息传送服务。协议格式16位端口号: 发送数据报的应用程序所使用的UDP端口16位目的端口号: 接收端计算机上UDP数据报端口长度: UDP数据报长度, 包含UDP报文头和UDP数据长度校验值: 可以校验数据在传输过程中是否被损坏伪首部: 又叫伪包头, 指在TCP的分段或UDP的数据报格式中, 在数据报首部增加源IP地址. 目的I

2022-04-18 16:44:16 784

原创 简要说明网络原理

目录1. IP地址2. 端口号3. 协议4. 协议分层5. 封装和分用1. IP地址概念IP地址主要用于标识网络主机. 其他网络设备(路由器)的网络地址. IP地址用于定位主机的网络地址格式IP地址是一个32位的二进制数, 通常被分割为4个8位二进制数, 通常用"点分十进制"的方式来表示. 如:101.1.1.1特殊IP地址127.*: 本机环回测试, 通常为127.0.0.1它主要用于本机的网络通信, 如果用网络方式进行本机通信, 会降低性能我们在进行网络通信时, 已经知道了网络的IP地

2022-04-10 16:27:21 2085

原创 多线程--锁策略 CAS Synchronized锁优化

目录锁策略1. 乐观锁和悲观锁2. 读写锁重量级锁和轻量级锁自旋锁锁策略1. 乐观锁和悲观锁乐观锁: 对于同一个数据的并发操作, 乐观锁不认为数据发生修改, 并不会对数据进行加锁操作, 只有当提交数据更新的时候才会对数据是否产生并发冲突而进行检测.悲观锁: 在并发同步的角度, 悲观锁认为对于同一个数据的并发操作, 它会认为数据是一定会发生修改, 哪怕没有被修改, 也会认为修改.通过上面的理解, 可以看出乐观锁适合用于读操作, 悲观锁适合用于写操作. 乐观锁常常采用的是CAS算法,典型的例子就是原子

2022-04-01 20:54:47 363

原创 多线程--线程状态和线程安全

目录一. 线程状态二. 线程安全线程安全问题线程问题解决方法一. 线程状态线程的状态是一个枚举类型public static void main(String[] args) { for (Thread.State state : Thread.State.values()) { System.out.println(state); }}通过上述代码可以得到NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITINGTERMINA

2022-03-26 18:48:13 608

原创 多线程--线程创建和常见方法

这里写自定义目录标题

2022-03-26 14:37:55 418

原创 多线程--进程调度以及进程和线程的关系

目录一. 进程和线程什么是进程什么是线程二. 线程调度一. 进程和线程进程是操作系统分配资源的单位,线程是调度的基本单位,线程之间共享进程资源什么是进程我们在电脑中使用的应用程序都有exe文件, 这个文件被称为可执行文件, 在没有被执行前它只是一个文件, 然而当我们执行这个exe文件之后 ,操作系统会把这个exe加载到内存中, 并且执行exe内部的一些指令. 程序的运行就是进程的创建, 运行到销毁的过程以下就是windows操作系统在运行的进程什么是线程线程是比进程更小的执行单位, 一个

2022-03-25 16:46:24 592

原创 桌面窗口管理器占用内存大的解决办法

win10的2004 20H2更新可能是本次bug的导火索 该bug造成内存泄漏win在2021年12月15发布Intel英特尔显卡驱动30.0.101.1191版For Win10-64/Win11该驱动使用第6~10代酷睿处理器时,增强了桌面窗口管理器(DWM)的稳定性。官方下载 下载之后安装驱动重启就好了...

2022-03-20 11:39:18 3732 3

原创 JDBC 操作教程

JDBC (Java DataBase Connection) 为Java应用程序提供了访问数据库的编程接口目录一. JDBC架构二. 建立连接通过DriverManager获取连接通过DataSource获取连接三. JDBC组件1. 执行组件StatementPreparedStatementCallableStatement2. 结果组件ResultSet四. 事务参考文献一. JDBC架构JDBC API:提供应用程序到JDBC管理器连接。Java为连接数据库所提供的接口, JDK自带 j.

2022-03-19 18:20:37 859

原创 Java反射机制

反射是Java的特性之一一.获取类对象我们可以使用三种方法获取对象的类1.通过静态变量class2.通过getClass()对象的方法3.使用Class.forName(“类的全路径”)public static void main(String[] args) throws ClassNotFoundException { Class<?> aClass1 = Class.forName("com.swei.Field.Relect");

2022-03-14 14:27:13 692

原创 牛客网-连续子数组的最大和

牛客网-连续子数组的最大和 题目链接 描述输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,子数组最小长度为1。求所有子数组的和的最大值。数据范围:1 <= n <= 2\times10^51<=n<=2×105-100 <= a[i] <= 100−100<=a[i]<=100要求:时间复杂度为 O(n)O(n),空间复杂度为 O(n)O(n)进阶:时间复杂度为 O(n)O(n),空间复杂度为 O(1)O(1)

2022-02-23 16:02:13 652

原创 Java IO解析和操作

目录一、IO1、IO的概念2、流的概念二、四大IO抽象类1、java流的分类三、IO类1、File类一、IO1、IO的概念在程序设计过程中,输入输出(Input/Output)尤为重要。程序在运行过程中需要获取外部数据进行操作。其中外部数据可能保存在文件、数据库、网络、其他程序中等等。所以我们需要运用IO来操作外部数据。输入(Input):程序从外部系统获取数据的过程输出(Output):程序输出数据到外部数据的过程数据源(Data Source):提供数据的一端2、流的概念流是一个抽象的

2022-01-23 20:25:35 519

原创 数据结构-二叉树

目录一、树1、有关树的几个重要概念二、二叉树1、概念2、两种特殊的二叉树3、二叉树的性质4、二叉树的遍历一、树树是一种非线性的数据结构。它是由n(n>=0)个有限结点组成一个具有层次关系的集合。1、有关树的几个重要概念①结点的度:一个结点含有子树的个数称为该结点的度。上图A结点的度为6②树的度:一棵树中,所有结点度的最大值。上图树的度为6③叶子节点:度为0的结点④双亲结点或父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点⑤孩子结点或子结点:一个结点含有父结点,则这个结

2022-01-22 20:41:33 870 1

原创 数据库总结

文章目录一、数据库简介1、数据库下载和配置2、Mysql结构二、数据库操作1、创建数据库2、查看、删除数据库3、备份、恢复数据库三、表的操作1、创建、删除表2、修改表四、CRUD语句1、insert语句(添加数据)2、update语句(更新数据)3、delete语句(删除语句)4、select语句(查找数据)五、函数1、统计函数2、分组统计3、字符串相关函数4、数学相关函数5、时间日期函数6、流程控制语句六、查询加强1、使用where子句2、使用order by子句3、分页查询4、增强group by5、多

2022-01-08 19:35:56 663

原创 路由与交换技术(笔记)

文章目录第一章一、移动通信网络架构二、数据通信系统三、OSI 参考模型遵循四、双绞线线序五、以太网线缆六、以太网工作原理七、以太网交换机工作原理广域网IP第二章VLANSTP (生成树协议)链路聚合技术第三章RIP基本原理BGP路由协议第四章第七章第一章一、移动通信网络架构分为3个部分:无线基站设备、移动承载网络和核心网二、数据通信系统由报文、发送方、接收方、传输介质和协议组成三、OSI 参考模型遵循​ ①各个层之间又清晰的边界,每层实现特定的功能​ ②层次的划分有利于国际标准协议的制定​

2021-12-27 22:44:01 6136 1

原创 Java 集合 ArrayList、LinkedList、HashSet底层源码分析

文章目录一、ArrayList源码分析1、创建对象2、add()3、判断当前容量大小4、扩容5、赋值二、LinkedList源码分析1、创建对象2、add()三、HashSet源码分析HashMap存储结构图1、创建对象2、add()3、数据存放操作4、扩容一、ArrayList源码分析public static void main(String[] args) { ArrayList arrayList = new ArrayList(); for (int i = 0

2021-12-05 20:36:41 634

原创 Java集合框架和重要接口、类

文章目录一、集合框架1、接口2、实现类3、集合类图4、集合框架的好处二、重要接口1、Collection2、List3、Set4、Queue5、Map5、迭代器接口一、集合框架Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes1、接口Java Collections Framework 接口提供抽象数据类型来表示集合。java.util.Co

2021-12-05 15:28:10 2354

原创 Java注解 Override Deprecated SuppressWarnings

文章目录一、Override二、Deprecated三、SuppressWarnings一、Overrideinterface Ia{ void fun();}class Dog implements Ia { @Override public void fun() { System.out.println("吃骨头!"); }}@Override表示重写父类的方法,当我们想覆盖超类的一个方法时,我们应该使用这个注解来通知编译器我们正在覆盖一个

2021-12-04 20:10:58 818

原创 Java 静态内部类 匿名内部类 局部内部类

文章目录一、内部类二、局部内部类三、静态嵌套类一、内部类Java 内部类是在另一个类的主体内定义的。Java 内部类可以声明为私有、公共、受保护或具有默认访问权限,而外部类只能具有公共或默认访问权限。类的五大成员:属性、方法、构造器、内部类、代码块。内部类可以直接访问该类中的私有属性。任何非静态嵌套类在 Java 中都称为内部类。Java内部类与类的对象相关联,可以访问外部类的所有变量和方法。由于内部类与实例相关联,因此我们不能在其中包含任何静态变量。java内部类的对象是外部类对象的一部分,

2021-12-04 19:33:27 459

原创 JavaSE 异常

文章目录一、异常概念二、异常处理关键字三、自定义异常一、异常概念异常是一种错误事件,它可能在程序执行期间发生并中断其正常流程。异常可能由不同类型的情况引起,例如用户输入的错误数据、硬件故障、网络连接故障等。每当执行 java 语句时发生任何错误,都会创建一个异常对象,然后JRE 会尝试找到一个异常处理程序来处理该异常。如果找到合适的异常处理程序,则将异常对象传递给处理程序代码以处理异常,称为捕获异常。如果未找到处理程序,则应用程序向运行时环境抛出异常并且 JRE 终止程序。Java 异常处理框架仅用

2021-11-25 08:22:21 203

原创 Java 字符串 String、StringBulider和StringBuffer

文章目录一、String一、String在 Java 编程中广泛使用的字符串是一个字符序列。在 Java 编程语言中,字符串是对象。通过查看String.java的源码可以知道String是被final修饰的,因此它是不能被继承的。public final class String {}创建字符串public class StringTest { public static void main(String[] args) { char[] ch = {'h','e'

2021-11-23 17:14:07 462

原创 Java 接口之 Comparable、Comparator和Cloneable

文章目录一、Comparable接口二、Comparator接口三、Cloneable接口一、Comparable接口接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。Arrays类中的sort方法承诺可以对对象数组进行排序,但要求满足下列前提:对象所属的类必须实现了Comparabe接口下面是Comparable接口代码public interface Comparable<T> { public int compareTo(T o);}该接口

2021-11-21 17:06:15 563

原创 Java特性 包 继承 多态 抽象类和接口

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、包1.1 包概念1.2 类的导入1.3 静态导入1.4 包访问权限常见的系统包二、继承2.1 继承概念2.2 覆盖方法(重写)2.3 super关键字2.4 final关键字三、多态3.1 向上转型3.2 动态绑定总结一、包1.1 包概念我们在之前基础学习java的时候有时会遇到下面这种情况.

2021-11-14 22:25:38 678 1

原创 OJ题笔记

1、#include <stdio.h>int main(){ int a, b; scanf("%d %d", &a, &b); printf("%d", a+b);}2、#include <stdio.h>#include <math.h>#define x 3.1415926535898int main(){ int r; double a; scanf("%d", &r)

2021-11-03 16:46:10 382

原创 Java类和对象

面向对象程序设计与面向过程程序设计在思维方式上存在着很大的差别,如果之前没有接触过面向对象程序设计的应用背景,那么学习面向对象这种思维刚开始并不会那么容易目录一、面向对象程序设计二、类和对象1、类2、对象3、代码分析4、成员方法/变量之间的关系一、面向对象程序设计面向对象程序设计(简称 OOP) 是当今主流的程序设计范型, 它已经取代了 20 世纪 70年代的“ 结构化” 过程化程序设计开发技术。 Java 是完全面向对象的, 必须熟悉 OOP 才能够编写 Java 程序。面向对象与面向过程的比.

2021-10-31 20:05:16 113

原创 vscode(windows) 如何连接虚拟机中的linux(centos 7)

我们在windows下使用虚拟机中的linux的时候,会不习惯linux的一些操作,vscode作为一个强大的代码编辑器(可能是比较好的文本编辑器)。让我们对linux重回windows的情怀。下面我们来看怎么使用vscode远程连接虚拟机中的linux文章目录1、linux配置网络2、虚拟机linux的ssh服务的配置1、linux配置网络我使用的linux版本是centos 7,其他的版本基本相同,可能命令上会存在差异。linux如何配置网络应该大家都会,不会的可以查看下面这个博客li.

2021-10-27 17:29:08 7475 12

原创 Java -- 类的内存分析

在学习Java的时候,我们或许理解不了面向对象的这种思想系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了.

2021-10-25 22:13:59 864 1

原创 JavaSE -- 数据类型+运算符

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录一、IDEA安装和使用二、数据类型和变量、常量1.数据类型2.变量3.常量二、使用步骤1.引入库2.读入数据总结一、IDEA安装和使用一般我们使用java语言需要安装IDEA软件1.IDEA软件的安装IDEA官网2.IDEA软件的使用打开IDEA软件我们会看到如

2021-10-16 22:40:58 175

原创 JavaSE -- 初识java

Java 语言源于 1991 年 Sun 公司 James Gosling 领导的的 Oak 项目,1995 年 Sun 公司正式起名为Java,并提出“Write once, Run anywhere" 的口号。文章目录前言一、java环境的配置二、"Write once, Run anywhere"什么意思?三、初识java程序1.main函数2.数据类型前言Java是最好的语言么?不是,因为在每个领域都有更合适的编程语言。C 语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系.

2021-10-11 13:13:51 301

原创 C语言小项目--动态通讯录实现

今天给大家带来的是动态通讯录的一个小项目。其中包括通讯录的初始化、增加、显示、删除、查找、修改、排序功能!目录主要功能代码实现总结主要功能初始化通讯录void InitContact(struct Contact* pc);增加联系人void AddContact(struct Contact* pc);显示所有联系人void ShowContact(struct Contact* pc);删除指定联系人void ShowContact(struct Contact* pc);.

2021-10-09 11:52:15 308

原创 C语言小项目--通讯录的实现

今天给大家带来的是通讯录的一个小项目。其中包括通讯录的初始化、增加、显示、删除、查找、修改、排序功能!这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-10-03 11:37:32 1101

原创 字符函数和内存函数的实现

在学习C语言的时候,离不开字符函数和内存函数的使用,只要理解了函数的功能,那这些函数使用都挺简单。但是将来作为码农的我们,必须理解这些函数是怎么实现的。下面是字符函数和内存函数合集。目录一、字符函数1、strcat2、strcmp3、strcpy4、strlen5、strstr二、内存函数1、memcpy2、memmove一、字符函数1、strcat#include<assert.h>#include <stdio.h>char* my_strcat(char* .

2021-09-21 14:38:36 93

空空如也

空空如也

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

TA关注的人

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