- 博客(8)
- 收藏
- 关注
原创 Java回顾:编译时类型和运行时类型
通过运行时类型确定具体调用哪个方法的实现(方法重写时),实现 “同一接口,不同实现”。编译时类型决定了变量在编译阶段能调用哪些方法(即该类型的接口或父类中声明的方法)。编译器通过编译时类型检查代码是否符合语法规则和类型约束,避免明显的类型错误。泛型依赖编译时类型实现类型参数的静态检查,确保类型安全。),需通过运行时类型判断具体类型。例如从集合中取出元素时(如。
2025-05-18 17:53:09
333
原创 Java回顾:匿名内部类
匿名内部类是 Java 中一种灵活的语法糖,它允许你在需要的地方就地实现接口或继承类,避免创建大量冗余的命名类。创建一次性使用的实现类。简化事件处理、回调函数等场景。避免代码中出现过多的命名类。但在 Java 8 及以后,对于函数式接口,推荐使用更简洁的 Lambda 表达式替代匿名内部类。
2025-05-18 16:13:31
138
原创 快速排序法选择左边为基准数字时为什么要从右边开始
选择最左边元素为基准数时,是为了保证两边最终相遇时的数是小于基准数的,(最终换到最左边)。在进行是假如是左先动,一种情况是j动碰i此时i的值是肯定比基准数大。另外一种情况是i动碰j,此时j也是比基准数大的,因为上次的交换...
2021-11-23 16:41:05
705
原创 关于c语言多维数组的指针的理解
1.在数组中a=&a[0] (该式子对于一维数组同样成立)a[0]=&a[0][0]2.并且因为a的值仅仅在数值上等于&a[0][0] (为什么说仅仅在数值上等于,原因一会在下面说明)但是a=a=a[0]=&a[0][0]但并不意味着a=a[0][0]a的值只需要考虑它等于a[0]的地址即可可以有以下理解方式:a[0]的地址就是整个二维数组的地址,a[0][0]的地址代表了第一行的地址而a[0]比较懒,他的的地址名是直接跟a[0][0]相同,在寻找时计算机并没
2021-11-20 17:07:37
161
原创 c语言打印沙漏
#include<stdio.h>int main(){ int num,i,j,k,a=3,sum=1,end; char sym; scanf("%d %c", &num,&sym); if (num == 0) printf("0");//讨论0的情况 else { while (sum + 2*a <= num) { sum = sum + 2*a; a += 2; } end = num - sum; if (a
2021-11-17 01:00:50
1680
原创 为什么指针变量做形参可以改变实参的数据
形参不能传任何东西给实参,实参传过去的东西都是一个副本!!!下面以一个交换数据的被调函数片段为例在指针变量由实参传递给形参时传过去的实际是指针变量的值,即一个地址,在t=*p1*p1=*p2*p2=t的过程中实际是通过找到指针指向的地址进行改变数据,因为电脑中的每个地址都是不一样的,即使在函数中,一个地址的副本指向的永远和原地址指向的数据相同。而在另一种情况t=p1p1=p2p2=t中,他改变的是传过来的的副本的地址,因此,它仅仅改变了函数的形参指针所指向的数据,但是形参指针在函数调用
2021-11-14 00:44:58
2203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人