javaSE基础面试题(2)

1.sql语句分类
DDL数据定义语言,DQL数据查询语言,DCL数据控制语言,DML数据操纵语言,TCL事务控制语言

2.数组的特点
定长,下标从0开始,可以存储任意类型的数据

3.Hash表结构
数组,链表,红黑树(jdk1.8)

4.throw和throws的区别
throws在方法声明后面添加的,允许同时跟多个异常类型,表明发生异常的可能性,作为提示调用者,不会造成异常
throw 在方法体中使用,后面跟的异常对象,只能同时抛出一个异常,是异常的制作者,抛出者

5.== 和equals区别
对于值:只能用 "= ="比较,没有equals方法
对于引用数据类型,如果没有重载equals方法比较的是内存地址

6.调用静态代码块主要用于类的初始化

7.子查询
一条查询语句中至少包括两个select语句

8.流
流向:输入流输出流,单位:字节流字符流,功能:节点流处理流
文件流 :字节流FileInputStream,FileOutputStream,
字符流FileReader,FileWriter,
缓冲流BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter
对象流ObjectInputStream,ObjectOutputScream,
转换流:解决编码格式不同而导致的乱码

9.final,finally,finalize区别
final用于声明属性方法和类,表示属性不可变,方法不可覆盖,类不可继承
finally是异常处理语句中的一部分,总是会执行
finalize是object类的一个方法,
在垃圾收集器执行时会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收

10.访问修饰符权限
private 私有的 本类
default 默认的 本类本包
protected 受保护的 本类本包以及子类
public 公开的 本类本包子类其他包

11.string,stringbuffer和stringbuilder区别
String字符串常量
StringBuffer字符串变量(线程安全)效率高
StringBuilder字符串变量(非线程安全)

12.静态代码块在哪里调用
在类初次被加载的时候会按照static块的顺序来执行每个static块,并且只会执行一次

13.堆栈的区别
栈:先进后出,存放局部变量,基本数据类型和引用数据类型
堆:存放引用数据new出来的对象,不连续的存储空间

14.&和&&的区别
&两边都会执行
&&左边为false则右边不执行

15.this,super区别
this指的是当前对象,super指的是父类的对象,只有在类的构造方法中可以用this调用另一个构造方法,可以用this.成员变量引用成员变量(局部变量与成员变量重名时)
super在子类构造方法中调用父类的构造方法,引用父类的成员变量,
this可以作为方法的返回值,super不可以
this和super都不可以在静态的方法中使用

16.面向对象四大特征
抽象,封装,继承,多态
封装:类的封装:将抽象抽取出来,共同的特征和行为方在同一个类中,实现零散数据的统一管理,安全性提高,给创建对象提供了很好的基础
属性的封装:给属性赋值的时候,私有化属性,并且提供对外访问的接口set/get方法,提高数据的安全性
方法的封装:可以将重复的数据提炼出来写到一个方法中,提高了复用性,可维护性,阅读性高
继承:子类可以复用父类的属性和方法,提高了数据的复用性,是一个增量式的开发,某些情况下,父类的方法不能满足子类的需求时可以进行重写
多态:一个事物具有多种表现形态
编译时多态:在编译时起就可以完成的多态,比如方法的重载(同一个方法名参数列表不同就可以表现不同的形态)
运行时多态:继承关系中,父类的引用执行子类的实体,向上转型,可以减少重复,提高代码的复用性,比如重写,父类有一个方法,子类也有一个方法,以向上转型的方式创建子类对象的时候用父类的对象名调用子类重写以后的方法

猜你喜欢

转载自blog.csdn.net/Echoxxxxx/article/details/111656335