自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVAEE之网络原理(2)_传输控制协议(TCP)的连接管理机制,三次握手、四次挥手,及常见面试题

以上就是本节的主要内容,我们详细介绍了TCP原理中的 连接管理机制,主要包括三次握手和四次挥手两部分,我们介绍了三次握手、四次挥手的主要过程。在下一节我们将会继续介绍 TCP 原理中的其他机制。

2024-06-19 10:43:14 930

原创 JAVAEE之网络原理(2)_传输控制协议(TCP)、概念、格式、确认应答及超时重传机制

TCP协议全称:传输控制协议(TCP,Transmission Control Protocol),它是是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1] 定义。TCP通信一般指客户端和服务端通信。在Java中,一般使用SocketServer和Socket这两个类实现TCP通信,前者为服务端的一个实体,而后者可以认为是一种对连接的封装。一般来说,需要先启动服务端,然后客户端才能向服务端发送连接请求,连接成功后,两端就可以互相通信了。

2024-06-18 18:46:34 916

原创 JAVAEE值之网络原理(1)_用户数据报协议(UDP)、概念、特点、结构、代码实例

UDP工作在传输层,用于程序之间传输数据的。数据一般包含:文件类型,视频类型,jpg图片等。UDP特点:无连接、不可靠、面向数据报、全双工。

2024-06-11 18:36:21 1576 1

原创 JAVAEE值网络编程(2)_TCP流套接字及通信模型、TCP网络编程及代码实例

在上一节内容中,我们介绍了什么是套接字,以及使用UDP数据报套接字网络编程, 最后我们还介绍了Java数据报套接字通信模型以及相关代码实例。在这一节我们将会介绍TCP流套接字编程。

2024-06-06 10:55:28 1375

原创 JAVAEE之网络编程(1)_套接字、UDP数据报套接字编程及从代码实例

什么是网络编程呢?网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)。当然,即便是同一个主机,只要是不同进程,基于网络来传输数据,也属于网络编程。

2024-06-04 16:38:20 1184

原创 JAVAEE之网络初识_协议、TCP/IP网络模型、封装、分用

网络分层模型一般有。

2024-06-03 19:02:27 1013 1

原创 JAVAEE之文件IO_数据流概念,字节流:InputStream、OutputStream,字符流:reader、writer,及实例代码

 顾名思义,I 表示input,O 表示output,也就是输入输出流,主要是在程序与文件之间,用于传输数据的通道。既然要传输数据,那么我们需要理解文件和程序之间哪种方向的传输是输入流,哪种传输作为输出流?我们可以举一个例子,如下图所示: IO 流是 Java IO 中的核心概念。流是在概念上表示无穷无尽的数据流。IO 流连接到数据源或数据的目的地,连接到数据源的叫输入流,连接到数据目的地的叫输出流。Java 程序不能直接从数据源读取和向数据源写入,只能借助 IO 流从输入流中读取数据,向输出流中写入数

2024-05-31 16:11:40 909

原创 JAVAEE之多线程进阶(2)_ CAS概念、实现原理、ABA问题及解决方案

CAS全称Compare and swap,字面意思:”比较并交换“,它是一条 CPU 并发原语,用于判断内存中某个值是否为预期值,如果是则更改为新的值,这个过程是原子的。全称 Compare and swap, 即 “比较并交换”. 相当于通过一个原子的操作, 同时完成 “读取内存, 比较是否相等, 修改内存” 这三个步骤. 本质上需要 CPU 指令的支撑。

2024-05-29 11:42:44 1640 1

原创 JAVAEE之线程多进阶(1)_常见的锁策略

每次去读写数据都会冲突,每次在进行数据读写时都会上锁(互斥),保证同一时间段只有一个线程在读写数据。当线程冲突严重时,就需要加锁,来避免线程频繁访问共享数据失效带来的CPU空转问题。

2024-05-28 11:43:24 1011

原创 JAVAEE之线程(10)_线程池、线程池的创建、实现线程池

线程池顾名思义是由多个线程所组成,作用就是减少线程的建立与销毁,与数据库连接池相同概念,为了减少连接与释放,从而降低消耗提升效率。

2024-05-25 18:51:08 956

原创 Java数据结构之反射_反射的概念、相关类、反射实例

Java的反射(reflection)机制是在运行状态中,;,既然能拿到,那么我们就可以修改部分类型信息;

2024-05-23 20:36:45 765

原创 JavaEE之线程(9) _定时器的实现代码

以上就是今天要讲的内容,本文仅仅简单介绍定时器的使用场景,标准库中的定时器,定时器的实现代码。

2024-05-21 22:03:09 848

原创 JavaEE之线程(8)_阻塞队列、消费者模型、阻塞队列的实例代码

以上就是今天要讲的内容,本文仅仅简单介绍了什么是阻塞队列,生产者消费者模型,并且介绍了标准库中的阻塞队列,以及阻塞队列的具体实现代码。

2024-05-20 19:20:13 934

原创 JavaEE之线程(7)_单例模式(设计模式概念、单例模式优点、懒汉、饿汉模式)

我们只介绍单例实现方式的饿汉模式、懒汉模式两种方式,其他单例模式的内容可以通过网络资源进行查阅。以上就是今天要讲的内容,本文仅仅简单介绍了设计模式的概念,什么是单例模式?包括懒汉模式和饿汉模式,并写出了相应的参考代码。最后,对不同实现方式的单例模式进行了总结。

2024-05-19 18:32:20 1048

原创 JavaEE之线程 (6)—— 等待方法wait 和唤醒方法notify、notifyAll

以上就是今天要讲的内容,本文仅仅简单介绍了等待方法wait、唤醒方法notify、notifyAll。

2024-05-15 19:47:49 1417

原创 JavaEE之线程(5)——Java内存模型、内存可见性、volatile关键字

以上就是今天要讲的内容,在并发三特征的可见性中,volatile通过新值立即同步到主内存和每次使用前从主内存刷新机制保证了可见性。通过禁止指令重排序保证了有序性。无法保证原子性;synchronized关键字通过lock和unlock操作保证了原子性,通过对一个变量unlock前,把变量同步回主内存中保证了可见性,通过一个变量在同一时刻只允许一条线程对其进行lock操作保证了有序性。

2024-05-14 20:44:26 794

原创 JavaEE之线程(4)——线程安全、线程安全的原因,synchronized关键字

我们把一段代码想象成一个房间,每个线程就是要进入这个房间的人。如果没有任何机制保证,A进入房间之后,还没有出来;B 是不是也可以进入房间,打断 A 在房间里的隐私。这个就是不具备原子性的。那我们应该如何解决这个问题呢?是不是只要给房间加一把锁,A 进去就把门锁上,其他人是不是就进 不来了。这样就保证了这段代码的原子性了一条 java 语句不一定是原子的,也不一定只是一条指令从内存把数据读到 CPU进行数据更新把数据写回到 CPU不保证原子性会给多线程带来什么问题。

2024-05-13 21:32:45 1096

原创 JavaEE之线程(3)_线程的开始、中断、等待、休眠线程、线程的状态

好啦!以上就是今天要讲的内容,本文介绍了Thread类的start( )方法、线程的的中断、等待一个线程join( )、获取当前线程的引用,休眠当前线程,以及线程的引用。在本栏的下一节我们将会继续介绍Thread中重点内容——线程安全。

2024-05-10 15:50:43 1180

原创 JAVAEE之线程(2)_创建线程的五种方式、Tread类的常见构造方法和属性

好啦!以上就是本节所讲的内容,包括五种不同的创建线程的方式,通过继承 Thread 类创建线程实现 Runnable 接口创建线程通过匿名内部类创建 Thread 子类对象通过匿名内部类创建 Runnable 子类对象通过lambda 表达式创建 Runnable 子类对象此外,我们还介绍了Tread类的常见构造方法和常见属性,

2024-05-07 09:12:08 1412

原创 JavaSE_抽象类(抽象类概念、语法、、特性、作用)

基本概念:在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。比如:矩形、三角形、圆形都是图形,因此和Shape类的惯性应该是继承关系虽然图形图Shape中也存在draw的方法,但由于Shape类并不是具体的图形,因此其内部的draw方法实际是没有办法实现的由于shape类没有办法描述一个具体的图形,导致其draw(方法无法具体实现,因此可以将shape类设计为“抽象类”。

2024-05-06 16:41:20 583

原创 JavaE之线程(1)_概念、线程和进程的区别,代码实例

今天我们介绍了什么是线程、为什么采用线程,线程的进程的区别,在下一节我们将详细介绍如何创建线程。

2024-05-04 19:26:41 582

原创 JavaEE_操作系统之进程(计算机体系,,指令,进程的概念、组成、特性、PCB)

简单介绍了计算机体系结构、指令是CPU上执行命令的最小单元,以及进程是操作系统执行任务的基本单元,也是分配资源和调度的基本单元

2024-05-01 19:03:01 21

原创 MySQL数据库基础(数据库的基本操作、常用的数据类型、表的相关操作)

显示– 创建– 使用use xxx;– 删除INT:整型DECIMAL(M, D):浮点数类型VARCHAR(SIZE): 字符串类型TIMESTAMP:日期类型3.表的相关操作– 查看 show 表;– 创建 create table 表名(字段1 类型1, 字段2 类型2,… );–删除 drop talbe 表名;

2024-04-28 20:01:59 664

原创 数据库介绍(Mysql安装)

文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便数据库存储介质:磁盘 、内存为了解决上述问题,专家们设计出更加利于管理数据的软件一一数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。今天我们介绍了什么是数据库,关系型数据库和非关系型数据库的区别,以及MySQL的安装步骤。

2024-04-28 19:03:50 668

原创 JavaSE_类对象和方法的继承(继承概念、成员访问、super关键字)

关键字:super和this都是Java中的关键字只能在类的非静态方法中使用,用来访问非静态成员方法和字段在构造方法中调用时,必须是构造方法中的第一条语句,并且不能同时存在;不同点this是当前对象的引用,当前对象即调用实例方法的对象,super相当于是子类对象中从父类继承下来部分成员的引用在非静态成员方法中,this用来访问本类的方法和属性,super用来访问父类继承下来的方法和属性。

2024-04-26 18:20:36 1279 1

原创 环境散射通信技术(AmBc)

AmBC 技术的发展为解决频谱资源短缺和设备续航能力不足提供了可行性方案。利用AmBC 技术,被动式反射设备可以从周围环境的射频信号中吸收能量实现电路激活,通过切换天线阻抗改变反射信号的幅度和相位实现信息传输。相比于传统的主动式通信技术,AmBC 技术不需要高功耗的主动式射频模块和专用的射频激励、通信载波,进而能够提高通信能量效率,满足物联网设备低功耗、长续航的需求。

2024-04-23 11:47:04 904

原创 类和对象(2)——封装(封装的概念、包、staic)

将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行 交互。

2024-04-22 19:21:32 1096 1

原创 JAVA_类和对象(1)

基本概念:类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能。类的定义格式在java中定义类时需要用到class关键字// 创建类field;// 字段(属性) 或者 成员变量method;// 行为 或者 成员方法 }其中,class为定义类的关键字,ClassName为类的名字, { }中为类的主体。类名采用大驼峰定义。比如定义一个类// 狗的属性System.out.println(name + ": 说话");// 人的行为。

2024-04-16 17:21:53 1033

原创 数据结构 (JAVA):链表(2)_双向链表(构造、头插、尾插、中间插入、删除等操作及实现代码)

双向链表在于Link类中,多了一个Pre前驱链接,相对于单链表只有next链接,需要弄清楚前驱和后驱的链接关系可以选择固定headt和last节点,插入或者删除first或者last节点,只需要修改2个链接在链表中间插入链接,需要修改4个链接(第一步一定是把要插入的节点先连接上);在链表中间删除,只需要修改2个链接,一定要通过画图来更好的理解链接的关系。

2024-04-13 19:33:20 1137

原创 JAVASE_java中的String类方法

java.lang.String类提供了许多用于在 Java 中操作字符串的内置方法。借助这些方法,我们可以对String对象进行查找、拆分、比较、转换字符串等操作。

2024-04-10 21:27:19 1025 1

原创 排序算法2:选择排序(Selection Sort)直接选择排序、堆排序

以上就是今天要讲的选择选择的相关内容:其中,直接选择排序是表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间。而堆排序不同于其他排序算法,它利用了完全二叉树的性质进行排序。

2024-04-07 21:44:45 473

原创 数据结构_栈和队列(栈和队列的概念、实现代码、顺序队列假溢出、循环队列)

数据结构的栈和队列的应用非常的多,这里只是简单介绍了栈和队列的基本概念,栈:先进后出;队列:先进先出。

2024-04-06 16:39:19 1044 1

原创 排序算法1:插入排序(Insertion Sort)直接插入排序、希尔排序

2024-04-03 21:29:01 598 1

原创 JAVA中八种基本数据类型(包装类型、类型转换、类型提升)

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。概念:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。需要将字符串和整形数字之间进行转换。

2024-04-03 16:49:53 635 1

原创 数据结构_顺序表、链表(ArrayList、LinkedList的介绍、区别、增删查找等相关操作实现代码)

 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 链表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。在集合框架中,ArrayList是一个普通的类,实现了List接口注意:扩容检测是否

2024-03-31 18:35:50 1342 1

原创 数据结构_优先级队列(堆的性质、调整、创建、插入、删除及实现代码)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-03-28 20:33:02 1457 1

原创 数据结构_map、set、哈希表(概念、方法、冲突、代码实现)

Map是一个接口类,该类没有继承自Collection,该类中存储的是结构的键值对,并且K一定是唯一的,不能重复。

2024-03-26 12:30:33 922

原创 数据结构_map and set (1)搜索树

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-03-22 18:26:24 660

原创 数据结构_二叉树(性质、相关操作及实现代码)

/定义一个节点//左节点//右节点} }

2024-03-20 15:17:15 1174

原创 数据结构_排序(插入、选择、交换、归并)概念及实现代码

 基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。 时间复杂度:O(N^2) ,最好情况下O(N);空间复杂度为O(1);稳定 数据越有序时,排序越快 ,适用于待排序序列,基本已经趋于有序2、希尔排序 希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成多个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。当到达=1时,所有记录在统一

2024-03-19 19:09:48 459

空空如也

空空如也

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

TA关注的人

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