加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 金华站长网 (https://www.0579zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

Java方向如何准备BAT技术面试答案(汇总版)

发布时间:2020-12-31 22:16:30 所属栏目:运营 来源:网络整理
导读:副标题#e# 1.面向对象和面向过程的区别 面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。缺点:没有面向对象易维护、易复用、易扩展面

ArrayList和Vector都实现了List接口,都是通过数组实现的。Vector是线程安全的,而ArrayList是非线程安全的。List第一次创建的时候,会有一个初始大小,随着不断向List中增加元素,当List 认为容量不够的时候就会进行扩容。Vector缺省情况下自动增长原来一倍的数组长度,ArrayList增长原来的50%。

17.ArrayList和LinkedList区别及使用场景#

区别ArrayList底层是用数组实现的,可以认为ArrayList是一个可改变大小的数组。随着越来越多的元素被添加到ArrayList中,其规模是动态增加的。LinkedList底层是通过双向链表实现的, LinkedList和ArrayList相比,增删的速度较快。但是查询和修改值的速度较慢。同时,LinkedList还实现了Queue接口,所以他还提供了offer(),peek(),poll()等方法。使用场景LinkedList更适合从中间插入或者删除(链表的特性)。ArrayList更适合检索和在末尾插入或删除(数组的特性)。

18.Collection和Collections的区别#

java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

19.Concurrenthashmap实现原理#

具体原理参考文章:

20.Error、Exception区别#

Error类和Exception类的父类都是throwable类,他们的区别是:Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。

21.Unchecked

Exception和Checked Exception,各列举几个#Unchecked Exception:a. 指的是程序的瑕疵或逻辑错误,并且在运行时无法恢复。b. 包括Error与RuntimeException及其子类,如:OutOfMemoryError,UndeclaredThrowableException,IllegalArgumentException,IllegalMonitorStateException,NullPointerException,IllegalStateException,IndexOutOfBoundsException等。c. 语法上不需要声明抛出异常。

Checked Exception:a. 代表程序不能直接控制的无效外界情况(如用户输入,数据库问题,网络异常,文件丢失等)b. 除了Error和RuntimeException及其子类之外,如:ClassNotFoundException,NamingException,ServletException,SQLException,IOException等。c. 需要try catch处理或throws声明抛出异常。

22.Java中如何实现代理机制(JDK、CGLIB)#

JDK动态代理:代理类和目标类实现了共同的接口,用到InvocationHandler接口。CGLIB动态代理:代理类是目标类的子类,用到MethodInterceptor接口。

23.多线程的实现方式#

继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。

24.线程的状态转换#

Java方向如何准备BAT技术面试答案(汇总版)
25.如何停止一个线程#

参考文章:

26.什么是线程安全#

线程安全就是多线程访问同一代码,不会产生不确定的结果。

27.如何保证线程安全#

对非安全的代码进行加锁控制;使用线程安全的类;多线程并发情况下,线程共享的变量改为方法级的局部变量。

28.synchronized如何使用#

(编辑:PHP编程网 - 金华站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!