Collection.sort(List) 默认升序排列;
Collection.shuffle(List) 打乱随机排序;
List.isEmpty() 判断List为不为空,返回值为boolean;
看了知乎上安卓面试题,记下了点Java方面的题目:
- 内部类是定义在类里面的类,内部类嵌入的类称为外部类;
- static修饰的内部类称为静态内部类;
- 用new创建的内部类叫匿名内部类;
- 内部类持有对外部类的引用,因为内部类的产生依赖于外部类,持有的引用是类名.this;
- equals()是比较两个实例或变量所指向的内存空间里的值是否相等;
- ==是比较两个实例或变量所指的内存空间是否相等;
- try,catch,finally里 try中的代码最先执行,如果出现异常,则执行catch中的代码,finally中的代码最后一定执行;
- Object的几种共用算法:1.方法equals 比较两个对象是否相等;2.方法clone 对对象进行拷贝;3.方法getClass 返回当前对象相关的Class对象;4. 方法notify、notifyAll、wait都是用来对给定对象进行线程同步的;
- String、StringBuffer和StringBuilder的区别:1、类型String和类型StringBuffer的主要性能区别在于String是不可变的对象;2.StringBuffer和StringBuilder底层是char[]数组实现的;3.StringBuffer是线程安全的(同步),StringBuilder是线程不安全的(异步);
- Java的四种引用:1.强引用:如果一个对象是强引用,那么他不会被垃圾回收器回收,即使内存空间不足,JVM也不会回收他,而是抛出OutOfMemoryError错误,使程序异常终止。如果想中断强引用和某个对象之间的关联,可以显式的将引用赋值为null,这样JVM就会在合适的时间回收该对象;2.软引用:在使用软引用时,内存空间足够,才能被使用,内存空间不足,软引用会被垃圾回收器回收;3.弱引用:具有弱引用的对象的生命周期会更短,当JVM进行垃圾回收时,发现弱引用的对象,不论内存空间是否充足,都会回收弱引用。不过垃圾回收器的线程的优先级很低,不一定能迅速发现弱引用对象;4.虚引用:形同虚设,如果一个对象仅持有虚引用,相当于没有引用,那么他无论在什么时候都有可能被垃圾回收器回收;
- 介绍垃圾回收机制:1.标记回收法:遍历对象图记录可达到的对象,以便于删除不可达到的对象,通常使用单线程工作并且可能会产生内存碎片;2.标记-压缩法:前期与第一种方法相同,只是多了一步,将所有存活的对象压缩到内存的另一端,把内存碎片合成一大块可以再使用的内存区域,提高了内存使用率;3.
又开始看视频学习了!!!!
对象在栈内存,通过引用指向堆内存;有堆内存引用的对象称为实例化对象;一个对象只能指向一个堆内存地址,一个堆内存地址可以被多个对象指向。没有任何栈内存指向的堆内存叫做垃圾空间。