-
再聊聊UDP和TCP
所属栏目:[语言] 日期:2022-07-10 热度:166
TCP 是面向连接的传输协议,建立连接时要经过三次握手,断开连接时要经过四次握手,中间传输数据时也要回复 ACK 包确认,多种机制保证了数据能够正确到达,不会丢失或出错。 UDP 是非连接的传输协议,没有建立连接和断开连接的过程,它只是简单地把数据丢[详细]
-
介于UDP的服务器端和客户端
所属栏目:[语言] 日期:2022-07-10 热度:196
前面的文章中我们给出了几个 TCP 的例子,对于 UDP 而言,只要能理解前面的内容,实现并非难事。 UDP中的服务器端和客户端没有连接 UDP 不像 TCP,无需在连接状态下交换数据,因此基于 UDP 的服务器端和客户端也无需经过连接过程。也就是说,不必调用 list[详细]
-
socket缓冲区以及阻塞模式说明
所属栏目:[语言] 日期:2022-07-10 热度:64
在《socket数据的接收和发送》一节中讲到,可以使用 write()/send() 函数发送数据,使用 read()/recv() 函数接收数据,本节就来看看数据是如何传递的。 socket缓冲区 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。 write()/send()[详细]
-
bind 和connect 函数 绑定套接字并创立连接
所属栏目:[语言] 日期:2022-07-10 热度:134
socket() 函数用来创建套接字,确定套接字的各种属性,然后服务器端要用 bind() 函数将套接字与特定的 IP 地址和端口绑定起来,只有这样,流经该 IP 地址和端口的数据才能交给套接字处理。类似地,客户端也要用 connect() 函数建立连接。 下面的代码,将创[详细]
-
listen和accept函数 使套接字进入监听状态并响应客户端请求
所属栏目:[语言] 日期:2022-07-10 热度:89
对于服务器端程序,使用 bind() 绑定套接字后,还需要使用 listen() 函数让套接字进入被动监听状态,再调用 accept() 函数,就可以随时响应客户端的请求了。 listen() 函数 通过 listen() 函数可以让套接字进入被动监听状态,它的原型为: int listen(int[详细]
-
send recv 和write read 发送数据与接收数据
所属栏目:[语言] 日期:2022-07-10 热度:96
在 Linux 和 Windows 平台下,使用不同的函数发送和接收 socket 数据,下面我们分别讲解。 Linux下数据的接收和发送 Linux 不区分套接字文件和普通文件,使用 write() 可以向套接字中写入数据,使用 read() 可以从套接字中读取数据。 前面我们说过,两台计[详细]
-
Java创建一个学生类
所属栏目:[语言] 日期:2022-07-09 热度:128
创建一个表示学生的实体类 Student,其中有学生姓名、性别和年龄信息。要求使用属性来表示学生信息,最终编写测试代码。 首先定义一个名为 Student 的类,代码如下: public class Student { // 学生类 } 在类中通过属性定义学生、性别和年龄,代码如下:[详细]
-
Java成员方法的声明和调用
所属栏目:[语言] 日期:2022-07-09 热度:162
声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。类的各种功能操作都是用方法来实现的,属性只不过提供了相应的数据。一个完整的方法通常包括方法名称、方法主体、方法参数和方法返回值类型。 成员方法一旦被定[详细]
-
Java访问对象的属性和行为
所属栏目:[语言] 日期:2022-07-09 热度:171
每个对象都有自己的属性和行为,这些属性和行为在类中体现为成员变量和成员方法,其中成员变量对应对象的属性,成员方法对应对象的行为。 在 Java 中,要引用对象的属性和行为,需要使用点(.)操作符来访问。对象名在圆点左边,而成员变量或成员方法的名[详细]
-
Java对象的销毁
所属栏目:[语言] 日期:2022-07-09 热度:124
对象使用完之后需要对其进行清除。对象的清除是指释放对象占用的内存。在创建对象时,用户必须使用 new 操作符为对象分配内存。不过,在清除对象时,由系统自动进行内存回收,不需要用户额外处理。这也是 Java 语言的一大特色,某种程度上方便了程序员对内[详细]
-
Java用户修改密码
所属栏目:[语言] 日期:2022-07-09 热度:182
每一个应用系统都离不开用户模块。用户模块除了提供登录之外,还允许用户查看自己的信息和进行修改。本实例将创建一个用户类,然后再创建一个测试类调用用户类,实现修改密码的功能。 本实例的用户类非常简单,仅包含用户名和密码两个属性。 public class[详细]
-
Java注释 类 方法和字段注释
所属栏目:[语言] 日期:2022-07-09 热度:183
一个程序的可读性,关键取决于注释。如果一个程序想二次开发,要读懂前面的程序代码,就必须在程序中有大量的注释文档,所以对于一个优秀的程序员来说,学会在程序中适当地添加注释是非常重要的。 注释除了帮助别人了解编写的程序之外,还对程序的调试、校[详细]
-
Java访问控制修饰符详解
所属栏目:[语言] 日期:2022-07-09 热度:64
在 Java 语言中提供了多个作用域修饰符,其中常用的有 public、private、protected、final、abstract、static、transient 和 volatile,这些修饰符有类修饰符、变量修饰符和方法修饰符。本文将详细介绍访问控制修饰符。 在实际生活中,如果要获取某件物品[详细]
-
Java匿名对象
所属栏目:[语言] 日期:2022-07-09 热度:80
经过前面的学习,我们知道创建对象的标准格式如下: 类名称 对象名 = new 类名称(); 每次 new 都相当于开辟了一个新的对象,并开辟了一个新的物理内存空间。如果一个对象只需要使用唯一的一次,就可以使用匿名对象,匿名对象还可以作为实际参数传递。 匿名[详细]
-
Java创建对象详解 显式创建和隐含创建
所属栏目:[语言] 日期:2022-07-09 热度:167
对象是对类的实例化。对象具有状态和行为,变量用来表明对象的状态,方法表明对象所具有的行为。Java 对象的生命周期包括创建、使用和清除,本文详细介绍对象的创建,在 Java 语言中创建对象分显式创建与隐含创建两种情况。 显式创建对象 对象的显式创建方[详细]
-
Java this关键字详解 3种用法
所属栏目:[语言] 日期:2022-07-09 热度:113
this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用。 下面我们根据示例分别讲解 this 关键字的作用。 this.属性名 大部分时候,普通方法访问其他方法、成员变量时无[详细]
-
Java final修饰符说明
所属栏目:[语言] 日期:2022-07-08 热度:138
final 在 Java 中的意思是最终,也可以称为完结器,表示对象是最终形态的,不可改变的意思。final 应用于类、方法和变量时意义是不同的,但本质是一样的,都表示不可改变,类似 C# 里的 sealed 关键字。 使用 final 关键字声明类、变量和方法需要注意以下[详细]
-
Java main 办法
所属栏目:[语言] 日期:2022-07-08 热度:65
在 Java 中,main() 方法是 Java 应用程序的入口方法,程序在运行的时候,第一个执行的方法就是 main() 方法。main() 方法和其他的方法有很大的不同。 下面先来看最简单的一个 Java 应用程序 HelloWorld,我们将通过这个例子讲解 Java 类中 main() 方法的[详细]
-
Java办法的可变参数
所属栏目:[语言] 日期:2022-07-08 热度:166
在具体实际开发过程中,有时方法中参数的个数是不确定的。为了解决这个问题,在 J2SE 5.0 版本中引入了可变参数的概念。 声明可变参数的语法格式如下: methodName({paramList},paramTypeparamName) 其中,methodName 表示方法名称;paramList 表示方法的[详细]
-
Java创造方法
所属栏目:[语言] 日期:2022-07-08 热度:152
构造方法是类的一种特殊方法,用来初始化类的一个新的对象,在创建对象(new 运算符)之后自动调用。Java 中的每个类都有一个默认的构造方法,并且可以有一个以上的构造方法。 Java 构造方法有以下特点: 方法名必须与类名相同 可以有 0 个、1 个或多个参[详细]
-
Java查找个人信息
所属栏目:[语言] 日期:2022-07-08 热度:151
每个员工都会有自己的档案,主管可以查看在职员工的档案。使用 Java 创建一个员工实体类,然后通过构造方法创建一个名为王洁的员工,最后打印出员工档案信息。示例步骤如下。 (1) 创建 Person 类,在该类中定义个人基本信息属性,并定义一个带有参数的构造[详细]
-
Java析构方案
所属栏目:[语言] 日期:2022-07-08 热度:196
析构方法与构造方法相反,当对象脱离其作用域时(例如对象所在的方法已调用完毕),系统自动执行析构方法。析构方法往往用来做清理垃圾碎片的工作,例如在建立对象时用 new 开辟了一片内存空间,应退出前在析构方法中将其释放。 在 Java 的 Object 类中还[详细]
-
Java包 package 解说
所属栏目:[语言] 日期:2022-07-08 热度:189
在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也是一件很麻烦的事,尤其是一些同名问题的发生。有时,开发人员还可能需要将处理同一方面的问题的类放在同一个目录下,以便于管理。 为了解决上述问题,[详细]
-
Java运用自定义包
所属栏目:[语言] 日期:2022-07-08 热度:66
包的声明和使用非常简单,在了解基本语法之后,下面通过一个案例演示在 Java 程序中声明包,以及不同包之间类的使用。 1)创建一个名为 com.dao 的包。 2)向 com.dao 包中添加一个 Student 类,该类包含一个返回 String 类型数组的 GetAll() 方法。Studen[详细]
-
Java static关键字 静态变量和静态方式
所属栏目:[语言] 日期:2022-07-08 热度:173
在类中,使用 static 修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。 静态成员不依赖于类的特定实例,被类的所有实例共享,就是说 static 修饰的方法或者[详细]