-
什么是 java 序列化?什么情况下需要序列化?
序列化:将 Java 对象转换成字节流的过程。
反序列化:将字节流转换成 Java 对象的过程。
当 Java 对象需要在网络上传输 或者 持久化存储到文件中时,就需要对 Java 对象进行序列化处理。
如果某个类能够被序列化,其子类也可以被序列化。声明为static和transient类型的成员数据不能被序列化。因为static代表类的状态, transient代表对象的临时数据。
-
普通类和抽象类有哪些区别?
抽象类不能被实例化
抽象类可以有抽象方法,抽象方法只需申明,无需实现
含有抽象方法的类必须申明为抽象类
抽象的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类
抽象方法不能被声明为静态
抽象方法不能用private修饰
抽象方法不能用final修饰
-
接口和抽象类的区别:
1.语法层面上的区别
1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。
-
接口的设计目的,是<mark style="box-sizing: border-box; background-color: rgb(211, 212, 14); color: rgb(0, 0, 0);">对类的行为进行约束</mark>(更准确的说是一种“有”约束,因为接口不能规定类不可以有什么行为),也就是提供一种机制,可以强制要求不同的类具有相同的行为。它只约束了行为的有无,但不对如何实现行为进行限制。
而抽象类的设计目的,是<mark style="box-sizing: border-box; background-color: rgb(211, 212, 14); color: rgb(0, 0, 0);">代码复用</mark>。当不同的类具有某些相同的行为(记为行为集合A),且其中一部分行为的实现方式一致时(A的非真子集,记为B),可以让这些类都派生于一个抽象类。在这个抽象类中实现了B,避免让所有的子类来实现B,这就达到了代码复用的目的。而A减B的部分,留给各个子类自己实现。正是因为A-B在这里没有实现,所以抽象类不允许实例化出来(否则当调用到A-B时,无法执行)。
-
-
多态的原理是什么?
父类引用指向子类实现。程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实现对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。
本质上多态分两种:
编译时多态(又称静态多态)--- 方法重载
运行时多态(又称动态多态)--- 父类引用指向子类实现,实现接口或者继承父类
-
并行和并发有什么区别?
并行:多个CPU同时做多个事情 ---同一时刻发生
并发:一个CPU交替做多个事情---同一时间段发生
-
线程和进程的区别
进程:进程是资源分配的最小单位。每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1—n个线程
线程:线程是cpu调度的最小单位。同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。
-
守护线程是什么?
线程分2种,
1、守护线程,比如垃圾回收线程,就是最典型的守护线程。
2、用户线程,就是应用程序里的自定义线程。
daemon Thread 专门用于服务其他的线程,如果其他的线程(即用户自定义线程)都执行完毕,连main线程也执行完毕,那么jvm就会退出(即停止运行)——此时,连jvm都停止运行了,守护线程当然也就停止执行了。
-
线程有几种状态及转化关系?
NEW:Thread state for a thread which has not yet started.
RUNNABLE:Thread state for a runnable thread. A thread in the runnable state is executing in the Java virtual machine but it may be waiting for other resources from the operating system such as processor.
BLOCKED: monitor lock. synchronized Object#wait()
WAITING:Object#wait() Thread.join LockSupport#park()
TIMED_WAITING:
TERMINATED:
看一下:java.lang.Thread.State
[图片上传失败...(image-5e6e2b-1640485400106)]
-
线程的面试题:https://blog.csdn.net/qq1404510094/article/details/80724038
-
线程的面试题有点难度:https://www.cnblogs.com/java1024/p/13390538.html
-
线程池:
状态:https://blog.csdn.net/qq_24384579/article/details/93199116
有空看看:https://blog.csdn.net/qq_28802119/article/details/102587720
-
jsp 的四个作用域?
https://blog.csdn.net/koches/article/details/7785438
所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效。4个JSP内置对象的作用域分别为:application、session、request、page 。JSP内置对象作用域表如下:
名称 作用域 application 在所有应用程序中有效 session 在当前会话中有效 request 在当前请求中有效 page 在当前页面有效 JSP的 9个内置的对象?