ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## **1.ArrayList和Vector的区别,HashMap和Hashtable的区别。** 1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。  2) 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。 Hashtable和HashMap它们的性能方面的比较类似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。 ## **2. java 创建对象的几种方式** 1. 采用new 2. 通过反射 3. 采用clone 4. 通过序列化机制 前2者都需要显式地调用构造方法. 造成耦合性最高的恰好是第一种,因此你发现无论什么框架,只要涉及到解耦必先减少new的使用. ## **3. 在java中一个类被声明为final类型,表示了什么意思?** 在java中一个类被声明为final类型,表示这个类是不能有子类的,就是你不能用其他的类来继承这个类。 ## **4. Object中有哪些公共方法?** 1. `equals()` 2. `clone()` 3. `getClass()` 4. `notify(),notifyAll(),wait()` 5. `toString` ## **5. final 在 java 中有什么作用?** * final 修饰的类叫最终类,该类不能被继承。 * final 修饰的方法不能被重写。 * final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。 ## **6. 说说进程,线程,协程之间的区别** 简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程.进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高.线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位.同一进程中的多个线程之间可以并发执行. ## **7. JDK 和 JRE 有什么区别?** * JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 * JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,如果你需要编写 java 程序,需要安装 JDK。 ## **8. 简述一下Java中的异常处理** ​ 在Java中,所有的异常都有一个共同的祖先java.lang包中的Throwable类。 Throwable包含两个子类: **Exception(异常):** ​ 是程序本身可以处理的异常。Exception 类有一个重要的子类 RuntimeException。RuntimeException 异常由Java虚拟机抛出。NullPointerException(要访问的变量没有引用任何对象时,抛出该异常)、ArithmeticException(算术运算异常,一个整数除以0时,抛出该异常)和 ArrayIndexOutOfBoundsException (下标越界异常)。 **Error(错误):** ​ 是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。 这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineError)、类定义错误(NoClassDefFoundError)等。这些错误是不可查的,因为它们在应用程序的控制和处理能力之 外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在 Java中,错误通过Error的子类描述。 **注意:异常和错误的区别:异常能被程序本身处理,错误是无法处理。** ## **9. 数据库事务是什么?** 是用户定义的一个数据库操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。 ## **10.产生死锁的条件** 1.互斥条件:一个资源每次只能被一个进程使用。 2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 3.不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 4.循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。 ## **11.MVC各个部分是由什么实现?怎样实现?** ## **12.请简单写一个ajax事件。** ## **13.怎样用一个7升的瓶子和一个5升的瓶子准确的量出6升水?**