01、方法参数传递机制 1.方法参数传递机制:int[ ] arr 和 int a 作为方法的参数,有什么不一样呢? 02、Upcasting向上转型 2.Upcasting向上转型:Pet p = new Cat(), 当发生了向上转型之后,p能够调用哪些方法呢,执行效果应该如何查看呢? 03、随机函数 3.随机函数:如何利用随机数函数取到一个区间[low,high-1] 上的所有整数(包含端点)? 04、Binary search 算法 4.Binary search 算法:利用binary search 在数组中查找任意数字k,那么最少需要查找多少次肯定能找到。 05、字符串的比较 5.字符串的比较:compareTo(), == 和equals分别比较的是什么? 看一看 关于AP计算机上面的问题,你都做对了么? 这几个问题在AP计算机中出现的比较高频,并且容易出错,在这里我们给大家详细解答一下。 AP计算机易错点详细解答 📚1.第一题涉及了方法参数的传递机制。 在Java中,所有的数据分为基本数据类型和引用数据类型,这两种数据类型在作为方法的参数有所不同。 对于基本数据类型,参数传递机制时值传递(value passing),这意味着参数和主函数中的变量是相互独立的,所以即便在方法中,参数的值被修改了,也不会影响主函数中的 变量的值; 对于引用数据类型来说,参数的传递机制是地址传递(address passing),这意味着参数和主函数中的对应的变量指向同一个地址,本质上是同一个内存空间。当参数在函数中被改变,那么相应的主函数中的变量也会改变。 int []arr是引用数据类型,int a中的a是基本数据类型。但是也存在arr作为参数传到函数中,也有可能会被赋予新的地址,那么此时参数arr和主函数中的数组就是相互独立的。 📚2.当发生向上转型的时候,需要区别编译类和运行类,赋值号左边的Pet类(父类)是编译类,赋值号右边的是Cat类(子类)。 在向上转型前提下,是否能够通过编译看编译类是否具有该方法,具体的执行效果需要先看执行类是否包含该方法, 如果包含,那么执行子类中该方法的效果。 如果没有,那么就去父类中找该方法,执行父类中该方法的效果。 📚3.随机函数Math.ramdon()是用来返回一个在0和1之间的小数,含0不含1。 对于任意一个区间[low, high-1]之间的整数,我们只需要利用公式(int)(high - low) * Math.random() + low 就可求出,不要忘记强制转换成(int)类型的数。 📚4.Binary Search通常在选择题中被考察。 对于在长度为n的数组中查找任意一个数字k,对于最少查找次数m满足 2m-1 < n <= 2m 即可。 📚5.字符串的比较在AP CSA中是肯定会出现的内容,只要区别这三种比较字符串的方式即可。 a)str1.compareTo(str)用于比较字符串大小,返回的是两个字符串的差值; b)str1 == str2 比较的是两个字符串的地址,比较结果取决于字符串的初始化方式 c)str1.equals(str2)比较的是两个字符串的内容,如果两个字符串的值一样,那么结果为true,否则为false。
📚1.第一题涉及了方法参数的传递机制。 在Java中,所有的数据分为基本数据类型和引用数据类型,这两种数据类型在作为方法的参数有所不同。 对于基本数据类型,参数传递机制时值传递(value passing),这意味着参数和主函数中的变量是相互独立的,所以即便在方法中,参数的值被修改了,也不会影响主函数中的 变量的值; 对于引用数据类型来说,参数的传递机制是地址传递(address passing),这意味着参数和主函数中的对应的变量指向同一个地址,本质上是同一个内存空间。当参数在函数中被改变,那么相应的主函数中的变量也会改变。 int []arr是引用数据类型,int a中的a是基本数据类型。但是也存在arr作为参数传到函数中,也有可能会被赋予新的地址,那么此时参数arr和主函数中的数组就是相互独立的。 📚2.当发生向上转型的时候,需要区别编译类和运行类,赋值号左边的Pet类(父类)是编译类,赋值号右边的是Cat类(子类)。 在向上转型前提下,是否能够通过编译看编译类是否具有该方法,具体的执行效果需要先看执行类是否包含该方法, 如果包含,那么执行子类中该方法的效果。 如果没有,那么就去父类中找该方法,执行父类中该方法的效果。
📚1.第一题涉及了方法参数的传递机制。 在Java中,所有的数据分为基本数据类型和引用数据类型,这两种数据类型在作为方法的参数有所不同。 对于基本数据类型,参数传递机制时值传递(value passing),这意味着参数和主函数中的变量是相互独立的,所以即便在方法中,参数的值被修改了,也不会影响主函数中的 变量的值; 对于引用数据类型来说,参数的传递机制是地址传递(address passing),这意味着参数和主函数中的对应的变量指向同一个地址,本质上是同一个内存空间。当参数在函数中被改变,那么相应的主函数中的变量也会改变。