很多需要java基础
-
使用过哪些集合类:
-
Set、List、Map、Queue使用场景
-
map和hashmap的使用场景等。
-
-
JAVA中的string stringbuffer stringbuilder的区别。
-
各种的使用场景。
-
-
Spring 框架的理解: Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式
-
使用过哪些服务端的接口测试的框架,以及对接口测试的理解。
-
解释内存中的栈(stack)、堆(heap)和静态存储区的用法。
-
通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;而通过new关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接书写的100、“hello”和常量都是放在静态存储区中。栈空间操作最快但是也很小,通常大量的对象都是放在堆空间,整个内存包括硬盘上的虚拟内存都可以被当成堆空间来使用。
-
-
ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和各自适应的场景是什么?
ArrayList,是数组结构:少用与中间的增删。多用于查询,修改。每次增删元素顺序都会操作每个元素。
LinkedList,是链表结构:多用于中间,开头增删。少用查询,修改。查询时会遍历大量元素。
-
内存溢出是怎么回事?
对象有被指向的引用,但是再也用不到它就是内存溢出了。
GC机制:复制回收,标记清除,引用计数(如果有循环引用后,会影响垃圾回收,所以JVM虚拟机没有采用此方法进行垃圾回收)。
-
java的多线程的业务问题,多线程容易碰到的问题,已经怎么解决这些问题。线程的安全问题,是怎么去解决的。
-
后端使用数据库,以及使用缓存时的数据同步问题,如何保证数据库和缓存中的数据一致性。
-
final/finally/finalize的区别?
final是类,变量,方法的修饰。类被修饰后不能再被继承。变量和方法被修饰不能再被修改
finally是try...catch后执行的finally,
finalize,在Object中的方法名,在此对象被回收前会执行这个方法。(当使用文件流时,如果对象被回收,没有关闭流,在底层就会实现内存泄露)