- 博客(22)
- 收藏
- 关注
原创 queue中的offer方法与add方法的区别
总结来说,add()方法在队列满时会抛出异常,而offer()方法在队列满时会返回false。在Java中,Queue接口提供了两种向队列中添加元素的方法:add()和offer()。通常建议使用offer()方法,因为它更健壮,允许程序根据插入操作的成功与否采取相应的措施,避免因队列满而导致的异常和程序崩溃1。offer():如果队列已满,offer()方法不会抛出异常,而是简单地返回false3。offer():是Queue接口自身定义的方法,更符合队列的插入操作语义1。
2024-12-23 19:41:26
842
原创 详解Java中clone方法的使用
通过上述步骤,我们可以在Java中正确地使用clone()方法来实现对象的克隆,并根据需要选择浅克隆或深克隆,以确保新对象与原对象之间的独立性和数据一致性。在Java中,对象的拷贝是一个常见的概念,它涉及到对象在内存中的复制和引用。深拷贝和浅拷贝是两种不同的拷贝方式,它们在对象复制时的行为和结果有所不同。深拷贝也会创建一个新对象,但与浅拷贝不同的是,深拷贝会将原对象的所有成员变量都复制一份,包括引用类型的成员变量所指向的对象。这样,新对象和原对象在内存上是完全独立的,对新对象的修改不会影响原对象。
2024-12-10 17:54:38
1295
原创 类变量与实例化对象的区别
总结来说,类变量是类级别的变量,所有对象共享同一份副本,而实例变量是对象级别的变量,每个对象拥有独立的副本。类变量是所有对象共有的,这意味着如果一个对象改变了类变量的值,那么所有其他对象访问这个类变量时都会得到改变后的值。实例变量则属于每个对象私有,每个对象都有自己的实例变量副本,一个对象改变其实例变量的值不会影响其他对象。实例变量则在创建每个对象时分别初始化,每个对象都有自己的实例变量副本,存储在不同内存位置。实例变量的生命周期则与对象的生命周期相同,从对象创建到对象销毁。实例变量只能通过实例对象访问。
2024-12-09 23:13:44
467
原创 Java中属性与成员变量的区别
属性通常是指通过getter和setter方法访问的成员变量,它们提供了一种封装机制,使得外部代码不能直接访问成员变量,而是通过方法来访问和修改。成员变量是定义在类中的变量,它们可以是public、private或protected等访问修饰符,并且可以在整个类中被访问和使用。
2024-12-05 14:58:58
246
原创 类和对象(2)
如这个代码块,其成员变量和构造函数在编译时,编译器会为这个类生成一个默认的构造函数(如果用户没有显式定义构造函数),并且在这个构造函数中添加对 myInt 和 myString 的初始化语句。构造方法里可以调用别的构造方法,如上this(1900,1,1),this()表示调用其他的构造方法,但要注意,这句代码必须放在构造方法的第一句,否则编译器会报错。构造方法(也称为构造器)是一个特殊的成员方法,名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。
2024-12-04 09:57:01
403
1
原创 类和对象(1)
这里对Students这个类进行了两次实例化,分别用student1,student2这两个引用变量来接收他们对应的引用(当创建一个对象时,同时也会创建一个指向该对象的引用,故而用引用变量来接收),这里的new关键字用于给创建的对象开辟空间。Java中的类相当于C语言中的结构体,不过跟高级一些,他不在是只能定义单纯的几个属性,还可以在里面定义方法(类似于C语言中的函数)这里的this的作用即是分清形参的属性和该类的属性,this只在本类中使用来特指是自己类的东西。2.使用 . 来访问对象中的属性和方法.
2024-12-04 00:27:27
358
1
转载 计算机网络基础知识总结
子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位。它和IP地址一样也是使用点式十进制来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。
2024-11-04 23:49:06
941
原创 杨辉三角的实现
那么我们就可以很容易的得出arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j],很多的这种一下子看不出的规律,我们都可以先写一个实例出来,然后就容易推导出来了。于是便在其每行的第一个元素加入空格 ,因为我们n=10,最后一行最大的数为三位数,且我们要像左对其,所以我们用%-3d ,故最后一行的大小为2+4*10=42,第一行为2*9+3=21,刚好居中。我们可发现他每一行的数的个数即为他所对应的行数,且首项和尾项都为1,那么我们可以先用一个数来表示。
2024-10-06 11:06:03
747
原创 井字棋游戏
printf("选择错误,请重新选择\n");printf("坐标非法\n");printf("退出游戏\n");printf("电脑赢了\n");printf("玩家赢了\n");printf("电脑已完成下棋\n");printf("平局\n");printf("请选择:");printf("玩家下棋\n");
2024-10-02 21:28:30
583
原创 数组元素从小到大顺序排列(冒泡)
int main()int i = 0;int j = 0;for (j = 0;j < 9;j++)i < 9;i++)m < 9;m++)return 0;
2024-10-02 21:25:04
245
原创 了解递归,使用递归
在高中的时候,我们都学了数列,而这个题目,就可以运用到期中的等差数列的概念,我们知道,斐波那契数列的前几位为 1 1 2 3 5 8 13 21 34 55....,他的规律为前两位相加等于后一位,即an=an-1+an-2(这里除了a以外,其他都为a的下标),想到了这个,我们其实就可以得出上图的fe(n-2)+fe(n-1),剩下的便只是找最后相应的返回值了,如果不懂如何返回,可以看下面的一个另一个代码图。在使用递归之前,我们要知道两个要点,每次在用递归时都要在脑海中思考如何满足这两个条件。
2024-09-29 22:10:15
690
原创 递归(递推回归)
一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略。只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。1.存在限制条件,当满足这个限制条件的时候,递归便不再继续。程序调用自身的编程技巧称为递归( recursion )。递归(镜子里面有块镜子镜子里面有块镜子....)2.每次递归调用之后越来越接近这个限制条件。一个过程或函数在其定义或说明中有直接或间接。递归做为一种算法在程序设计语中广泛应用。递归的主要思考方式在于:把大事化小。
2024-09-27 21:36:41
234
原创 关于printf的链式访问打印结果的问题
因为printf的返回值与打印的字符数有关,再而第一个与第二个printf打印的分别为前一个printf的返回值,又因为第三个printf打印的为43,为两个字符,故第二个printf打印的为2,为一个字符,以此类推,故而最终打印结果为43 2 1 ,即4321.例: printf("%d", printf("%d", printf("%d", 43)));函数的返回类型不写的时候,默认是返回int类型。函数不可以嵌套定义但可以嵌套调用。该例的打印结果为4321.
2024-09-27 10:46:04
207
原创 打印出1000-2000年之间的所有闰年
return 1;elsereturn 0;int main()int y = 0;y <= 2000;y++)yeas(y);return 0;
2024-09-26 23:55:09
112
1
原创 猜数字小游戏
case 0: printf("退出游戏\n");printf("请选择:");default: printf("输入错误\n");printf("恭喜你,猜对了\n");printf("猜大了\n");printf("猜小了\n")printf("猜数字:");
2024-09-26 23:49:18
502
原创 交换两个变量的值
如果觉得难以理解,则可将其看为两个装着不同饮料的水杯和一个空水杯来进行进一步理解。例:int tmp=0;利用一个为初始为0的变量来进行。如要交换a与b变量的值。
2024-09-26 23:11:13
178
原创 【无标题】
seizeof的作用是求整个数组的大小,单位为字节,如 seizeof((arr)),这个扩号中的扩号放如所要求的数组名。函数的返回类型不写的时候,默认是返回int类型。函数不可以嵌套定义但可以嵌套调用。strlen的作用是求字符串的长度。
2024-09-26 22:07:35
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人