求最少需要多少场赛跑,可以求出其中跑的最快的三头猪。
(最少多少场可以百分百保证求出正确结果)
答案: 9场。
堆栈问题
有如下一个类
public class Bar
{ public int member;
}
请问,当这个类实例化以后,其成员member,它存储在堆上,还是栈上?
并说明理由。
答案:堆上。
栈上只有临时的东西,持久化的东西在堆上。
如果成员是new的,在栈上的只是引用,成员本体是在堆上的。
GC 垃圾回收,频繁的垃圾回收会降级运行时的性能。
什么时候用到垃圾回收呢? 当我们开辟了内存空间,后来这个引用失效,垃圾回收开始起作用。
知道堆栈的存储位置,有助于进一步了解GC的机制。
如果在运算中可以解决的值,就不要定义为成员变量,直接在运算中 临时算,算完就行了,这些都是值类型,在栈上就消失了。
小型的类可以使用struct而不是class,但是struct的复制是挺慢的,有时候甚至是需要主动的用空间换取时间。
答案:使用泛型更好
可变参数列表的实质是什么?
将传进来的参数 变成一个数组,并传入函数当中。
在此过程中,产生了一个新的数组。 在这个过程中就new了这个数组,new 就是一个GC。
其中还有隐式类型转换