JAVA面试题
1.Int和integer区别
Int是数据类型,integer是包装类,包装类中提供了很多对整数操作的方法,他们之间可以自动装箱和拆箱,int默认值是0;integer默认值是null
对象在使用前要判断是否为空在使用
2.数组和集合的区别
数组:长度固定,可以存储数据类型,也可以存储对象
集合:长度可变,只能存储对象类型,(由于有包装类的存在,集合中可以存储任意类型)
3.接口可以继承类吗
接口不能继承类,接口只能继承接口
Note----Shift+alert+R可以一起修改同名的变量
4.java中的异常有naxie
编译时异常和运行时异常
throwable类是所有异常的超类
Exception类是编译时异常
runtimeException类是运行时异常
类型转换异常
数学异常
数组越界异常
类型转换异常
空指针异常
传递非法参数异常
5.异常中的finally
try{}finally{这里面的代码无论如何都会被执行}finally主要用于异常发生时释放资源
6.执行了return,返回值就会被保留,方法体执行完毕之后被保留的值得到返回
7.final,finally,finalize的区别
1.final可以修饰类,方法,如果在类上,类不能被继承,如果在方法上,方法不能被重写,如果修饰属性,值不能被改变
2.finally是和try,catch异常处理模块一起用的语句块,他在最后一定会被执行
3.finalize当堆中的对象没有任何引用时这个方法会被调用来做垃圾回收
8.String str="helloword";和String str1 = new String("helloword");的区别
Stringstr="helloword"---------- str存储在栈中,helloword存储在数据共享区(静态区)
Stringstr1 = new String("helloword")---------new String在堆中,str1在栈中,helloword在数据共享区(静态区)
9.list集合系列
Arraylist
Arraylist中的元素可以重复,是有序的集合,长度不固定,不是线程安全的,但是效率高,Arraylist元素可以重复,因为索引不同,也可以添加null元素
Linkedlist
list接口的链接列表实现,他不是线程安全的
Vector
他是线程安全的,双向链表
10.set集合系列------一个不包含重复元素的collection,最多包含一个null元素,set在添加元素的时间会拿这个元素和集合中的每一个元素做比较,如果重复了,就不添加,如果没重复,
就去添加,
HashSet
此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素,线程不安全
,Set集合是无序的,set集合的元素是不能重复的,set允许有null,只能有一个null
TreeSet
可以按照元素的自然顺序进行对元素自动排序,因为他实现了Comparable<>的Comparto方法,线程不是安全的
LinkedHashSet
LinkedHashSet是有顺序的,不能重复,允许有空值,线程不是安全的
11.Collection和Collections的区别
Collection是集合的接口,而Collections是操作集合的工具类
12.Map集合和Collection集合的区别
1.Map集合是键值对的集合,Collection是单一的出现的数据的集合
2.Map的键是惟一的,而Collection的自接口list集合中的元素是可以重复的,set是惟一的
3.Map是夫妻对,Collection是光棍
13.HashMap<K,V>的特点
1.HashMap是map的实现类
2.允许多个null和一个null键
3.Hashmap中的元素没有顺序
4.Hashmap不是线程安全的
14.HashTable的特点
1.Hashtable是map的实现类
2.不允许bull值和bull键
3.HashTable中的元素没有顺序
4.HashTable是线程安全的
15.LinkedHashMap的特点
1.LinkedHashMap是map的实现类
2.允许多个null值和一个null键
3.LinkedHashMap是有顺序的
4.LinkedHashMap不是线程安全的
16.什么是序列化流
把对象以流的方式存储在硬盘上或者数据库中的过程就是写序列化流
17.创建线程有几种方法
两种创建线程的方法
继承Thread类
实现Runnable接口
18.什么是线程的执行原理和生命周期
执行原理是----线程的并发执行是通过多个线程不断的切换CPU的资源,这个速度非常快,我们感知不到,我们能感知到的就是三个线程在并发执行
线程的生命周期
1.新建状态
2.准备状态
3.运行状态
4.阻塞状态
5.销毁
19.什么是高并发
互联网的项目中存在着大量的并发案例---比如买火车票
指的就是程序在执行的过程中发生了一些不安全的事情----例如只有一件库存商品,却被爱