自定义博客皮肤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 1033 1

原创 Web安全复习资料

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

2022-06-15 16:26:39 1112

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

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

2022-06-12 16:08:03 542

原创 Spring Security+JWT简述

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

2022-06-03 19:01:27 26784 2

原创 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 3922

原创 CSS选择器常用方法

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

2022-05-19 16:24:01 437

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

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

2022-05-11 21:04:00 4320

原创 IP协议报字段

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

2022-04-30 16:45:14 3761

原创 TCP协议概述

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

2022-04-25 13:13:14 3372

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

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

2022-04-18 16:44:16 886

原创 简要说明网络原理

目录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 2377

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

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

2022-04-01 20:54:47 496

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

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

2022-03-26 18:48:13 699

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

这里写自定义目录标题

2022-03-26 14:37:55 486

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

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

2022-03-25 16:46:24 757

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

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 4169 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 987

原创 Java反射机制

反射是Java的特性之一 一.获取类对象 我们可以使用三种方法获取对象的类 1.通过静态变量class 2.通过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 788

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

牛客网-连续子数组的最大和 题目链接 描述 输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,子数组最小长度为1。求所有子数组的和的最大值。 数据范围: 1 <= n <= 2\times10^51<=n<=2×10 5 -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 715

原创 Java IO解析和操作

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

2022-01-23 20:25:35 626

原创 数据结构-二叉树

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

2022-01-22 20:41:33 982 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 758

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

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

2021-12-27 22:44:01 6729 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 736

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

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

2021-12-05 15:28:10 2574

原创 Java注解 Override Deprecated SuppressWarnings

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

2021-12-04 20:10:58 1058

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

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

2021-12-04 19:33:27 563

原创 JavaSE 异常

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

2021-11-25 08:22:21 262

原创 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 562

原创 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 632

原创 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 776 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.1415926535898 int main() { int r; double a; scanf("%d", &r)

2021-11-03 16:46:10 486

原创 Java类和对象

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

2021-10-31 20:05:16 216

原创 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 9783 16

原创 Java -- 类的内存分析

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

2021-10-25 22:13:59 1014 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 281

原创 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 453

原创 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 478

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

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

2021-10-03 11:37:32 1347

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

在学习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 157

空空如也

空空如也

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

TA关注的人

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