- 博客(26)
- 收藏
- 关注
原创 事件处理与IO模型
服务器程序通常需要处理三类事件:I/O事件,信号及定时事件。所以,Reactor 可以理解为「来了事件操作系统直接通知,自己啥也不干,让子线程来处理读写」,而 Proactor 可以理解为「来了事件操作系统来处理,处理完再通知主线程」。这里的「事件」就是有新连接、有数据可读、有数据可写的这些 I/O 事件。这里的「处理」包含从驱动读取到内核以及从内核读取到用户空间。
2024-01-13 14:21:38
853
原创 两个头文件互相包含的问题
2、使用向前声明之后,在类定义之前,类是一个不完全类型(incompete type),即已知向前声明过的类是一个类型,但不知道包含哪些成员,所以在使用向前声明后,类定义前,只能定义指向该类型的指针及引用而不能使用该类成员。不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数。例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型。综上,安全的写法需要如下步骤。
2023-08-02 00:25:38
429
1
原创 Java -抽象与接口
十七、抽象 概述 在java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类没有方法体:public void eat(){}里面是空的,所以是没有方法体。 特点 抽象类和抽象方法必须使用abstract关键字进行修饰public abstract class 类名{}public abstract void eat();抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类抽象类不能实例化例如animal是一个抽象类,则an
2022-04-03 15:21:47
607
原创 Java - 多态
概述同一个对象,在不同时刻表现出来的不同时态。多态的前提和体现 有继承/实现关系 有方法重写 有父类引用指向子类对象 成员访问特点成员变量:编译看左边,执行看左边成员方法:编译看左边,执行看右边因为成员方法有重写,而成员变量没有,所以成员变量是左边的 优点与弊端优点:提高了程序的拓展性弊端:不能使用子类的特有功能 使用方法定义方法时,使用父类型作为参数,将来在使用时使用具体的子类型参与操作Opreator.java public void u
2022-04-03 15:18:54
441
原创 Java - 修饰符
包概述就是文件夹,作用是对类进行分类管理定义格式格式:package 包名; (多级包用 . 分开)范例:如果我的class放在 ./test/animal 则导入格式为 package test.animal;带包的Java类编译与运行手动建包按照以前的格式编译Java文件 javac HelloWorld.java手动创建包 在E盘建立文件夹test,然
2022-04-03 15:17:21
74
原创 Java - 继承
概述继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法继承的格式public class 子类名 extends 父类名 {}范例 : public class Zi extends Fu { } ,其中Fu是父类,也被称作基类、超类Zi是子类,也被称作派生类继承中子类的特点子类可以有父类的内容子类还可以有自己特有的内容继承的好处和弊端好处提高了代码的复用性(多个类相同的成员可以放到同一个类中)提高了代码的维护性(如果方法的
2022-04-03 15:15:28
102
原创 Java - 集合
概述提供一种存储空间可变的存储模型,存储的数据容量可以发生改变集合类有很多,其中包括ArrayListArrayList ,其中是一种特殊的数据类型,泛型 ArrayList的构造方法public ArrayList() :创建一个空的集合对象ArrayList<String> array = new ArrayList<>();ArrayList<String> array = new ArrayList<String>();//这种方
2022-04-03 15:13:29
73
原创 Java - 类与对象
概念类是对现实生活中一类具有共同属性和行为的事物的抽象。类的特点类是对象的数据类型。类是具有相同属性和行为的一组对象的集合。对象的概念既表示客观世界问题空间中的某个具体的事物,又表示软件系统解空间中的基本元素。对象的属性:对象所具有的各种特征,每个对象的每个特征都拥有特定的值对象的行为:对象能够执行的操作 类的定义类是Java程序的基本组成单位类的组成:属性和行为属性:在类中通过成员变量来体现(类中方法外的变量)行为:在类中通过成员方法来体现(和前面的方法相比去掉了stati
2022-04-03 15:11:09
6953
1
原创 Java - 方法与重载
方法方法概述方法是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集。注意:方法必须创建才能使用,该过程称之为方法定义。方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用。方法定义public static 返回值类型 方法名(参数){ //方法体 return 数据;}//无返回值public static void getNumber(int number1,int number2){ //method //return;}
2022-04-03 15:01:44
56
原创 Java - 数组
Java 数组有两种定义格式1、 数据类型[] 变量名int[] arr定义了一个int类型的数组,数组名叫arr2、 数据类型 变量名[]int arr[]定义一个int类型的变量,变量名是arr数组两者都一样,但更推荐用第一种...
2022-04-03 14:53:52
84
原创 Java - Random随机数
产生一个随机数步骤:1、导包import java.util.Random;2、创建对象Random r = new Random();//其中变量名为r,可以改变3、获取随机数int number = r.nextInt(10);这是在获取[0,10)内的数(不包括10)
2022-04-03 14:52:19
306
原创 Java-运算符
运算符字符的“+”操作char a = 'a';int b = 10;System.out.println(a+b);//107这是因为’a’的ASCII码为97char c = a+b;//这样是错误赋值错误因为算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。所以在第一个例子中,print出来的是自动转为int 型int c = a+b;//正确做法**注意!**没有System.out.println(“i:”,i);//没有逗号这种操作!只能
2022-03-03 13:39:56
269
原创 Java开发相关问题
开发运行流程编写程序 -> 编译程序 -> 运行程序编写完HelloWorld.java,在命令提示符窗口中输入:javac HelloWorld.java (编译)java HelloWorld (运行这个类)**注意!**public class (名字){} ,该名字需要跟文件名相对应。注释单行注释//注释信息多行注释/ *注释信息 */文档注释/**注释信息 */关键字就是被JAVA语言赋予了特殊含义的单词。特点:关键字的字母全部小写。常用的代码编辑
2022-03-03 13:36:27
74
原创 Java实现的小游戏
该小游戏的内容是让玩家猜数字,无论猜对猜错都算为一次,只能玩三次,三次过后就要充钱。public static void main(String[] args) throws IOException { //前期准备工作 Properties prop = new Properties(); FileReader fr = new FileReader("idea_test/test3.txt"); prop.load(fr); int play_time = I
2022-02-21 11:50:43
3109
原创 关于不死神兔的思考
第一次看到这个题虽然想到了递归,但比较麻烦。题目序列为 1 1 2 3 5 8 13 …public static int func1(int fnum,int snum,int stop_num,int now_num){ if(stop_num == now_num) //fnum和snum代表前两个数 return snum; int num = fnum+snum; now_num++; return func1(snum,num,stop_
2022-02-18 13:35:07
115
原创 静态队列 -note
#include <stdio.h>#include <stdlib.h>#define Maxsize 10typedef struct { int data[Maxsize]; int rear, front; //int size;//标定数量版 int tag; //标定上一次操作}Sequence;bool InitSq(Sequence &L){ L.rear = 0; L.front = 0; //L.size = 0;
2021-06-01 19:51:35
75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人