Java基础知识面试题(一)

列出了一些Java基础知识相关的问题,并给出了个人理解后的答案(注:答案只是很简单的说了一些,并不全面,想要标准答案的可自行百度)

1.&和&&的区别:

&是位运算符,表示按位与;
&&是逻辑与算符,表示逻辑与;
&&具有短路功能,即当&&之前的条件为false时,不再判断&&之后的条件。

2.Collection和Collections的区别:

Collection是集合类的上级接口,继承他的接口主要有Set和List;
Collections是针对集合类的一个帮助类,他提供了一系列的静态方法实现对各种集合的搜索、排序等操作。

3.转发和重定向的区别:

转发发出一次请求,重定至少发出两次请求;
转发地址(URL)不会改变,重定向地址(URL)会发生改变;
转发请求(request)中的信息不会丢失,重定向请求(request)中的信息会丢失;
转发的速度比重定向快,所以能用转发就不用重定向。

4.Srping的核心控制器:

IOC(控制反转);
AOP(面向切面编程)。

5.Spring MVC的核心控制器:

DispatchServlet

6.线程的生命周期:

新建,就绪,运行,阻塞,死亡。

7.实现多线程常用的两种方法:

一种是继承Thread类,一种是实现Runnable接口。

8.重写(Override)和重载(Overload)的区别:

当子类中定义的某个方法和父类有相同的方法名和参数,我们说该方法被重写(Override);
一个类中定义了多个同名的方法,他们有不同的参数个数或者不同的参数类型,则称为方法的重载(Overload),(重载方法的返回值类型可以不同);
重写父类和子类之间多态性的一种表现,重载是一个类中多态性的一种表现。

9.Java的基本类型:

Java有八种基本类型,分别是:byte、char、short、int、double、float、long、boolean

10.获取String和数组的长度:

String str = "123456";
int a[] = {1,2,3,4,5,6};
int strLength = str.lenght();
int aLength = a.length;

11.Math取整的几个方法:

向上取整:Math.ceil(double a);
向下取整:Math.floor(double a);
四舍五入:Math.round(double a);
四舍五入的规则是在原来数字的基础上加0.5然后向下取整。

12.String和StringBuffer的区别:

String是一个不可变对象,一经创建就不能改变,长度是固定的,String是final类,不能够被继承;
StringBuffer是一个可变对象,是可以被修改的,长度不是固定的,它的创建只能通过构造函数来实现,它的赋值可以通过append方法来实现。

13.Map的遍历:

//Map是一个抽象的接口,不能直接实例化,要使用它的具体实现类
Map<String,String> map = new HashMap<String,String>();
map.put("12","aaa");
map.put("13", "bbb");
map.put("14", "ccc");
map.put("15", "ddd");
//当key值出现重复时,会覆盖之前的value值
map.put("12", "eee");
//方法一:二次取值
for(String key:map.keySet()){
	System.out.println(key+" "+map.get(key));
}
//方法二:entrySet遍历
for(Map.Entry<String,String> entry:map.entrySet()){
	System.out.println(entry.getKey()+" "+entry.getValue());
}
//方法三:迭代器迭代
Iterator<Entry<String, String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()) {
	Entry<String, String> entry = iterator.next();
	System.out.println(entry.getKey()+" "+entry.getValue());
}

14.HashMap:

基于哈希表的Map接口实现,将key值通过哈希算法获取到哈希值后放在table表中,而哈希值有重复出现的可能性,为了解决这种冲突,较常用的一种是使用拉链法,即将键值对封装成Node节点,并增加next指向,这样哈希值重复的可以连接成一条单链表,jdk8以后,则又增加了一个新特性,即当单链表的长度大于8的时候转成红黑树。

15.List的遍历:

List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//方法一:for循环
for(int i=0;i<list.size();i++) {
	System.out.println(list.get(i));
}
//方法二:超级for循环
for(String str:list) {
	System.out.println(str);
}
//方法三:迭代器迭代
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {
	System.out.println(iterator.next());
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值