集合

面试题:请说明Comparable和Comparator接口的区别

排序逻辑:Comparable排序逻辑必须在待排序对象的类中,故称之为自然排序

                  Comparator排序逻辑在另一个实现,故称之为比较器排序

排序方法:int compareTo(Object 01)

                 int compare(Object 01,Object 02)

接口所在包:java.lang.Comparable

                     java.util.Comparator

内部类:就是在一个类中继续定义一个类(好处就是方便内部类访问外部类的私有属性,如果要取得内部类对象需先实例化外部类对象)

静态内部类:使用static修饰的内部类就是静态内部类,静态内部类不依赖于外部类的对象存在,静态内部类可直接在外部类之外实例化

                                                  静态内部类不能访问外部类的非静态属性

                    (static修饰的变量和方法是静态变量和静态方法,静态变量和静态方法都不依赖于对象存在)

方法中的内部类:就是在方法中直接定义一个内部类,之后直接使用这个内部类对象的方法(jdk1.8之前如果要访问方法的参数和局部变量需要使用final修饰)

匿名内部类:要使用匿名内部类必须在抽象类或者接口的基础上实现(一般可以作为方法的参数传递,也可以在方法中直接定义)

对象的序列化与反序列化:

序列化:就是将内存中的对象转换成二进制之后进行传输到指定的文件,也可以在网络之间进行传输(需要使用的类"ObjectOutputStream")

反序列化:将序列化的文件中的内容再以对象的方式读取到内存中(需要使用到的类"ObjectInputStream")

transient关键字:在实现序列化对象的时候某些属性并不需要序列化,此时使用transient关键字修饰即可

本地方法栈和虚拟机栈的区别:二者作用很相似

虚拟机栈是为java方法服务的,本地方法栈是为native方法服务的(该本地方法无方法体,可以算抽象方法,具体实现是本地操作系统的c语言写的一些函数库方法实现)

虚拟机栈:区域线程私有,生命周期和线程相同(每个方法从执行到执行完毕就是一个入栈与出栈的过程),保存局部变量(方法中定义的变量或者方法的参数)

堆:区域线程共享(创建的实例对象和数组都需要在堆内存开辟空间),是gc重要处理的一个区,所以也被成为"GC堆"

方法区:区域线程共享(主要保存已经加载到jvm中的类的信息、常量、静态常量等等)

注解的配置使用:

注解配置普通的servelt的映射路径(@WebServlet)

注解配置过滤器(@WebFilter)

注解配置监听器(@WebListener)

原文地址:https://www.cnblogs.com/yhgn/p/10752916.html