==和equals()的区别?
==:
比较基本类型:比较的是基本类型的值是否相同。
比较引用类型:比较的是引用类型的地址值是否相同。
equals():
比较引用类型,默认比较的是引用类型的地址值是否相同。
如果类重写了该方法,那就得按照重写后的规则进行比较。
栈和堆的区别?
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
优缺点:堆得优点就是可以动态分配内存大小,生存期也不必告诉编译器,因为它是在运行中动态分配内存的;缺点就是由于是在运行时动态分配内存的,所以读取速度较慢。
栈的优点就是读取速度快,运行完自动释放;缺点就是存在于栈中的数据大小及周期必须是确定的,缺乏灵活性。
|
|