一、finalize方法是干什么的?
finalize是GC垃圾回收器自己调用的方法、用来回收没有指向的内存空间
二、4种访问权限分别是什么?
private、default(默认)、protected、public
三、说一下你对异常的理解
异常的话有一个父类叫throwable、他下面有两个子类分别是error和exception
error指的是错误、表示程序出现了一种无法避免和恢复的严重错误;exception表示的是异常、它下面有两个子类、分别是运行时异常(RuntimeException)和非运行时异常:运行时异常大多是因为程序员编写的代码出现逻辑问题引起等、是由程序员造成的;而运行时异常以外的异常都是非运行时异常、也是必须去处理的异常、如果不处理编译都不会通过;
四、循环中break、continue、return关键字的作用?
break表示的是跳出循环;continue表示的是跳出当前循环进入下一次循环、return表示的是结束一个函数;
五、final、finally、finalize分别是什么?
final指的是最终的意思、final修饰的类不能被继承;final修饰的成员变量必须对其初始化赋值、final修饰的方法不能被重写、final修饰基本数据类型一旦赋值不能改变、final修饰的引用类型其地址值不能改变、但对象里的值可以改变
finally一般搭配try,catch语句块共同使用、finally后面的语句块必须执行;
finalize是一个方法,是GC垃圾回收器在回收没有引用的内存空间是会调用,是自己调用,不是人为调用的。
六、throw和throws的区别
throw一般是在方法中使用,throw后只能跟一个异常对象名,表示抛出异常让方法内的语句块去处理这个异常
throws是写在方法名后,后面可以跟多个异常类名、中间用逗号隔开、表示抛出异常、让方法的调用者去处理这个异常、并不是真正的去处理该异常
七、什么是数组?
数组指的是用来存储同一种数据类型的多个元素的集合、它可以存储基本数据类型、也可以存储引用数据类型、数组是一种简单的数据结构、线性结构、数组的长度一旦确定不可改变、数组是一种引用数据类型
八、数组的初始化方式有哪些?
有静态初始化和动态初始化,静态初始化是为数组中的元素依次赋值;动态初始化是为数组的长度赋值,数组中的元素系统为其赋默认值;
九、如何在控制台输出语句?
Scanner scanner = new Scanner();
String next = scanner.next();
System.out.println(next);
十、数组的扩容是如何实现的?
数组的扩容是数组拷贝来实现的;
system.arraycopy(被拷贝的数组名、从下标为几开始拷贝、拷贝到的数组名、从下标为几开始拷贝、拷贝的长度);
十一、数组的排序有哪些?
选择排序和冒泡排序;
选择排序是第一个元素依次和后面元素进行比较,选出最小的元素放到第一个位置;
冒泡排序是相邻两个元素进行比较,找出最大的元素放到最后面
十二、数组的二分法查找是什么?有哪些条件?
数组的二分法查找是为了快速定位到数组中元素所在的位置;
必须要满足以下两个条件:
1、数组中的元素必须按顺序排列
2、数组中不能包含有重复元素
十三、String类的特点?
String类不能被继承,因为被final修饰了;
字符转一旦创建好、其在字符串常量池中的内容不能改变
十四、什么是正则表达式
正则表达式的主要作用是为了检验字符串是否满足某种规格
十五、String和StringBuffer的区别?
String是不可变字符序列、存储在字符串常量池中;
StringBuffer是字符串缓冲区、如果频繁对字符串进行拼接时、建议使用stringbuffer、stringbuffer底层是char类型数组、默认长度为16
十六、StringBuffer和StringBuild的区别?
stringbuffer在stringbuild的基础上加上了synchronized关键字;
相比较而言、stringbuffer是线程安全的、效率要稍低一些;
StringBuild是线程不安全的、相比较效率要更高一些
以上就是“就业市场中比较全面的Java权限管理面试题”,你能回答上来吗?如果想要了解更多的Java面试题相关内容,可以关注动力节点Java官网。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习