自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IP 协议

过去提到的划分网络号和主机号的方案,实际上是不合理的,实际的网络架设中较少出现A类 和 B类这种需要大量主机号的方案,也就是说这类子网中大量IP地址被浪费。:由于网络层有最大传输单元(MTU)的限制,当数据报的长度超过MTU时,就需要将其拆分成多个较小的数据包进行传输,这就是拆包的过程。也就是在复杂的网络结构中,找出一条通往终点的路线,这个找路的过程相当于一跳一跳问路的过程。通过子网划分我们能够合理的分配适合的主机号,减少IP地址的浪费。:描述拆包后多个包的向后顺序,偏移小的在前面,偏移大的在后面。

2025-04-07 12:00:00 1019

原创 文件IO的一些问题

谈到相对路径,就要先能够明确基准路径。如果在代码中写一个相对路径,那么这个相对路径的基准路径是谁呢?Java中针对流对象的打开必须要能够准确的关闭。例如:每次程序打开一个文件的时候,就会在中 (可以理解为一个固定长度的顺序表)申请一个表项。如果我们不断打开文件,而不能关闭文件,久而久之就会将文件描述符表中的表项消耗殆尽,后续再次尝试打开新的文件,就会打开失败。上述为了确保我们能够在使用完文件后,正确关闭文件,我们使用了try - finally 这样的语法来确保 finally 代码块中的关闭逻辑一定能够

2025-04-07 12:00:00 673

原创 HTTPS是如何确保安全的

HTTPS也是一个应用层协议,HTTPS协议是在HTTP协议的基础上引入一个加密层。(也就是说实际上我们可以认为臭名昭著的运营商劫持由于HTTP进行数据传输的过程都是以“明文”形式进行的,这也就给运营商劫持提供了条件,使得运营商能够在你进行数据传输的过程中捕获你要进行传输的数据,从而进行篡改。就是在这样的情况下,我们推进了HTTPS协议的诞生。

2025-04-03 12:00:00 1788

原创 UDP协议 和 TCP协议

UDP数据报格式我们这里主要基于TCP 和 UDP 的协议来进行学习掌握它们各自的特点和作用。前面学习UDP对应的socket对象时,我们知道UDP是无连接、面向数据包、全双工、不可靠传输的协议。UDP数据报格式我们知道UDP是活跃于运输层的协议,运输层关注端对端的通信情况。16位源端口号16位目的端口号16位UDP长度16位UDP校验和4位首部长度TCP Header保留(6位)16位校验和16位紧急指针6为标志位URG:判断紧急指针是否有效(该位为1时代表包中有需要紧急处理的数据)ACK。

2025-04-03 12:00:00 744

原创 Java操作传输层的核心类

TCPUDP操作系统向上提供一组api 来完成应用层和传输层的交互。Java中为我们封装了两套Socket api 进行网络通信。TCP和UDP。TCP。

2025-04-02 12:00:00 369

原创 HTTP协议

HTTP协议报文格式超文本传输协议(Hypertext,HTTP)是一个简单的请求 - 响应协议 (客户端 - 服务器协议)。HTTP 遵循经典的,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。HTTP往往是基于传输层的TCP协议实现的 (HTTP1.0HTTP1.1HTTP2.0均是基于传输层的TCP协议实现) ,而最新的HTTP3.0的底层是基于传输层的UDP协议进行实现的。由于当前网络上流行的主流仍是HTTP1.1,所以我们这里以1.1版本展开。HTTP协议报文格式。

2025-04-02 12:00:00 1231

原创 Hashtable 和 ConcurrentHashMap 的区别

在多线程并发执行的环境下使用哈希表,HashMap 本身是线程不安全的、Hashtable 虽然是线程安全的,但是相比ConcurrentHashMap 这个同样线程安全的哈希表来说效率太低。

2025-04-01 12:00:00 1672

原创 网络通信中涉及的内容

IP地址是用来描述一个在网络上的设备的网络地址的,通过IP地址我们能够定位一台网络设备的具体位置。IP地址是一个 32 位的二进制数,也就是说一个IP地址需要4个字节来表示。为了使用的方便,通常用“点分十进制”来表示。如果说IP地址描述了一台网络设备的位置,那么端口号就描述了这台网络设备上的某个具体程序(进程)。进行网络通信的多个通信实体间共同约定遵守的一系列规则和约定 (简单说网络协议就是针对数据收发和传输的一组约定和规则)。五元组TCP/IP 协议进行一次网络通信中,涉及到的关键信息 (五元组)。

2025-04-01 12:00:00 1639

原创 CAS 机制

CAS (Compare and Swap)比较和交换,是一种用于实现多线程同步的原子指令。CAS操作包含三个关键参数:要更改变量的内存位置、预期的值和新值。通过上述伪代码,我们能够了解CAS (Compare and Swap) 指令的工作流程,。

2025-03-31 12:00:00 1054

原创 JUC(java.util.concurrent) 的常见类

Callable 接口 和 Runnable 接口是并列关系,都是描述一个要执行的任务,不同的是Callable接口需要重写带返回值的call 方法,而Runnable 接口重写的是不带返回值的run 方法。也就是说Callable 为我们提供了能够接受任务返回值的方法。除此此外,Callable 所描述的任务并不能直接交由Thread类,需要借助 类的封装。运行程序,执行结果如下:ReentrantLock 是一把可重入互斥锁,和synchronized 是并列的关系,都是用来实现互斥效果,来保证线程安

2025-03-31 12:00:00 600

原创 多线程经典案例

学习完多线程并发执行的基础知识后,我们可以完成一些多线程经典案例的编写,以此熟悉掌握多线程编程的应用。

2025-03-02 12:00:00 1115

原创 锁策略和synchronized

这个标记相比于加锁而言是非常轻量的。

2025-03-02 12:00:00 1375

原创 从编程角度看死锁

在多线程并发执行环境下,各线程因而对方手里的资源,导致各线程都进入阻塞等待,进而无法向前推进的现象,就是“死锁”。总的来说,当。

2025-03-01 12:00:00 754

原创 线程安全问题

在多线程环境下代码的并发执行,可能导致程序的运行结果与我们的预期结果出现一定偏差,造成这样偏差的原因就称为线程安全问题。main 线程等待t1线程 和 t2 线程各自对count 变量自增50000 次后,打印count的值,程序预期结果为100000。运行程序,得到结果如下:两个线程并发执行各自对count 自增50000 次后,得到的运行结果 与 预期结果不同,这样出现的问题就叫线程安全问题 (线程不安全)。

2025-03-01 12:00:00 1161

原创 进程和线程

进程是一个程序的一次执行过程,是动态的。它是操作系统分配资源的基本单位。程序段数据段PCB三部分就组成了。站在操作系统的角度来说,我们使用进程控制块(PCB)来描述出进程的核心属性,实际上是一个包含与进程相关信息的大结构体。

2025-02-28 12:00:00 1614

原创 Thread类

Thread类创建一个Thread类的子类并重写run() 方法,实例一个子类对象给父类。

2025-02-28 12:00:00 1308

原创 CPU的基本工作流程

冯诺依曼体系结构是现代计算机的基础,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。冯诺依曼提出计算机制造的三个基本原则:采用二进制逻辑、程序存储执行以及计算机由五个部分组成。

2025-02-27 12:00:00 1731

原创 枚举在Java体系中的作用

所有的枚举类都默认继承Enum类,也就是说所有的枚举类都是是java.lang.Enum 的子类。//枚举是个特许的类修饰符 enum 枚举类名{枚举实例,...,...;//枚举实例//方法...Java中的枚举实际上就是一个类,也就是说我们在定义枚举类的时候,不仅可以在前面声明枚举实例,还可以定义字段和方法。RED("红色",1),GREEN("绿色",2),BLUE("蓝色",3);//枚举的构造方法默认是私有的return t;

2024-10-14 12:00:00 811

原创 Lambda表达式

注意:如果我们在某个接口上声明了 @FunctionalInterface 注解,那么编译器就会按照函数式接口的定义来要求该接口,相当于自动进行检查你是否是函数式接口。

2024-10-14 12:00:00 1506

原创 反射机制(Reflection)

Java的是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。

2024-10-13 16:10:24 1167

原创 Java体系中的泛型

泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。//泛型类的定义语法:class 泛型类名称 <泛型标识,...> {...//返回值和存放值可以由泛型标识代替//泛型方法的定义语法:修饰符 <泛型标识,...> 返回值类型 方法名(形参列表) {方法体...

2024-10-13 16:02:49 795

原创 HashMap和HashSet

在谈及HashMap和HashSet前,我们需要先了解一下哈希表的概念。

2024-10-10 16:33:34 1352

原创 TreeMap和TreeSet

Set是继承自Collection的一个接口类Set中只存储了key,并且要求key一定要唯一TreeSet的底层是使用Map来实现的,其使用key与Object的一个默认对象作为键值对插入到Map中的Map中存放键值对的Key是唯一的,value是可以重复的TreeMap和TreeSet的底层数据结构是红黑树,所以插入的元素都必须是能够比较大小的。

2024-10-10 16:24:30 1227

原创 排序--DS

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。

2024-10-08 18:42:16 978 1

原创 优先级队列

队列是一种基于先进先出(FIFO)的数据结构,但是在某些情况下,我们操作的数据可能带有优先级,这时候通常要求我们将优先级高的元素先出队列,在这种情况下使用普通的队列就不能满足我们的需求,因此我们就需要能够根据优先级返回优先级对象的数据结构,这就是。

2024-10-08 18:24:47 771

原创 二叉树--DS

一棵二叉树是结点的有限集合,该集合是由一个根节点加上两颗被称为左子树和右子树的二叉树构成。也可由一个空集合构成。根据名字可以所谓二叉树就是树中不存在度大于2的结点,二叉树的子树有左右之分,次序不能颠倒,因此二叉树也是一颗有序树。也就是说二叉树的结构可以看成是以下几种情况复合而成的:二叉树中存在两种特殊的二叉树需要我们去了解,满二叉树和完全二叉树。需要注意的是满二叉树其实也是一种特殊情况的完全二叉树。

2024-10-07 17:19:26 1629

原创 栈和队列--DS

队列是只允许在一端进行插入操作,在另一端进行数据删除操作的特殊线性表。队列中允许进行插入操作的一端称为队尾(Tail/Rear),进行数据删除操作的一端称为队头(Head/Front)

2024-10-07 17:08:51 384

原创 图书管理系统

在学习完SE基础语法之后,我们已经具备实现一些简单代码的能力了,同时为了整合我们前面学习过程中的知识点,加强我们对各个知识点的认知,我们可以利用SE基础语法中的知识点实现一个简单的图书管理系统。

2024-10-06 12:37:05 944 1

原创 Java体系中的异常

Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要定义我们实际情况下所需要的异常结构。//如何根据需求自定义一个异常类呢?//(1)自定义异常类,必须继承自Exception 或者 RuntimeException//(2)实现一个带String类型参数的构造方法,参数意义:书写出现异常的原因//例如:实现一个用户登录时用户名或密码错误时的登录异常//LogInException.java --自定义的登录异常类super();//--使用。

2024-10-06 12:31:20 1407

原创 String类

String。

2024-10-05 19:50:41 1609

原创 抽象类和接口的区别

关键字继承抽象类,且类间只存在单继承关系,所以一个子类只能继承一个抽象类。关键字实现接口,接口对子类不存在限制,也就是说一个子类可以实现多个接口。接口不能继承抽象类,但是接口与接口之间可以通过。关键字来扩展多个接口的功能。关键字实现诺干接口;

2024-10-05 19:44:27 334

原创 方法重载(Overload)

在前面的学习中,我们学到了,这里我们主要进行的介绍,同时对重写和重载的区别进行分析。

2024-10-04 19:46:22 609

原创 Object类

对于Object类中常见的方法,根据我们实际操作过程中的要求经常需要对这些常见方法进行重写(Override),所以实际上在定义一个类的时候,我们会将Object类中常使用的方法进行重写。

2024-10-04 19:41:27 678

原创 Cloneable接口(浅拷贝和深拷贝的区别)

Object类中存在这一个clone方法,调用这个方法可以创建一个对象的“拷贝”。但是想要合法调用clone方法,必须要先实现Clonable接口,否则就会抛出异常。

2024-10-03 13:14:39 668

原创 Comparable接口和Comparator接口

Java中基本数据类型可以直接比较大小,但引用类型呢?同时引用对象中可能存在多个可比较的字段,那么我们该怎么比较呢?Java中引用类型不能直接进行大小的比较,这种行为在编译器看来是危险的,所以会编译失败;想要实现引用类型的比较,那么我们可以实现Comparable接口和Comparator接口。

2024-10-03 13:04:38 461

原创 Java中多态的作用

不同的对象去完成具体的某个行为,产生不同的状态。

2024-09-05 12:30:00 1150

原创 抽象类和接口

接口公共的行为规范准则。在实现时,只要符合规范的标准就能够使用。生活中,我们随处可见接口,比如:USB口,电源插座等,U盘、鼠标、键盘等符合USB口协议的设备都能够使用。在Java中,我们可以将接口看成是:多个类之间的公共规范,是一种引用数据类型。

2024-09-05 12:30:00 948

原创 Java体系中的继承

Java中使用类对实体对象进行描述,而不同的事物间根据不同的业务场景可能存在一些特定联系。因此面向对象编程中,为我们提供了继承(inheritance)机制,它允许操作者在保持原有类的基础上进行扩展、增加新功能,这样产生的类称为派生类/子类。

2024-09-04 18:15:00 1217

原创 面型对象编程——类和对象

类:指的是对客观事物的一种描述,是对现实生活中一类具有共同属性和行为的事物的抽象。通俗的讲就是某一事物的模板,通过这一模板我们可以实例化一个对象。对象:用来描述客观事物的一个实体,由属性和行为构成。是通过类这个模板产生的一个实体。//类的定义 class 类名 {//字段(属性/成员变量) //行为(成员方法) }在Java中定义一个类要用到class关键字,由class+(空格)+类名+{类的主体}构成一个类,类中通常包括字段(属性/成员变量)和行为(成员方法)两部分。

2024-09-04 18:00:00 1470

原创 C程序的文件操作

对于来说,如果按的角度来分类的话,我们一般将文件划分为;通常情况下,如果我们写的程序中没有使用到文件的话,我们输入/输出的所有数据都是存储在电脑的内存中,一但程序发生崩溃或退出,内存就会被回收,从而造成数据的丢失。这就是一个文件名。

2024-09-03 18:00:00 1485

空空如也

空空如也

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

TA关注的人

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