java基础面试
1 java基本数据类型
整数型byte(2^7)1个字节,short(2^15)两个字节,int(2^31)四个字节,long(2^63)八字节,浮点型 double,float,布尔类型 boolean,字符类型char
2 java中的集合
List :有序,可重复
set :无序,不可重复
map :key,value格式,key为set集合,不可重复,value可以重复
3 ArrayList和LinkedList区别。
ArrayList是数组,ArrayList查询比较快,新增删除慢。新增删除,对应位置之后的数据都要挪动。ArrayList本身就有位置标号。
LinkedList是链表LinkedList查询慢,但是新增删除快。LinkedList新增删除直接增加或者删除数据就可以,挪动数据较少。但是查询时候因为顺序关系都是隐式的,需要全部查找。
4 创建线程的方式
实现runnable接口
继承Thread类
使用 Executor 框架
5 HashMap和HashTable的区别
HasnMap允许空的value值,HashTable不允许
HashMap 继承自 AbstractMap,Hashtable 继承自 Dictionary 类,两者都实现了 Map 接口; HashMap 的方法不是同步的,Hashtable 的方法是同步的。
6 spring和spring Mvc的区别
spring是一个ioc,aop框架。spring mvc实在spring的基础上集成度web框架,使用spring mvc 必须依赖spring
7 重写和重载的区别
重写:子类重写父类方法,方法名,参数保持一致,返回值范围小于父类的方法,父类方法如果是私有的,则不可重写。
重载:在一个类中发生对一个同名方法,有多重实现,参数不一致,根据不同的传入参数调用不同的方法。
8 ==和equals的区别
==比较的是否是同一个对象,同时比较内容和位置。equals比较内容是否相同。值得注意的一点String a = "String" ,String b = "String",String c = new String("String")a==b为true,a==c为false 因为java为String定义了缓冲池,如果直接用“”定义
会先去缓冲池中找是否存在相同的值,如果存在就直接拿来用。
9 String StringBuffer StringBuilder区别
他们都被finally修饰,不可被继承
string长度固定,定义好之后,不会改变,StringBuilder和StringBuffer长度可变。
StringBuffer是线程安全的,StringBuilder线程不安全
StringBuffer因为加了synchronized,所以性能上低于StringBuilder
10 java中的多态
多态主要表现方式有重写和重载,重写是子类继承父类,重写父类的方法。重载是同名方法多个实现,返回值,传入参数不同。
11 java中的异常处理关键字
try,catch,throw,throws,finally
throws用于方法主体抛出异常,throw方法内部抛出异常,finally方法内部,是否出现异常都需要处理的步骤
12 get和post的区别
他们都是通过http请求来提交参数。
get的参数会显示在地址栏,用问号拼接起来的,post是放在http的包中。所以get提交参数时候安全性不高。此外浏览器对输入url长度有限制,post数据存放在包中不会因此受限制。