javaSE基础面试题(1)

1.重写与重载区别
重写:发生在子父类中,子类重写的方法覆盖父类的方法,重写的方法名和参数列表相同,返回值类型子类小于父类,抛出异常子类小于父类,访问范围子类大于父类
重载:发生在一个类里面,方法名相同,参数列表不同

2.线程的状态
新建(新生)–>就绪–>运行–>阻塞(wait/sleep)–>死亡

3.ArrayList和LinkedList区别
ArrayList底层是数组,遍历和查找修改效率高,插入和删除效率低
LinkedList底层是双向链表,插入和删除效率高,遍历查找修改效率低

4.wait和sleep区别
wait属于Object类,sleep属于Thread类
wait通过notify唤醒进入就绪状态
sleep通过指定时间之后自动进入就绪状态

5.switch参数可以使用的数据类型
byte,int,short,char,string,枚举

6.抽象类和接口的区别
抽象类允许存在属性方法,构造方法和抽象方法,只允许单继承
使用场景:子类想用父类的一部分抽象方法,也想用非抽象的方法
接口:只允许存在静态常量和抽象方法(jdk1.8之后允许存在静态方法和默认方法),可以多实现,也可以多继承
使用场景:可以跨越不同类型,通常用在不同类型或者不同模块之间拓展功能的时候使用

7.线程的创建方法
1.继承Thread,重写run方法,创建子类对象,通过start启动
2.实现Runnable接口,重写run方法,创建Thread对象将实现类包裹进去,通过start启动
3.实现Callable重写call方法,创建实现类对象,创建Thturetask对象将实现类包裹进去,Thread对象将TutrueTask对象放进去,通过start启动

8.死锁是怎样造成的
多个进程同时运行过程中资源分配不当,系统资源不足,进程运行推进顺序不合适,进程会因争夺有限的资源而陷入死锁

9.jre和jdk
jre是运行时环境,jdk是java开发工具包
jdk中包含jre

10.java数据类型及所占字节个数
基本数据类型:
整型:byte(1字节),short(2字节),int(4字节),long(8字节)
浮点型:float(4字节),double(8字节)
字符型:char(2字节)
布尔型:boolean
float为什么比long的取值范围大:因为存储方式不同

11.set,map,list区别
list有序且允许重复,常用的实现类有ArrayList和LinkedList,ArrayList底层利用的是数组,适用于查改,LinkedList底层利用的是双向链表,适用于删除和插入
set无序且不允许重复,常用的实现类有HashSet和TreeSet,HashSet底层是哈希表,数组链表红黑树,TreeSet底层是红黑树,可以利用自然排序和定制排序设定排序规则
map是一个带有键值对的集合,键无序且不允许重复,值允许重复,常用的实现类有HashMap和TreeMap

12.一个源文件允许存在多个类,至多有一个由public修饰的类,至少0个,public修饰的类名必须与源文件名相同

猜你喜欢

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