自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UDP 的报文结构

UDP协议一、UDP数据报(一)、UDP协议特征:(二)、UDP具体报文格式。二、UDP的socket(嵌套字)(一)、DatagramSocket类:(二)、DatagramPacket类一、UDP数据报在网络基础中、已知在封装的过程中,应用层协议打包进入传输层。进入传输层后,又有两种协议可再次进行打包,让数据顺利进入网络层,然后再打包成IP协议。其中一种就是UDP协议。(一)、UDP协议特征:无连接:不需要接通,直接发送数据不可靠传输:发送方不知道对方有没有收到数据,只管发送就是了。面

2022-05-20 13:45:59 1120

原创 cas 和 synchronized 的优化过程

一、CAS:compare and swap我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。比较 A 与 V 是否相等。(比较)如果比较相等,将 B 写入 V。(交换)返回操作是否成功。基于以上比较和交换步骤写的线程代码是不安全的,因为涉及到了即读又写的操作

2022-05-20 11:50:38 204

原创 HTTPS协议加密流程

HTTPS协议加密流程一、HTTPS的协议是啥?二、加密流程(一)对称加密非对称加密:三、中间人攻击(四)官方证书一、HTTPS的协议是啥?HTTPS是在HTTP的基础上引入了一层加密层。HTTP协议属于明文传输,在传输过程中,可能会被运营商劫持数据并篡改,于是就搞出了HTTPS协议进行加密传输。HTTPS引入的加密层,被称为SSL/TLS。注:加密不是不能破解,而是指破解的成本远远高于获得其中数据的价值。就像计算一个很多的排列组合数要花费一台普通计算机几百年、几千年的时间成本一样。二、加

2022-05-18 19:03:25 355

原创 HTTP协议和fiddler

有关于HTTP协议格式内容和fiddler抓包工具的使用

2022-05-17 15:28:02 291

原创 网络基础知识

一、网络(一)、原始网络用线把各个主机连在一起,像个蜘蛛网一样。人们通过这些电线吵架撕逼,但是线太多,网络变大后,密密麻麻的,主机端口也不够用了,吵架的时候,还容易迷路,这咋办?(二)、局域网相当于一个快递机构,把线路变少了,主机用户直接撕逼的时候,有帮忙把信息通过正确路径发送。此时就组成了一个局域网。只有这个局域网类的主机才能互相撕逼…(三)广域网我打字健步如飞,祖安10年,双亲尚在。区区一个局域网类的用户,都被干下阵来,再也无法满足我触碰键盘的双手,那咋办?再买一台其他局域网的主机?显然

2022-05-16 18:16:14 117

原创 队列的使用和实现

文章目录@[TOC](文章目录)一、什么是队列?二、使用步骤1.引入库2.读入数据总结一、什么是队列?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('i

2022-04-26 21:51:26 812

原创 栈的概念和操作

一、什么是栈栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。特点:后进先出二、Java虚拟机栈(1)栈帧:调用函数是为其开辟的内存叫栈帧。三、中缀表达式、后缀表达式、前缀表达式的转化。(1)、后缀表达式求值:逆波兰表达式求值:Stack<Integer> stack=new Stack<>(); public int evalRPN(String[] tokens) {

2022-04-21 23:27:44 637

原创 线程安全问题的原因和解决方案

一、什么是线程安全操作系统调度线程时是随机的,抢占式,因为其随机性导致了bug,就说这个线程是不安全,若没有bug,则说这个线程是不安全。例如:有一个变量,两个线程对其进行自增操作->导致了线程不安全。class Counter{ public int count=0; public void increase(){ count++; }}public class TextDemo1 { public static void main(Stri

2022-04-20 14:12:12 1021

原创 线程的状态

导入:“就绪”和“阻塞”是针对系统层面上的线程状态,即在PCB上(一)、Java中细分的状态。public static void main(String[] args) { for (Thread.State state:Thread.State.values()){ System.out.println(state); } } 输出:NEW RUNNABLE BLOCKED

2022-04-18 23:50:15 130

原创 集合框架及背后的数据结构

一、 Java 集合框架Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索retrieve 、管理 manipulate ,即平时我们俗称的增删查改 CRUD二、类和接口接口:抽象类进一步抽象,只包含抽象方法,字段只包含静态常量。(实现多态、

2022-04-17 23:06:23 2198 1

原创 String类的使用和原理

一、创建字符串 String str1="Hello world"; String str2=new String("Hello world"); char[] array={'a','b','c'}; String str3=new String(array); System.out.println(str1); System.out.println(str2); System.out.prin

2022-04-17 11:36:03 336

原创 链表:无头双向链表的操作与实现

双向链表的基本操作与实现

2022-04-17 09:32:57 297

原创 数据结构:无头单向链表的操作

一:什么是链表:链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的(一):分类:二:无头单向非循环链表实现注:此处的head表示第一个节点,并不是有头链表。有头的链表的头是一个傀儡节点。...

2022-04-16 23:06:02 424

原创 顺序表的操作

1. 线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…2、顺序表:在类中使用的数组,以便能面向对象顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改顺序表一般可以分为:静态顺序表:使用定长数组存储。动态顺序表:使用动态开辟的数组存储。1、接口的实现(1)实现一个顺序表的类public class MyArr

2022-04-08 20:30:19 257

原创 时间和空间复杂度

算法效率1、什么是算法效率:算法效率分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。**时间复杂度:**主要衡量的是一个算法的运行速度,只考虑最坏情况**空间复杂度:**主要衡量一个算法所需要的额外空间。2、时间复杂度:算法中基本操作的执行次数(1)大O渐进表示法大O符号(Big O notation):是用于描述函数渐进行为的数学符号。推导:1、用常数1取代运行时间中的所有加法常数。2、在修改后的运行次数函数中,只保留最高阶项

2022-04-08 19:42:42 189

原创 线程的基本使用

线程使用:Thread的基本用法一、线程的创建方法一:继承Thread方法二: 实现 Runnable 接口方法三:匿名内部类创建 Thread 子类对象方式四:匿名内部类创建 Runnable 子类对象方法五:二:线程中断方法一:手动设置一个标记位方法二: 使用 Thread.interrupted() Thread.currentThread().isInterrupted() 代替自定义标志位.三、线程等待四、线程休眠五、获取线程实例一、线程的创建方法一:继承Thread//继承

2022-04-04 13:04:59 894

原创 线程与进程

一、进程具有低效性:进程在每一的调用时都要重新分配资源,建立通道。即:需要频繁的申请和释放资源。二、如何解决进程并发的低效:1、进程池:(数据库连接池、字符串常量池、等)虽然提高了并发的效率,但池子中的闲置进程仍然会消耗大量的资源。2、使用线程进行并发编程:线程的创建、调度、销毁的成本大大低于进程,线程包含在进程之中,又称轻量级进程。三、什么是线程:(1)线程包含在进程之中,一个进程拥有多个线程,公用一份进程中的资源。四、进程与线程的区别和练习(1)、进程包含线程

2022-04-02 22:33:17 258

原创 进程的调度

一、操作系统操作系统有两个基本功能:1) 对下:管理各种硬件设备2) 对上:给各种软件提供稳定的运行环境二、操作系统管理进程1、什么是进程: 每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。2、怎么管理进程:(1)、描述一个进程:操作.

2022-04-02 22:01:21 1870

原创 异常的处理

异常前言一、防御式编程二、异常的基本用法(一).捕获异常1、 语法:2、示例3、 异常类型需匹配4、finally(二)异常处理流程二、抛出异常:throw三、java异常体系1、异常类派生2、受查异常(1)try catch 包裹起来(2)方法上加上异常说明五、总结前言什么是异常所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制.运行时:指的是程序已经编译通过得到 class 文件了, 再由 JVM 执行过程中出现的错误.除以0System.out.println(10 / 0

2022-02-28 17:46:29 219

原创 面向对象编程

一、包是什么?包 (package) 是组织类的一种方式.使用包的主要目的是保证类的唯一性.(一)导入包中的类导入毫米级别的时间戳 方式一java.util.Date date=new java.util.Date(); System.out.println(date.getTime());导入毫米级别的时间戳 方式二: 使用import导入import java.util.Date;public class text { public static void m

2022-01-18 16:51:59 289

原创 java中的类和对象

java中的类和对象前言一、面向对象二、创建类1 、类中包含什么?(1) 、成员变量(2)方法(3)代码块三、更好的使用类。前言“思考”这一行为在早期似乎是一种无用的。作为虚拟世界的原始人的我,已经能用数据类型、逻辑语句、方法、以及数组来制作工具了,于是我开始去思考。回想现实世界中“概念”,所为“概论”就是将具有大多相同属性的实物抽象成一个类别。例如“人”这个概念,就是从具有相同物种属性,社会属性作为实物的我们中抽象出来的。再例如,“电器”,也是从具有相同物理属性,功能属性的电力产品中抽象出来的集合。然

2021-11-04 21:18:56 71

原创 Java数组的定义与使用

Java数组的定义与使用前言:一、数组的基本使用1.数组是什么?2.创建数组3.数组的使用(1) 获取长度 & 访问元素(2) 下标越界(3) 遍历数组二、数组作为方法的参数1. 方法打印数组2. 理解引用3 .null三、 数组作为方法的返回值前言:作为虚拟世界中的原始人的我,在上文中不仅会制造工具(数据类型与逻辑控制语句组合)了,还可以做出可以多次使用的工具(方法)。但是我应该怎样批量做出同种工具,哪就需要批量的对“物质”进行存储,就像现实世界中,收集好大量的煤炭,干柴一样,在这片虚拟世界中

2021-10-31 00:18:50 232

原创 java的方法即函数

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-10-26 21:37:46 72

原创 Java中的逻辑控制

Java中的逻辑控制一:顺序结构二:分支语句1、if()语句2、switch语句三:循环语句1、while()语句2、for()语句3、do while()语句四、break语句五、continue语句六、补充,输入语句一:顺序结构顺序结构较为简单,就是从上而下的顺序;如下,System.out.println("aaa");System.out.println("bbb");//输出: aaa bbb二:分支语句1、if()语句基本语法 11、if(布尔表达式)

2021-10-26 00:32:42 69

原创 java中的基本数据类型

Java中的基本数据类型与运算符前言:假设我来到一片虚拟世界,现在要在这虚拟世界中从零到有的进行建设。这片虚拟世界的最底层是由0和1构建而成,并且已经演化完备,那么作为在这片世界中有智慧的生物,首先要做的并不是去创造“火”,而是对世界已存在的各种“物质”进行分类,正如现实世界中,将物质总体分为“金木水火土”、“风水火土以太”的思想一样。并去分析这些物质的性质。但是在这片虚拟世界中所有构成都是有0和1组成,而不是有原子构成,所以这些物质都具有数字的特征。...

2021-10-20 21:40:27 131 1

原创 初试Java的运行

1、Java是一门半编译型、半解释型语言。2、准备工具JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。 JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。3、JDK、JRE、JVM关系及作用关系:由大到小的包含关系。4、4、操作步骤:...

2021-10-16 23:55:06 107

空空如也

空空如也

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

TA关注的人

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