自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 详解 —— HTTP协议

HTTP是基于TCP处于应用层的一种协议,与传输层协议不同,它关注的不是像TCP那样的可靠传输,而是站在应用的角度,对传输的信息来具体的使用。HTTP广泛应用于手机APP和浏览器之中。1 HTTP协议格式和抓取我们之前已经讨论过了关于TCP和UDP这两种协议了,而上述的两种协议是属于“二进制协议”,通常需要理解到二进制的bit位(例如TCP中的六位标志位,若代表ACK的那一位为1,则代表这一条为ACK)。HTTP属于文本格式的协议,因此不需要去理解具体的二进制位,而只需要理解文本格式即可,也更

2022-05-15 15:11:11 47828 2

原创 详解 —— 常见锁策略及ABA问题

目录一、常见锁策略1、悲观锁VS乐观锁2、读写锁VS普通互斥锁3、重量级锁VS轻量级锁4.挂起等待锁VS自旋锁5、公平锁VS非公平锁6、可重入锁VS不可重入锁小结二、CAS1、CAS的作用2、ABA问题三、synchronized的锁优化机制1.锁膨胀/锁升级2、锁粗化3、锁消除一、常见锁策略一般来说,锁策略和普通的程序员基本没啥关系,跟实现锁的人有紧密的联系。这里提到的锁策略也不是局限于Java这门语言的,是适用于所有跟锁...

2022-05-02 22:30:37 963

原创 网络基础 ------- UDP、TCP及IP协议详解

客户端与服务器进行交互的时候,客户端需要发送或是接收数据。一方将数据发送给另一方时,需要将这些数据通过某种特定的方式进行打包,而接收的那一方同样也需要按照特定的方式去拆包,这样才能拿到他们想要的数据,而这种特定的拆包装包的方式,就叫作协议。当前较为常见的两种应用层协议为UDP和TCP,...

2022-04-30 17:25:22 6925 3

原创 javaEE基础 —— 线程的状态和安全

目录一、线程的状态1.new2.terminated3.runnable4.timed_waiting5.blocked6.waiting二、线程安全1.线程安全的概念2.线程不安全的原因一、线程的状态先前,我们大概介绍了一下线程的两个状态:阻塞和就绪。严格来说线程并不只有这两种状态,上述的两种状态是在系统层面上的线程状态,在Java中,尤其是Thread类之中一共将线程的状态表分成了六种。1.new当Thread对象创建...

2022-04-07 22:17:59 542

原创 JavaEE基础 ——— 关于线程的那些事

一、什么是进程每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程是操作系统进行资源分配的基本单位。二、进程的调度1.描述一个进程明确出一个进程上面的一些相关属性。就比如:形容一个学校的学生,你需要学校姓名,

2022-03-31 16:31:38 711

原创 详解二叉树经典基础算法

二叉树是我们平时学习当中一种常见的数据结构。在面试和学习当中我们难免会遇到一些跟二叉树有关的算法题。今天我为大家带来了几题经典的二叉树基础算法题,我们一起来看看吧!目录1.检查两棵树是否相同①题目描述②思路分析③题解代码2.另一颗树的子树①题目描述②思路分析③题解代码3.二叉树最大的深度①题目描述②思路分析③题解代码4.平衡二叉树①题目描述②思路分析③题解代码5.对称二叉树①题目描述②思路分析③题解代码6....

2022-02-17 01:40:32 1448 2

原创 JAVA基础 —— 认识异常

目录1 异常的背景1.1初识异常1.2 防御式编程2 异常的基本用法2.1捕获异常2.2 异常的处理方式2.3 finally的使用2.4异常处理流程2.5 抛出异常2.5.1异常说明3.自定义异常类1 异常的背景1.1初识异常相信我们在日常编程之中一定遇到过一些“异常”,例如:常见的数组越界异常及空指针异常。数组越界异常: public static void main(String[] args) { int..

2021-11-27 19:23:10 361

原创 Java基础 —— 继承和多态

一、包1、导入包中的类我们在使用Java编程的时候,面对很多东西并不会像C语言那样去自己实现,例如:我们想要知道数组的长度。在C语言当中我们会使用:int len = sizeof(arr)/sizeof(arr[0]);len就是我们想要的数组的长度。但在Java当中我们是不需要再见去求数组长度的,我们可以使用:int len = arr.length;但有些时候我们需要一些特殊的函数:import java.util.Arrays;public class Main

2021-11-17 16:55:53 341 1

原创 Java数据结构基础 ——— 详解顺序表,链表

一、顺序表1.概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数 据的增删查改。 顺序表一般可以分为: 1.静态顺序表:使用定长数组存储。 2.动态顺序表:使用动态开辟的数组存储。 静态顺序表适用于确定知道需要存多少数据的场景.。静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用. 相比之下动态顺序表更灵活, 根据需要动态的分配空间大小。2.接口实现我们首先新建一个Java文件,定义好一个...

2021-11-13 22:06:39 1243 8

原创 java基础 ——— 详解类和对象

目录一.类的定义1.普通成员变量2.静态成员变量二.成员变量的封装三.构造方法1.构造方法的定义和使用2.构造方法的重载3.this的使用四.代码块1.实例代码块2.静态代码块五.匿名对象一.类的定义我们在写Java代码的时候,一定会写下这样一段代码: public class Test{ public static void main(String[] args) { } }在代码的第一段我们可.

2021-10-30 18:56:48 388 6

原创 Java方法-------重载和递归详解

一.Java方法的定义与使用、 在使用Java的时候我们需要用代码去实现各种各样的功能,如果将它们放在同一个主函数当中就会使代码显得十分地臃肿不堪,可读性也直线下降。所以我们在实现某个功能的时候会将它另外封装成一个方法,那么不仅可以反复使用它而且增强了代码的美观度和可读性。下面我们来说一说如何正确定义和使用一个方法吧!1.方法的定义我们以一个简单的加法函数为例:public static void main(String[] args) { Scanner...

2021-10-25 21:32:12 281 6

原创 详解Java当中的基础数据类型及运算符

在使用Java编程的时候我们需要定义各种各样的变量,今天我们就来说一说Java当中的那八个基本的变量吧一.整形类1.int代码示例:int a = 10;System.out.println(a);1.int是Java当中用到最多的整形类型,它的大小是4个字节,与C语言当中不同的是不论32位还是64位机器,int类型在Java当中始终都占4个字节的大小。2.它的取值范围与所占空间的大小有关,4个字节等于32个比特位。那么除了最高位表示符号位以外,其余31位都为数值位,所以它的取.

2021-10-15 20:59:52 822 3

原创 初识java———从helloworld开始

java是什么?说到java就不得不提到一个人———詹姆斯.高斯林。Java被他和一群技术人员创建之后喊出了一句“一次编译,到处运行”的口号,也正是这句口号使得Java在当时的主流语言c,c++等之中渐渐崭露头角。现在,Java已经成为了国内互联网公司所使用的语言当中的一个大头。...

2021-10-11 15:44:49 245 5

原创 动态文件版通讯录及C语言中的文件的读写操作

上一期我们编写了一个C语言版本的简易通讯录,但是我们的之前的通讯录是没有记忆功能的,也就是说,一旦关闭了程序我们存储在里面的数据也就消失了。那么今天我们就来实现一个附带数据储存的通讯录。在此之前,我们先来了解一下C语言中文件的读写函数:1.fopen及fclosefopen的作用是打开我们计算机储存的某个文件,函数返回值是FILE*类型,需要两个参数:1.文件路径 2.操作类型。下面我们来演示一下:int main(){ FILE* pf = fopen("data.txt", "r"

2021-09-28 21:01:04 661 11

原创 C语言------柔性数组

我们平时在编程的时候,经常会用到数组。在定义数组大小的时候,如果小了那么使用的空间便会不足;如果赋予数组过多的空间,则会造成空间浪费。今天,我们来讲一讲关于柔性数组的概念,顾名思义,柔型数组的大小应当是可以随使需要而扩大和缩小的。柔性数组定义://柔性数组struct arr{ int i; int a[];};柔型数组定义的时候应当注意:数组在结构体内不能作为第一个元素。其次,柔性数组的大小是不包括结构体内定义的数组的,按上面的例子,那么它的大小应当是4个字节。定义完成之.

2021-09-26 16:15:10 697 9

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

今天我们来实现一个练习性质的小项目,通讯录。通讯录我们大家都不会陌生。它是我们手机上的一种具有储存查找功能的信息集合软件。今天我们要实现的通讯录主要有以下几个功能:1.添加联系人信息(姓名,性别,年龄,电话,地址)2.修改联系人信息。3.查找联系人。4.打印显示联系人列表。5.删除联系人。下面我们就开始实现它:1.项目主体的创建:函数主体使用do---while结构,首先创建一个输入变量input,循环进入条件为while(input),那么每次循环开始都可以根据用户的选择来进入不同的功能模块,

2021-09-23 19:50:04 419 4

原创 字符库strlen和stecmp函数实现

字符库的头文件是#include<string.h>我们在进行C语言编程的时候经常会使用到一些字符库的函数,比如:strlen,strcpy,strcmp等等。今天,我们来学习一下如何去实现一些常用的字符库函数。首先是strlen,该函数是用来统计字符串所包含字符的个数(不包括"\0"),根据其使用方法,我们不难猜测,该函数其实是一个计数函数。 我们首先创建一个目标字符串用以检验我们稍后编写的长度函数:定义完成以后,我们开始编写函数内部:首先我们定义一...

2021-09-19 00:55:49 461 9

空空如也

空空如也

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

TA关注的人

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